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
| Path | Description |
|---|---|
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:
# 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.bashRun with the full RBQ stack (Docker)
Run the same stack with the Gazebo simulator inside Docker:
# 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.bashNOTE — 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):
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
export ROS_DOMAIN_ID=0
export CYCLONEDDS_URI=file://$(pwd)/ros2/src/sensor_bridge/config/cyclonedds_gazebo.xmlQoS is the ros_gz_bridge default (override per-topic in ros2/src/sensor_bridge/config/bridge.yaml):
| ROS 2 Topic | Type | QoS | Note |
|---|---|---|---|
/rbq/imu/IMU_state | sensor_msgs/msg/Imu | Reliable · KeepLast 10 | 500 Hz |
/rbq/lidar/lidar_front/points | sensor_msgs/msg/PointCloud2 | Reliable · KeepLast 10 | --livox |
/rbq/lidar/lidar_rear/points | sensor_msgs/msg/PointCloud2 | Reliable · KeepLast 10 | --livox |
/rbq/lidar/lidar_ouster/points | sensor_msgs/msg/PointCloud2 | Reliable · KeepLast 10 | --ouster |
/tf | tf2_msgs/msg/TFMessage | Reliable · KeepLast 10 | world → base_link |
/joint_states | sensor_msgs/msg/JointState | Reliable · KeepLast 10 | — |
See also
- MuJoCo — MuJoCo simulator
- Isaac Gym / Isaac Lab — RL training environments
- Simulator overview
