genericroboticarm.robo_APIs.precise_flex.uppsala_pf_on_rail module¶
Implementation of RoboInterface extending the PFonRail to the specific uppsala working cell.
- class genericroboticarm.robo_APIs.precise_flex.uppsala_pf_on_rail.UppsalaPFonRail(start_simulating: bool = True, host: str = '10.10.0.98', port: int = 10100)[source]¶
Bases:
PFonRail- GRIPPER_OPEN: float = 90¶
- _abc_impl = <_abc._abc_data object>¶
- _prefetched_lid_position: str | None = None¶
- property available_intermediate_actions: list[str]¶
- List of functionalities the arm can do together with put/get labware commands,
like (un-)lidding, shaking reading barcode, etc.
- Returns:
- property currently_gripping_plate: bool¶
Whether the gripper is currently holding a plate. A plate is assumed to be held when the gripper was last commanded to close (GRIPPER_CLOSED) but did not reach that position, i.e. a plate blocks it from closing fully.
- get_labware(intermediate_actions: list[str], device: str, position: int)[source]¶
- Parameters:
position
device
intermediate_actions
- Returns:
- classmethod get_name() str[source]¶
The name will be used as parameter in command line startup (-r), as sila server name and to save the position graph. :return: the name
- graph_dir: Path | None = None¶
- property holding_lid: bool¶
Whether the gripper holds a lid that was fetched in advance by prefetch_lid(), i.e. something the arm put there on purpose and still knows about. :return:
- lid_site_of(lidding_cmd: str) str[source]¶
Resolves the position of the lid an (un-)lidding command refers to. :param lidding_cmd: a command encoded ‘[un]lid_[DEVICE]_[POSITION]’ :return: the position identifier of the lid
- move_to_safe_pos(identifier: str, offset: dict[str, float] | None = None)[source]¶
Moves to the approach position belonging to the specified position :param offset: :param identifier: :return:
- property name: str¶
- pick_at_position(identifier: str, offset: dict[str, float] | None = None)[source]¶
Opens the gripper, moves to a specified location and closes the gripper there :param identifier: Position identifier :param offset: :return:
- place_at_position(identifier: str, offset: dict[str, float] | None = None)[source]¶
Opens the gripper, moves to a specified location and opens the gripper there :param identifier: Position identifier :param offset: :return:
- prefetch_lid(lid_position: str)[source]¶
Picks up a lid before the plate it belongs to is needed, so that put_lid_on() only has to place it. Failing here fails the preparation, the lid is never silently left behind. :param lid_position: :return:
- property preparable_intermediate_actions: list[str]¶
The subset of the available intermediate actions the arm can already work on during prepare_for_input(), provided they were announced beforehand. Fetching a lid is such an action: it concerns only the arm and can be done while the other device prepares itself. Arms that ignore announcements return nothing here. :return:
- prepare_for_input(internal_pos: int, device: str, position: int, plate_type: str) bool[source]¶
- Parameters:
plate_type
plate_type
position
device
internal_pos
- Returns:
- prepare_for_output(internal_pos: int, device: str, position: int) bool[source]¶
- Parameters:
position
device
internal_pos
- Returns:
- put_labware(intermediate_actions: list[str], device: str, position: int)[source]¶
- Parameters:
position
device
intermediate_actions
- Returns:
- remove_lid_deferred(plate_position: str, lid_deposit_position: str) Callable[[], None][source]¶
Takes the lid off the plate and retreats to the safe position with the lid gripped. Storing the lid away is not executed but returned as a tail task, so that the caller can hand it to RoboInterface.defer(): the command finishes as soon as the robot is clear of the device, while the robot stays reserved until the lid is stored. :param plate_position: where the lidded plate stands :param lid_deposit_position: where the lid is to be stored :return: the work to be done once the current command returned
- genericroboticarm.robo_APIs.precise_flex.uppsala_pf_on_rail._lab_adaption_root() Path | None[source]¶
Root directory of the installed lab_adaption package, or None if it is not installed.
- genericroboticarm.robo_APIs.precise_flex.uppsala_pf_on_rail.approach_position(device: str) str[source]¶
- genericroboticarm.robo_APIs.precise_flex.uppsala_pf_on_rail.device_from_identifier(identifier: str) str[source]¶
- genericroboticarm.robo_APIs.precise_flex.uppsala_pf_on_rail.lidding_action(intermediate_actions: list[str], prefix: str) str | None[source]¶
Picks the (un-)lidding command out of the intermediate actions. There should be at most one. :param intermediate_actions: :param prefix: LID_ACTION or UNLID_ACTION :return: the command or None