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.
Each sensor in QRB ROS Simulation is configured through a dedicated YAML file. The launch system loads these files at startup and applies their values to the corresponding Gazebo sensor plugin. You can override the default config file for any sensor by passing the path to your custom file as a launch argument, for example:
ros2 launch qrb_ros_sim_gazebo gazebo_robot_base.launch.py \
laser_config_file:=/path/to/custom_laser.yaml
The default config files are located in the installed package at qrb_ros_sim_gazebo/config/params/. The sections below show the full contents of each file and explain the key parameters.
Sensor config files
LiDAR
IMU
RGB camera
Depth camera
Two LiDAR config files are provided — one for the AMR and one for the AMR Mini. Both sensors share the same topic name, range, and noise settings, but differ in their horizontal scan coverage.# laser parameters for qrb robot base
sensor_name: "qrb_robot_base_lidar"
update_rate: 15
horizontal:
samples: 1150
resolution: 1
min_angle: -2.005
max_angle: 2.005
vertical:
samples: 1
resolution: 1
min_angle: 0
max_angle: 0
range:
min: 0.15
max: 25.0
resolution: 0.01
noise:
type: "gaussian"
mean: 0.0
stddev: 0.01
always_on: 1
visualize: "true"
topic: "scan"
The AMR LiDAR covers a horizontal arc of approximately ±115° (–2.005 to +2.005 radians) with 1150 samples per scan.# laser parameters for qrb robot base mini
sensor_name: "qrb_robot_base_lidar"
update_rate: 15
horizontal:
samples: 1800
resolution: 1
min_angle: -3.124139
max_angle: 3.14159
vertical:
samples: 1
resolution: 1
min_angle: 0
max_angle: 0
range:
min: 0.15
max: 25.0
resolution: 0.01
noise:
type: "gaussian"
mean: 0.0
stddev: 0.01
always_on: 1
visualize: "true"
topic: "scan"
The AMR Mini LiDAR covers a near-full 360° arc (–3.124 to +3.142 radians) with 1800 samples per scan. Key parameters:| Parameter | Description |
|---|
sensor_name | Internal Gazebo sensor name |
update_rate | Scan frequency in Hz |
horizontal.samples | Number of rays per horizontal scan |
horizontal.min_angle / max_angle | Horizontal scan arc in radians |
range.min / range.max | Minimum and maximum detection distance in meters |
range.resolution | Distance measurement resolution in meters |
noise.stddev | Standard deviation of Gaussian range noise in meters |
topic | ROS topic name; bridged to /scan |
Both models use a single-layer (2D) LiDAR: vertical.samples is fixed at 1 with both angle values set to 0. For 3D LiDAR simulation you would need a custom sensor definition.
The IMU config file is shared across all robot base models.# IMU parameters
sensor_name: "imu"
update_rate: 50
always_on: 1
visualize: "true"
topic: "imu"
Key parameters:| Parameter | Description |
|---|
sensor_name | Internal Gazebo sensor name |
update_rate | Measurement frequency in Hz |
always_on | Keep the sensor active even when no subscribers are present (1 = enabled) |
visualize | Render sensor visualization in the Gazebo GUI |
topic | ROS topic name; bridged to /imu |
The IMU publishes sensor_msgs/msg/Imu messages containing linear acceleration and angular velocity at 50 Hz. The RGB camera is available on the QRB Mobile Manipulator robot.# rgb camera parameters
sensor_name: "rgb_camera"
update_rate: 15
camera:
horizontal_fov: 1.640609
camera_info_topic: "camera/color/camera_info"
image:
width: 1280
height: 720
format: "R8G8B8"
clip:
near: 0.02
far: 100
always_on: 1
visualize: "true"
enable_metrics: "true"
topic: "camera/color/image_raw"
Key parameters:| Parameter | Description |
|---|
sensor_name | Internal Gazebo sensor name |
update_rate | Frame rate in Hz |
camera.horizontal_fov | Horizontal field of view in radians (~94°) |
camera.image.width / height | Image resolution in pixels (1280×720) |
camera.image.format | Pixel format; R8G8B8 is 24-bit RGB |
camera.clip.near / far | Near and far clip planes in meters |
camera_info_topic | Topic for camera calibration metadata |
topic | Topic for raw image frames |
The depth camera is available on the QRB Mobile Manipulator robot.# depth camera parameters
sensor_name: "depth_camera"
update_rate: 15
camera:
horizontal_fov: 1.570796
image:
width: 640
height: 360
depth_camera:
clip:
near: 0.02
far: 20
noise:
type: "gaussian"
mean: 0
stddev: 0.003
always_on: 1
visualize: "true"
topic: "camera/depth"
Key parameters:| Parameter | Description |
|---|
sensor_name | Internal Gazebo sensor name |
update_rate | Frame rate in Hz |
camera.horizontal_fov | Horizontal field of view in radians (90°) |
camera.image.width / height | Depth image resolution in pixels (640×360) |
depth_camera.clip.near / far | Minimum and maximum depth range in meters |
noise.stddev | Standard deviation of Gaussian depth noise in meters |
topic | Base topic name; remapped to camera/depth/image_raw by the bridge |
The depth camera bridge also publishes a sensor_msgs/msg/PointCloud2 on camera/depth/points and calibration metadata on camera/depth/camera_info.
Using a custom config file
To use your own sensor parameters, create a YAML file following the same structure as the defaults shown above, then pass its path as the corresponding launch argument:
# Custom LiDAR config
ros2 launch qrb_ros_sim_gazebo gazebo_robot_base.launch.py \
laser_config_file:=/path/to/custom_laser.yaml
# Custom IMU config
ros2 launch qrb_ros_sim_gazebo gazebo_robot_base.launch.py \
imu_config_file:=/path/to/custom_imu.yaml
# Custom camera configs (Mobile Manipulator only)
ros2 launch qrb_ros_sim_gazebo gazebo_mobile_manipulator.launch.py \
rgb_camera_config_file:=/path/to/custom_rgb.yaml \
depth_camera_config_file:=/path/to/custom_depth.yaml
You can also specify custom sensor config paths inside a YAML launch config file:
laser_config_file: "/path/to/custom_laser.yaml"
imu_config_file: "/path/to/custom_imu.yaml"
Custom sensor config files must include all required fields for their sensor type. Omitting a required field will cause the sensor plugin to fail at startup. Use the default files shown above as complete templates.