Skip to main content

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.

The QRB Robot Base is a differential-drive autonomous mobile robot (AMR) equipped with a LiDAR sensor, an IMU, and odometry. It is the most straightforward model to run: a single launch command starts Gazebo, spawns the robot, and brings up all sensor bridges automatically. No second terminal or Play button interaction is required.

Launch the simulation

ros2 launch qrb_ros_sim_gazebo gazebo_robot_base.launch.py
Gazebo opens, loads the default warehouse world, and spawns the AMR. The ros-gz bridge starts immediately and begins publishing sensor data to ROS 2 topics. The simulation runs without needing to press Play.
The QRB Robot Base AMR starts the simulation automatically. Unlike the arm models, you do not need to press the Play button in Gazebo before the sensors and drive topics are active.

Sending velocity commands

Control the robot’s motion by publishing to /cmd_vel:
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.5}, angular: {z: 0.3}}"
This commands the robot to move forward at 0.5 m/s while turning at 0.3 rad/s.

ROS topics

Sensor topics

TopicTypeDescription
/scansensor_msgs/msg/LaserScanLiDAR scan data (range 0.15 – 25.0 m, update rate 15 Hz)
/imusensor_msgs/msg/ImuAcceleration and angular velocity at 50 Hz
/odomnav_msgs/msg/OdometryWheel odometry: position and velocity

Control and state topics

TopicTypeDescription
/cmd_velgeometry_msgs/msg/TwistVelocity command input (subscribed)
/joint_statessensor_msgs/msg/JointStateWheel joint positions and velocities
/tftf2_msgs/msg/TFMessageReal-time coordinate frame transforms
/tf_statictf2_msgs/msg/TFMessageStatic coordinate frame transforms
/robot_descriptionstd_msgs/msg/StringURDF model published by robot_state_publisher
/clockrosgraph_msgs/msg/ClockSimulation time
All sensors are enabled by default. You can disable individual sensors or provide a custom sensor config file using launch arguments. See Sensor configuration for details.

Build docs developers (and LLMs) love