pylabrobot.liquid_handling.backends.hamilton.STAR_backend.STAR.iswap_rotate_to_angles#
- async STAR.iswap_rotate_to_angles(rotation_angle: RotationDriveOrientation | float | None = None, wrist_angle: WristDriveOrientation | float | None = None, rotation_speed: float = 75.0, rotation_acceleration: float = 500.0, rotation_current_limit: int = 5, wrist_speed: float = 100.0, wrist_acceleration: float = 725.0, wrist_current_limit: int = 5) None#
Rotate one or both iSWAP joints to absolute angles in a single motion.
Public deg-based wrapper around
_iswap_rotate_increments. When both angles are supplied, both joints arrive together under a single motion plan so the gripper sweeps a straight joint-space path; enables IK-driven trajectory execution.When only one angle is supplied, the other drive is requested from device (i.e. single-axis rotation is covered as well). At least one of
rotation_angleorwrist_anglemust be provided.Each angle is either the enum stop (lands on the EEPROM increment) or a float in degrees: rotation floats interpolate piecewise-linearly between the LEFT / FRONT / RIGHT EEPROM stops, wrist floats are linear from motor zero. Speed and acceleration convert linearly for both drives.
Snap-to-stop: float angles within one motor increment of a calibrated stop’s deg-form land on the exact stored increment, so values read via
iswap_*_drive_request_angleround-trip bit-exact.- Parameters:
[deg] (wrist_angle) – predefined
RotationDriveOrientationenum, or float signed from FRONT (+/-90), or None to hold current.[deg] – predefined
WristDriveOrientationenum, or float signed from motor zero (+/-152), or None to hold current.[deg/sec] (wrist_speed) – max angular velocity, 0.1..230.
[deg/sec^2] (wrist_acceleration) – max angular acceleration, 16..619.
rotation_current_limit (int) – motor current protection limiter, 0..7.
[deg/sec] – max angular velocity, 0.2..330.
[deg/sec^2] – max angular acceleration, 26..1015.
wrist_current_limit (int) – motor current protection limiter, 0..7.
rotation_angle (RotationDriveOrientation | float | None)
wrist_angle (WristDriveOrientation | float | None)
rotation_speed (float)
rotation_acceleration (float)
wrist_speed (float)
wrist_acceleration (float)
- Raises:
RuntimeError – if iSWAP is not installed or if
setup()has not populated the predefined-stop tables.ValueError – if neither angle is provided, or if either resolved target increment is outside the hardware range.
- Return type:
None