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

CMS robot and MoveIt launch

CMS gripper-parameterized UR driver/MoveIt launch for none, epick, hande, 2fg7 or pipettor, sourcing per-gripper values from beamline YAML. Includes OMPL/Pilz/STOMP and optional joystick Servo. Uses the UR driver’s robot_state_publisher rather than creating another; payload setting is delegated to lifecycle management.

src.custom-ur-descriptions.cms_moveit_config.launch.robot_bringup.launch · Source

Setup and deployment · Guide · Symbol index

How it is used

The lifecycle manager uses this launch to assemble the CMS robot driver and a MoveIt model for the selected tool. generate_launch_description() declares the interface; ROS launch later invokes launch_setup() with resolved argument values. Per-tool files come from the active beamline configuration.

Read launch_setup() to trace tool-specific controllers, drivers, calibration, RViz, and optional Servo startup. The UR driver owns robot_state_publisher; payload setting belongs to lifecycle management. For ePick, launch forwards the selected cup profile through BEAMBOT_EPICK_CUP_PROFILE to the UR driver’s Xacro expansion as well as directly to MoveIt.

Start here

Callable

Purpose

generate_launch_description

Declare the CMS launch interface and defer resolved construction to launch_setup through OpaqueFunction.

launch_setup

Resolve launch arguments, load per-gripper config and build UR control, move_group/RViz and optional joystick/gripper actions. CMS calibration is passed to both planning xacro and UR driver; gripper controllers use overlay files. ePick/Hand-E spawn controllers, 2FG7/pipettor drivers start after three seconds.

Functions

generate_launch_description()

Declare the CMS launch interface and defer resolved construction to launch_setup through OpaqueFunction.

Entry point · Source

generate_launch_description()

Returns: LaunchDescription declaring gripper=none, robot_ip=192.168.1.101, ur_type=ur5e, use_mock_hardware=false, tf_prefix=””, enable_joystick=false, joystick_device_id=0 and cup_profile=3mm_dia_external_air.

Errors: Launch construction errors propagate; gripper choices constrain valid values before setup, while other validation is deferred.

Side effects: Creates launch objects; executing them can start the complete robot/MoveIt/gripper/teleoperation stack.

launch_setup()

Resolve launch arguments, load per-gripper config and build UR control, move_group/RViz and optional joystick/gripper actions. CMS calibration is passed to both planning xacro and UR driver; gripper controllers use overlay files. ePick/Hand-E spawn controllers, 2FG7/pipettor drivers start after three seconds.

Callback · Source

launch_setup(context, *args, **kwargs)

Parameter

Meaning

context

LaunchContext used to resolve gripper, robot_ip, ur_type, use_mock_hardware, tf_prefix and conditional settings.

args

Additional positional OpaqueFunction arguments; unused.

kwargs

Additional keyword OpaqueFunction arguments; unused.

Returns: List of launch actions: ePick cup-profile environment forwarding when applicable, the included UR driver, move_group, RViz, conditional joystick/Servo actions and selected gripper setup.

Errors: ValueError for unsupported gripper; package/config/xacro/YAML errors propagate. 2FG7 branch passes use_fake_hardware although its driver reads use_mock_hardware, so that branch does not reliably enable mock mode.

Side effects: Reads/builds MoveIt configuration during setup. For ePick, a preceding launch action sets BEAMBOT_EPICK_CUP_PROFILE so the UR driver expands the same cup profile as MoveIt. Executing the actions starts drivers, RViz and optional teleoperation; real hardware connections depend on arguments.

Referenced in source (1)