pylabrobot.resources.LinkBody#

class pylabrobot.resources.LinkBody(name: str, size_x: float, size_y: float, size_z: float, proximal_joint: Coordinate, distal_joint: Coordinate | None = None, category: str = 'link_body', model: str | None = None)#

Bases: Resource

One of the rigid members an arm is built from, joined to its neighbours by joints.

Its origin is a corner, as any resource’s is, and neither joint is obliged to sit there. It turns about proximal_joint, so a caller moves one with rotate(z=angle, pivot_coordinate=body.proximal_joint).

A member that ends the chain has no distal_joint, because nothing attaches past it. What sits at the far end of its span is that subclass’s own business, and so is its length.

Attributes

length

How long the link is, joint to joint, in mm.

location

Where this resource sits, relative to its parent.

name

Get the name of this resource.

Methods

__init__(name, size_x, size_y, size_z, ...)

assign_child_by_anchor(resource[, ...])

Assign a child resource by aligning anchor points.

assign_child_resource(resource, location[, ...])

Assign a child resource to this resource.

at(location)

Return a copy of this resource at the given location.

center([x, y, z])

Get the center of this resource.

centers([xn, yn, zn])

Get equally spaced points in the x, y, and z directions.

check_can_drop_resource_here(resource, *[, ...])

Validate whether resource may be dropped onto this resource.

copy()

deregister_did_assign_resource_callback(callback)

Remove a callback that will be called after a resource is assigned to this resource.

deregister_did_unassign_resource_callback(...)

Remove a callback that will be called after a resource is unassigned from this resource.

deregister_state_update_callback(callback)

Remove a callback that will be called when the state of the resource changes.

deregister_will_assign_resource_callback(...)

Remove a callback that will be called before a resource is assigned to this resource.

deregister_will_unassign_resource_callback(...)

Remove a callback that will be called before a resource is unassigned from this resource.

deserialize(data[, allow_marshal])

Deserialize a resource from a dictionary.

find_resource([fn, metadata, has_metadata, ...])

Find the first matching resource, or None if not found.

find_resources([fn, metadata, has_metadata, ...])

Find resources matching top-level attributes, metadata, and/or a predicate.

get_absolute_location([x, y, z])

Get the absolute location of this resource, probably within the pylabrobot.resources.Deck.

get_absolute_rotation()

Get the absolute rotation of this resource.

get_absolute_size_x()

Get the absolute size in the x direction.

get_absolute_size_y()

Get the absolute size in the y direction.

get_absolute_size_z()

Get the absolute size in the z direction.

get_all_children()

Recursively get all children of this resource.

get_anchor([x, y, z])

Get a relative location within the resource.

get_highest_known_point()

Recursively finds the highest known point in absolute space.

get_location_wrt(other[, x, y, z])

Get the location of this resource with respect to another resource.

get_resource(name)

Get a resource by name.

get_root()

Get the root of the resource tree.

get_size_x()

Local size in the x direction.

get_size_y()

Local size in the y direction.

get_size_z()

Local size in the z direction.

has_resource(name)

Whether anything at or beneath this resource carries the given name.

is_in_subtree_of(other)

Return True if self is in the subtree rooted at other.

load_all_state(state)

Load state for this resource and all children.

load_from_json_file(json_file)

Loads resources from a JSON file.

load_state(state)

Load state for this resource only.

load_state_from_file(fn)

Load the state of this resource and all children from a JSON file.

named(name)

Return a copy of this resource with the given name.

register_did_assign_resource_callback(callback)

Add a callback that will be called after a resource is assigned to this resource.

register_did_unassign_resource_callback(callback)

Add a callback that will be called after a resource is unassigned from this resource.

register_state_update_callback(callback)

Register a callback that will be called when the state of the resource changes.

register_will_assign_resource_callback(callback)

Add a callback that will be called before a resource is assigned to this resource.

register_will_unassign_resource_callback(...)

Add a callback that will be called before a resource is unassigned from this resource.

rotate([x, y, z, pivot_coordinate])

Rotate counter-clockwise around the parent-coordinate axes by the given degrees.

rotate_to([x, y, z, pivot_coordinate])

Set the rotation about each axis, where rotate turns by an amount instead.

rotated([x, y, z, pivot_coordinate])

Return a copy of this resource rotated by the given number of degrees.

save(fn[, indent])

Save a resource to a JSON file.

save_state_to_file(fn[, indent])

Save the state of this resource and all children to a JSON file.

serialize()

serialize_all_state()

Serialize the state of this resource and all children.

serialize_state()

Serialize the state of this resource only.

unassign()

Unassign this resource from its parent.

unassign_child_resource(resource)

Unassign a child resource from this resource.

Parameters: