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

Package index

Find each ROS package’s purpose, build type, and declared dependencies. See integrations for source-only clients. Imported driver repositories are described under end effectors and cameras.

Build and installation

EROBS builds with colcon; see Installation for the full procedure. The official ROS 2 workspace tutorial explains colcon, packages, and overlays.

Package or directory

Installation mechanism

Result

beambot_interfaces

rosidl_generate_interfaces

Nine generated ROS action types

beambot

ament_cmake_python plus explicit CMake installs

Python package, executable scripts, launch, config and spincoater segmentation weights

mtc_gui

Setuptools/ament metadata

mtc_gui_client entry point, launch file and viewer resources

CMS/LIX model packages

CMake directory installs

Model, SRDF, planner/controller and visualization resources

cms_moveit_config

CMake compilation and install

cms_servo_node alongside configuration

Demo packages

CMake Python/script installs and generated interfaces

Separate teaching servers/client and three action types

src/bluesky_ros

No colcon package metadata

Importable from the source parent; not installed by colcon

The beambot CMake rules install models/spincoater_sample_seg.pt under the package share directory; the spincoater loader reads that installed path. They do not install the mcp_server/ or CMS/LIX data directories, and have no explicit install rule for the agent’s robot_operation.md prompt. Those resources are read from the source checkout.

Some package.xml dependencies are loaded by plugins or controller spawners rather than Python imports, so an unused import is not evidence that a dependency can be removed.

Optional Python features (learned vision, chat/MCP, Bluesky/EPICS) are installed separately; see optional Python features.

Repository tooling: pre-commit runs file/YAML checks, Ruff and ament linters, and some hooks rewrite files. GitHub workflows run Ruff and Super-Linter and publish Docker images; see container images.

beambot

Beambot: robotic sample handling framework for synchrotron beamlines

Source: src/beambot/package.xml. Declared build type: ament_cmake.

Responsibilities and usage.

Declared dependencies: ament_cmake, ament_cmake_python, ament_index_python, beambot_interfaces, geometry_msgs, moveit_msgs, moveit_task_constructor_core, octomap_msgs, octomap_server, python3-yaml, rclpy, rosbridge_server, sensor_msgs, sensor_msgs_py, shape_msgs, std_msgs, std_srvs, tf2_geometry_msgs, tf2_ros, tf_transformations, tracetools_analysis, tracetools_launch, ur_msgs.

beambot_interfaces

Action definitions for beambot robot task execution framework

Source: src/beambot_interfaces/package.xml. Declared build type: ament_cmake.

Responsibilities and usage.

Declared dependencies: ament_cmake, rosidl_default_generators, rosidl_default_runtime, std_msgs.

cms_moveit_config

Unified MoveIt configuration for UR5e with parameterized gripper support. Supports: none (standalone), epick, hande, 2fg7, pipettor via gripper:= launch arg.

Source: src/custom-ur-descriptions/cms_moveit_config/package.xml. Declared build type: ament_cmake.

Responsibilities and usage.

Declared dependencies: ament_cmake, cms_robot_description, joy, launch_param_builder, moveit_configs_utils, moveit_kinematics, moveit_msgs, moveit_planners, moveit_ros_move_group, moveit_servo, moveit_simple_controller_manager, moveit_task_constructor_capabilities, moveit_task_constructor_visualization, parallel_gripper_controller, rclcpp, teleop_twist_joy, tf2_ros, ur_robot_driver, xacro.

cms_robot_description

This package creates robot descriptions for UR5e robotic systems with various end-effector configurations

Source: src/custom-ur-descriptions/cms_robot_description/package.xml. Declared build type: ament_cmake.

Responsibilities and usage.

Declared dependencies: ament_cmake, epick_config, ur_description, ur_robot_driver, zivid_description.

lix_moveit_config

MoveIt configuration for UR5e + Hand-E at the LiX beamline. Single gripper, no tool exchange, no camera.

Source: src/custom-ur-descriptions/lix_moveit_config/package.xml. Declared build type: ament_cmake.

Responsibilities and usage.

Declared dependencies: ament_cmake, lix_robot_description, moveit_configs_utils, moveit_kinematics, moveit_planners, moveit_ros_move_group, moveit_simple_controller_manager, moveit_task_constructor_capabilities, moveit_task_constructor_visualization, parallel_gripper_controller, tf2_ros, ur_robot_driver, xacro.

lix_robot_description

Robot description for UR5e + Hand-E at the LiX beamline (no camera, no tool exchange)

Source: src/custom-ur-descriptions/lix_robot_description/package.xml. Declared build type: ament_cmake.

Responsibilities and usage.

Declared dependencies: ament_cmake, robotiq_hande_description, ur_description.

hello_orchestrator_py

Python demo of orchestrator pattern dispatching to specialized MTC action servers

Source: src/demos/hello_orchestrator_py/package.xml. Declared build type: ament_cmake.

Responsibilities and usage.

Declared dependencies: ament_cmake, ament_cmake_python, hello_orchestrator_py_interfaces, moveit_task_constructor_core, rclpy.

hello_orchestrator_py_interfaces

Action interfaces for hello_orchestrator_py

Source: src/demos/hello_orchestrator_py_interfaces/package.xml. Declared build type: ament_cmake.

Responsibilities and usage.

Declared dependencies: action_msgs, ament_cmake, rosidl_default_generators, rosidl_default_runtime.

epick_config

Overlay configuration for ros2_epick_gripper (pose and serial port).

Source: src/end_effectors/epick_config/package.xml. Declared build type: ament_cmake.

Responsibilities and usage.

Declared dependencies: ament_cmake, launch_ros, ros2_control, xacro.

onrobot_2fg7_description

URDF description for the OnRobot 2FG7 parallel gripper.

Source: src/end_effectors/onrobot_2fg7_description/package.xml. Declared build type: ament_cmake.

Responsibilities and usage.

Declared dependencies: ament_cmake, robot_state_publisher, xacro.

onrobot_2fg7_driver

ROS2 driver for OnRobot 2FG7 parallel gripper via Modbus RTU.

Source: src/end_effectors/onrobot_2fg7_driver/package.xml. Declared build type: ament_cmake.

Responsibilities and usage.

Declared dependencies: ament_cmake, ament_cmake_python, control_msgs, launch_ros, python3-pymodbus, rclpy, sensor_msgs, std_msgs.

mtc_gui

Graphical User Interface for beambot pipeline

Source: src/mtc_gui/package.xml. Declared build type: ament_python.

Responsibilities and usage.

Declared dependencies: action_msgs, ament_index_python, beambot_interfaces, cv_bridge, launch, launch_ros, moveit_msgs, python3-numpy, python3-opencv, python3-pyqt6, python3-pyqt6.qtwebengine, python3-yaml, rclpy, sensor_msgs, std_msgs, std_srvs.