The RML-63 is a 6-DOF robotic arm with an attached gripper, simulated in Gazebo via theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/qualcomm-qrb-ros/qrb_ros_simulation/llms.txt
Use this file to discover all available pages before exploring further.
qrb_ros_sim_gazebo package. It is controlled through the ros2_control stack, which exposes a JointTrajectoryController for the arm and a separate controller for the gripper. Launching the arm is a two-step process: you start Gazebo first, then load the controllers once the simulation is running.
Launch the simulation
Launch Gazebo with the RML-63 arm
In your first terminal, source your install overlay and launch the arm:Gazebo opens and spawns the arm in the default warehouse world. The robot state publisher starts immediately and begins publishing
/robot_description, /tf, and /tf_static.Press Play in Gazebo
Click the Play button in the Gazebo toolbar. The simulation clock starts and the ros2_control controller manager becomes reachable. Do not proceed to the next step until you have pressed Play.
The controller manager is not active until the simulation is running. Loading controllers before pressing Play will fail with a timeout error.
Load the arm and gripper controllers
Open a new terminal, source the install overlay, and run the controller loader launch file:This spawns three controllers in sequence:
joint_state_broadcaster— broadcasts joint positions and velocities to/joint_states.rm_group_controller— aJointTrajectoryControllerfor joints 1–6 of the arm.hand_controller— aJointTrajectoryControllerfor the four gripper joints.
Sending arm commands
Once the controllers are loaded, send joint trajectory goals to the arm using theFollowJointTrajectory action:
control_msgs/action/FollowJointTrajectory. The arm controller accepts position commands for six joints (joint1 through joint6). The gripper controller accepts position commands for joints joint01, joint11, joint02, and joint22.
ROS topics
| Topic | Type | Description |
|---|---|---|
/joint_states | sensor_msgs/msg/JointState | Current position and velocity of all joints |
/robot_description | std_msgs/msg/String | URDF model published by robot_state_publisher |
/tf | tf2_msgs/msg/TFMessage | Real-time coordinate frame transforms |
/tf_static | tf2_msgs/msg/TFMessage | Static coordinate frame transforms |
/clock | rosgraph_msgs/msg/Clock | Simulation time |
/camera/color/image_raw | sensor_msgs/msg/Image | RGB camera image stream |
/camera/color/camera_info | sensor_msgs/msg/CameraInfo | RGB camera intrinsic parameters |
/camera/depth/image_raw | sensor_msgs/msg/Image | Depth image stream |
/camera/depth/camera_info | sensor_msgs/msg/CameraInfo | Depth camera intrinsic parameters |
/camera/depth/points | sensor_msgs/msg/PointCloud2 | 3D point cloud from depth camera |