Work in progress: this documentation is still being written and reviewed. Check details against the source code.

Tools and end effectors

Gripper control, sample handling, pipettor commands, and tool exchange, including the local 2FG7 driver and ePick launch configuration.

Read the guide · All subsystems · Symbol index

Start here

Modules

Module

Responsibility

Entries

Gripper action server

Expose SRDF gripper-state motion through EndEffectorAction.

3

Gripper motion stages

Build SRDF group-state gripper moves using joint interpolation. An empty gripper group is explicitly a successful no-op.

2

Sample pick and place servers

Serve sample pick and place actions with a shared one-goal limit. Perception settings are loaded from the beamline configuration when needed.

5

Sample pick stages

Pick samples using named joint poses or marker-guided approach motion; vision resources are initialized lazily. Result poses represent computed approaches, not raw detections.

4

Sample place stages

Place samples using named joint poses or marker-guided approach motion; vision resources are initialized lazily. Result poses represent computed approaches, not raw detections.

4

Pipettor action server

Expose pipettor driver commands through PipettorAction.

3

Pipettor driver adapter

Forward high-level pipettor commands to the pipettor_operation action; this layer does not build MTC motion tasks.

3

Tool exchange action server

Expose configured dock/load motion through ToolExchangeAction.

3

Tool exchange coordination

Coordinate tool-exchange actions, real-hardware quick-changer voltage release, model relaunch and vision TF invalidation.

4

Tool dock and load stages

Compose load/dock motion from beamline YAML, including reference-dock offset and full-fraction Cartesian insertion/retraction. Voltage and runtime relaunch are handled separately by ToolExchangeManager.

2

Vacuum monitoring state

Track ePick grasp/release state and latch a drop flag. The status subscription is disabled, so normal construction does not receive live vacuum updates.

5

2FG7 ROS driver

Expose the 2FG7 gripper through a ROS action and joint-state publisher, with hardware and mock modes.

10

2FG7 Modbus client

Low-level 2FG7 Modbus RTU client over the UR tool serial bridge. Writes width/force/speed/mode registers at 0x0000 and reads eight status registers at 0x0100. Dataclass GripperStatus holds decoded widths, busy flag, raw status and registers; no auto-connect at construction.

10

Standalone 2FG7 launch

Standalone 2FG7 launch exposes serial_port, slave_id, baudrate and use_mock_hardware and forwards them to the Python driver. Unlike the CMS integrated branch, it uses the driver’s correct mock-parameter name.

1

Standalone ePick launch stub

Minimal standalone ePick controller-manager launch stub. Declares parent/USB/mock arguments but only forwards USB and fake-hardware values; no robot description or controller spawners are provided here.

1