Gripper Module
During liquid handling workflows, the need often arises to reposition labware across the deck. The Bravo's integrated gripper can pick up, move, and place plates between the 9 deck locations. For workflows involving an external robot, the Bravo can also move to a safe position to allow deck access.
This guide serves as a comprehensive walkthrough for utilizing the integrated gripper on the Agilent Bravo. By adhering to these instructions, users can effortlessly and precisely maneuver labware around the deck.
Prerequisites
- A switched on Agilent Bravo device
- A plate
- A running Agilent Bravo connector
- Basic understanding of the liquid handler class (See the Agilent Bravo tutorial)
Power On the System
Ensure that the Agilent Bravo is powered on and ready for operation. Verify that the connector is running and connected to the UniteLabs platform.
from unitelabs.sdk import AsyncApiClient
from unitelabs.liquid_handling.agilent import Bravo
client = AsyncApiClient()
# Initialize the Agilent Bravo
bravo = Bravo(
name="Bravo",
client=client,
)
await bravo.configure()
await bravo.initialize()
await bravo.activate()
Arrange the Deck
Place a standard 96 well plate on deck location 5.
from unitelabs.labware.plates import Standard96Plate
plate = Standard96Plate(identifier="DestinationPlate_96Well")
bravo.deck.add(plate, location=5)
Pick Up Labware
Labware can be picked up by passing the labware object directly to the gripper's pick_up method. The gripper moves to the labware's deck location and picks it up.
await bravo.gripper.pick_up(plate)
The plate is now held by the gripper and the deck location should be empty.
assert bravo.deck.is_location_empty(5)
assert bravo.gripper.get() == plate
The pick_up method accepts optional parameters to fine-tune the operation:
grip_gap: Gripper close position in mm.width_offset: Gripper open position in mm before closing.movement_velocity: XYZ and Zg movement velocity in mm/s.gripper_velocity: Gripper jaw close velocity in mm/s.pick_up_offset: An offsetVector(dx, dy, dz)in mm to adjust the pick up location.
pick_up_offset during pick up, you must also pass drop_offset to put_down with the same value. When an offset is omitted it falls back to the labware definition; a mismatch between an explicit offset and the default labware value can mis-align the gripper and crash into the deck.grab_height is read from the labware definition. See the Plates guide for how to set it when creating custom labware.Put Down Labware
Labware can be placed at any empty deck site. Pass the target deck site to the gripper's put_down method.
await bravo.gripper.put_down(bravo.deck[7])
The plate is now on the deck and the gripper should be empty.
assert bravo.gripper.get() is None
assert bravo.deck.get_labware_at_location(7) == plate
Pick Up from Deck Site
Alternatively, you can pick up labware by referencing the deck site instead of the labware object. This is useful when you know the location but not the labware reference.
await bravo.gripper.pick_up_from(bravo.deck[7])
Transfer
The transfer method combines pick up and put down into a single call. Pass the labware and the target deck site.
await bravo.gripper.transfer(plate, target=bravo.deck[1])
Transfer From
To transfer labware between two deck sites without needing a reference to the labware object, use transfer_from.
await bravo.gripper.transfer_from(
source=bravo.deck[1],
target=bravo.deck[9],
)
External Robot Access
When an external robot needs to access the Bravo deck, the Bravo can be moved to a safe position. The status light updates to indicate it is safe for external interaction.
# Move Bravo out of the way, status light signals safe access
await bravo.move_to_safe_robot_position(x=5.0, y=5.0, z=0.0)
# ... external robot operates ...
# Re-enable Bravo, resume normal LED operation
await bravo.robot_finished()
move_to_safe_robot_position method moves the pipette head to the specified coordinates and homes the gripper and plunger axes. The robot_finished method re-enables all motor axes and returns the status light to normal operation so the Bravo can resume.