TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/MRRP-lab/arm-demos/llms.txt
Use this file to discover all available pages before exploring further.
colman_description package contains the Xacro robot model and ros2_control controller configuration files for the Colman arm. It is the single source of truth for the robot’s kinematic structure, inertial properties, and hardware interface parameters used by robot_state_publisher, the controller manager, and MoveIt 2.
Robot model
colman.urdf.xacro
The top-level Xacro file that assembles the complete robot by composing upstream description packages. It accepts two parameters that control which links and hardware interfaces are included:Selects the end-effector model and the corresponding ros2_control hardware interface.
| Value | Gripper description source | Controller config |
|---|---|---|
custom | gripper_description | gripper_controllers.yaml |
robotiq | robotiq_description | robotiq_controllers.yaml |
vacuum | gripper_description (vacuum tip) | gripper_controllers.yaml |
When
true, the OAK-D Pro depth camera model from oakd_description is attached to the wrist link. Set to false for configurations without the camera.ur_robot_driver connection parameters (robot_ip, ur_type, tf_prefix, use_mock_hardware, headless_mode, script ports, etc.) to the upstream ur_description macro so a single file covers both real hardware and mock/simulation modes.
In simulation the bringup uses
colman_gazebo/urdf/colman_gazebo.xacro instead of this file, which adds Gazebo-specific plugins. The two files share the same Xacro parameters so launch arguments are identical.Controller configuration
gripper_controllers.yaml
Used whengripper_type is custom or vacuum. Configures controller_manager at 1000 Hz and defines four controllers:
| Controller | Type |
|---|---|
joint_state_broadcaster | joint_state_broadcaster/JointStateBroadcaster |
joint_trajectory_controller | joint_trajectory_controller/JointTrajectoryController |
forward_velocity_controller | velocity_controllers/JointGroupVelocityController |
forward_position_controller | position_controllers/JointGroupPositionController |
gripper_controller | position_controllers/GripperActionController |
joint_trajectory_controller controls all six UR joints via position command interfaces, publishing joint state at 100 Hz. The gripper_controller drives the servotodrivegear joint.
robotiq_controllers.yaml
Used whengripper_type is robotiq. Identical arm controller definitions as above, but replaces gripper_controller with:
| Controller | Type |
|---|---|
robotiq_gripper_controller | position_controllers/GripperActionController |
robotiq_85_left_knuckle_joint with a goal tolerance of 0.01 rad, max velocity 1.0 rad/s, and a 2 s stall timeout.
Runtime usage
colman_description does not expose any executables of its own. It is consumed by other packages:
colman_bringup
bringup.launch.py and rsp.launch.py invoke xacro on colman.urdf.xacro and pass the result to robot_state_publisher. The controller YAML files are loaded by ros2_control_node.colman_moveit_config
colman_moveit.urdf.xacro inside colman_moveit_config wraps this description (without the ur_robot_driver hardware interfaces) to produce a model suitable for move_group.External dependencies
The package composes its URDF from these upstream description packages:ur_description— UR3e kinematic chain and meshesrobotiq_description— Robotiq 2F-85 gripper modeloakd_description— OAK-D Pro camera link and visualsgripper_description— custom parallel gripper and vacuum tip models