Documentation 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 Simulation exposes its internal Gazebo state to the rest of the ROS graph through a set of bridged topics managed by the ros-gz stack. This page documents every topic the simulation publishes and the single topic it subscribes to for robot control. Not all topics are active for every launch — sensor topics are only bridged when their corresponding sensor is enabled and the robot model supports it.
If you launch with a non-empty namespace parameter, every topic listed here is prefixed with that namespace. For example, setting namespace:=robot1 produces /robot1/scan instead of /scan.
Published topics
These topics are produced by the simulation and consumed by your ROS application.
Always available
The following topics are published regardless of robot model or sensor configuration.
| Topic | Type | Description |
|---|
/clock | rosgraph_msgs/msg/Clock | Simulation time, sourced from Gazebo and bridged to ROS. Required for any node using use_sim_time:=true. |
Robot-base models
The following topics are published by all robot-base models: QRB Robot Base AMR, QRB Robot Base AMR Mini, and QRB Mobile Manipulator. They are not published by the standalone RML-63 Robotic Arm.
| Topic | Type | Description |
|---|
/tf | tf2_msgs/msg/TFMessage | Real-time coordinate frame transforms broadcast by the robot state publisher. |
/tf_static | tf2_msgs/msg/TFMessage | Static coordinate frame transforms for fixed joints in the robot model. |
/robot_description | std_msgs/msg/String | URDF description of the robot model, published by robot_state_publisher. |
/joint_states | sensor_msgs/msg/JointState | Current position and velocity of all joints in the robot model. |
The RML-63 Robotic Arm also publishes /robot_description, /tf, /tf_static, and /joint_states — these come from the ros2_control controller stack rather than the differential driver bridge, and are available after the controllers are loaded.
Camera topics
Camera topics are available on models with camera support: the RML-63 Robotic Arm, QRB Robot Base AMR Mini, and QRB Mobile Manipulator. The standard QRB Robot Base AMR does not include cameras. Camera topics are only bridged when enable_rgb_camera or enable_depth_camera is set to "true" (both default to "true" on supported models).
| Topic | Type | Description |
|---|
/camera/color/camera_info | sensor_msgs/msg/CameraInfo | Intrinsic calibration parameters for the RGB camera. |
/camera/color/image_raw | sensor_msgs/msg/Image | Raw image stream from the RGB camera. |
/camera/depth/camera_info | sensor_msgs/msg/CameraInfo | Intrinsic calibration parameters for the depth camera. |
/camera/depth/image_raw | sensor_msgs/msg/Image | Raw depth image stream from the depth camera. |
/camera/depth/points | sensor_msgs/msg/PointCloud2 | 3D point cloud generated from the depth camera. |
Conditional sensor topics
These topics are published on robot-base models when the corresponding sensor is enabled at launch time.
| Topic | Type | Enabled when | Description |
|---|
/scan | sensor_msgs/msg/LaserScan | enable_laser:=true | LiDAR scan data from the simulated laser sensor. |
/imu | sensor_msgs/msg/Imu | enable_imu:=true | IMU data including linear acceleration and angular velocity. |
/odom | nav_msgs/msg/Odometry | enable_odom:=true | Odometry data including estimated position and velocity. |
Subscribed topics
The simulation subscribes to one topic for robot motion control.
| Topic | Type | Available on | Description |
|---|
/cmd_vel | geometry_msgs/msg/Twist | AMR models | Velocity commands for the differential drive controller. Publish linear and angular velocity to move the robot. |
Inspecting topics at runtime
Use the standard ros2 topic commands to inspect the simulation’s topic graph.
List all active topics:
Echo the LiDAR scan:
Check the publishing rate of a topic:
Print the full message type definition:
ros2 topic info /cmd_vel --verbose
Run with use_sim_time:=true on any node that needs to stay synchronized with the Gazebo clock. Nodes that do not set this parameter use wall-clock time and may behave unexpectedly with simulation data.