genericroboticarm.robo_APIs.interactive_transfer module

An interface for robotic arm that implement the necessary utility to use the SiLA feature LabTransferManipulatorController.

class genericroboticarm.robo_APIs.interactive_transfer.InteractiveTransfer[source]

Bases: ABC

_abc_impl = <_abc._abc_data object>
_announced_intermediate_actions: List[str] = []
announce_intermediate_actions(intermediate_actions: List[str])[source]

Tells the arm which intermediate actions the upcoming transfer command will request, so that prepare_for_input() can already do the part of them that concerns only the arm. Announcing is optional and non-binding: the actions are passed to get_labware() as usual, which has to work whether they were announced or not. :param intermediate_actions: :return:

property announced_intermediate_actions: List[str]

The intermediate actions announced for the upcoming transfer command. :return:

property available_handover_positions: List[Tuple[str, int]]

return:

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:

abstractmethod cancel_transfer()[source]
Returns:

abstractmethod get_labware(intermediate_actions: List[str], device: str, position: int)[source]
Parameters:
  • position

  • device

  • intermediate_actions

Returns:

abstract property number_internal_positions: int

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:

abstractmethod 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:

abstractmethod prepare_for_output(internal_pos: int, device: str, position: int) bool[source]
Parameters:
  • position

  • device

  • internal_pos

Returns:

abstractmethod put_labware(intermediate_actions: List[str], device: str, position: int)[source]
Parameters:
  • position

  • device

  • intermediate_actions

Returns: