pylabrobot.liquid_handling.backends.hamilton.STAR_backend.STAR.request_iswap_wrist_drive_orientation#

async STAR.request_iswap_wrist_drive_orientation() WristDriveOrientation#

Request the iSWAP wrist drive orientation (relative to the rotation drive).

e.g.:

  1. RotationDriveOrientation.FRONT + WristDriveOrientation.STRAIGHT => wrist also points to the front of the machine.

  2. RotationDriveOrientation.LEFT + WristDriveOrientation.STRAIGHT => wrist also points to the left of the machine.

  3. RotationDriveOrientation.FRONT + WristDriveOrientation.RIGHT => wrist points to the left of the machine.

Uses nearest-neighbour classification against the per-machine EEPROM pt values populated at setup. An earlier implementation used +/-50 windows around the Hamilton factory defaults and faulted on machines calibrated outside that band; we now pick whichever predefined stop is closest and only raise if the wrist is more than 5 deg from any predefined stop.

Hamilton factory-default values shown below for reference only; the per-machine EEPROM table is queried at setup and used at runtime in place of these (T-drive resolution = 0.00508 deg/incr):

RIGHT     T1   -26577 incr  (-135 deg)
STRAIGHT  T2    -8859 incr  ( -45 deg)
LEFT      T3    +8859 incr  ( +45 deg)
REVERSE   T4   +26577 incr  (+135 deg)
Returns:

WristDriveOrientation

The interpreted wrist orientation

(RIGHT, STRAIGHT, LEFT, or REVERSE).

Raises:
  • RuntimeError – if setup() has not populated the predefined positions.

  • ValueError – if the measured position is more than 5 deg from any predefined stop (drive is in transit or drifted).

Return type:

WristDriveOrientation