Co-Re Grippers#

This tutorial demonstrates how to use the Co-Re grippers on Hamilton STAR liquid handling robots with PyLabRobot.

The Co-Re grippers mount on pipetting channels and allow for moving labware around the deck.

Deck setup#

There are two different types of core grippers:

Co-Re gripper types

from pylabrobot.liquid_handling import LiquidHandler, STARBackend
from pylabrobot.liquid_handling.backends.hamilton.STAR_chatterbox import STARChatterboxBackend
from pylabrobot.resources import STARDeck  # STARLetDeck
deck = STARDeck(
  core_grippers="1000uL-at-waste"  # or "1000uL-5mL-on-waste"
)  # STARLetDeck()
# star_backend = STARChatterboxBackend()
star_backend = STARBackend()
lh = LiquidHandler(backend=star_backend, deck=deck)  # STARLetDeck())

Let’s also set up a dummy plate carrier and plate.

from pylabrobot.resources import PLT_CAR_L5AC_A00, CellTreat_96_wellplate_350ul_Ub
plate_carrier = PLT_CAR_L5AC_A00(name="plate_carrier")
plate_carrier[0] = plate = CellTreat_96_wellplate_350ul_Ub(name="plate")
deck.assign_child_resource(plate_carrier, rails=14)

Finally call setup to initialize the robot:

await lh.setup()

Moving resources#

There are two apis:

  • move_resource: a single call, simple to read. This function calls pick_up_resource and drop_resource internally.

  • pick_up_resource and drop_resource: two calls, more control over the timing of operations.

move_resource api#

This API is the simplest to read:

await lh.move_resource(
  plate,
  plate_carrier[1],
  pickup_distance_from_top=10,

  # Specify to use the core arm.
  use_arm="core",

  # use two channels to pick up the core gripper tools. Channels are 0-indexed.
  # specify only the front channel. In this case the back channel will be 6.
  core_front_channel=7,
)

pick_up_resource and drop_resource apis#

These APIs give more control over the pick up and drop actions:

await lh.pick_up_resource(
  plate,
  pickup_distance_from_top=10,

  # Backend kwargs:

  # Specify to use the core arm.
  use_arm="core",

  # use two channels to pick up the core gripper tools. Channels are 0-indexed.
  # specify only the front channel. In this case the back channel will be 6.
  core_front_channel=7,
)
await lh.drop_resource(
  plate_carrier[1],

  # Backend kwargs:
  use_arm="core",
  return_core_gripper=True,
)

Manual control over grippers#

await star_backend.pick_up_core_gripper_tools(front_channel=7)
await star_backend.return_core_gripper_tools()