Skip to content

Gazebo

Introduction

Open-source Ignition Gazebo (Fortress) simulator for the RBQ quadruped robot.

Gazebo runs the full RBQ software stack (Motion / Vision / GUI) against a physics simulation, so you can develop and test robot software without any hardware. In addition, it bridges sensor data onto ROS 2, so external nodes (for example SLAM) can subscribe to the simulated IMU, LiDAR, TF, and joint states. Unlike the Isaac Gym and Isaac Lab environments, the goal here is full-stack simulation, not RL policy training.

Layout

PathDescription
src/Simulator sources → bin/rbq_gazebo
resources/Worlds, robot/sensor URDFs, meshes
ros2/src/sensor_bridge/colcon package: bridge launch, RViz config, DDS xml
scripts/Build / run / Docker scripts

Run with the full RBQ stack (Local)

Run the full RBQ stack (Motion / Vision / GUI) together with the Gazebo simulator:

bash
# Clone
git clone https://github.com/RainbowRobotics/RBQ.git
cd RBQ

# Install dependencies (first time only)
cd rbq_simulator/rbq_gazebo && bash scripts/debian-dep.bash

# Build rbq_gazebo
bash scripts/build.bash

# Run the RBQ stack
cd ../../
bash scripts/sim.bash --vision --no-sim

# Run rbq_gazebo
cd rbq_simulator/rbq_gazebo
bash scripts/gazebo.bash

Run with the full RBQ stack (Docker)

Run the same stack with the Gazebo simulator inside Docker:

bash
# Clone
git clone https://github.com/RainbowRobotics/RBQ.git
cd RBQ

# Run the RBQ stack
bash scripts/sim.bash --vision --no-sim

# Run rbq_gazebo in Docker
cd rbq_simulator/rbq_gazebo
bash scripts/docker/run.bash

NOTE — DDS networking

The simulator shares DDS domain 0 on the loopback interface (lo) with the host RBQ stack. In Docker this is provided by --network host.

External node access (SLAM / custom ROS 2 nodes)

The sensor_bridge publishes on ROS 2 domain 0 over loopback (lo). Run your node from rbq_simulator/rbq_gazebo with these environment variables (CycloneDDS is required to match the bridge):

bash
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
export ROS_DOMAIN_ID=0
export CYCLONEDDS_URI=file://$(pwd)/ros2/src/sensor_bridge/config/cyclonedds_gazebo.xml

QoS is the ros_gz_bridge default (override per-topic in ros2/src/sensor_bridge/config/bridge.yaml):

ROS 2 TopicTypeQoSNote
/rbq/imu/IMU_statesensor_msgs/msg/ImuReliable · KeepLast 10500 Hz
/rbq/lidar/lidar_front/pointssensor_msgs/msg/PointCloud2Reliable · KeepLast 10--livox
/rbq/lidar/lidar_rear/pointssensor_msgs/msg/PointCloud2Reliable · KeepLast 10--livox
/rbq/lidar/lidar_ouster/pointssensor_msgs/msg/PointCloud2Reliable · KeepLast 10--ouster
/tftf2_msgs/msg/TFMessageReliable · KeepLast 10world → base_link
/joint_statessensor_msgs/msg/JointStateReliable · KeepLast 10

See also

This user manual is intended for RBQ users.