Simulation
The genbu_simulator package provides a Gazebo simulation environment for the Genbu robot.
Prerequisites
- ROS 2 (Jazzy or later)
ros_gz_sim,ros_gz_bridgepackagesgenbu_descriptionpackage
Launching the Simulation
Use sim_bringup.launch.xml to start the full simulation stack:
ros2 launch genbu_simulator sim_bringup.launch.xml
This launch file:
- Starts the Gazebo simulator with the selected world.
- Launches the robot state publisher (with
use_sim_time:=true). - Spawns the Genbu robot into the simulation.
- Bridges the lidar sensor data from Gazebo to the ROS 2
/scantopic.
Launch Arguments
| Argument | Default | Description |
|---|---|---|
world |
default |
Name of the world file to load (see Available Worlds). |
robot_name |
genbu |
Name assigned to the spawned robot entity in Gazebo. |
Selecting a World
Pass the world argument to choose a different simulation environment:
ros2 launch genbu_simulator sim_bringup.launch.xml world:=obstacle_course
Available Worlds
| World | Description |
|---|---|
default |
Empty flat plane with directional lighting. Good for basic bring-up testing. |
obstacle_course |
Flat plane populated with box pillars and cylinders placed around the robot's starting position to exercise obstacle detection and navigation. |
ROS 2 Topics
Once the simulation is running, the following topics are available:
| Topic | Type | Description |
|---|---|---|
/scan |
sensor_msgs/msg/LaserScan |
Lidar scan data bridged from the Gazebo GPU lidar sensor. |
/robot_description |
std_msgs/msg/String |
URDF published by the robot state publisher. |
/tf |
tf2_msgs/msg/TFMessage |
Transform tree published by the robot state publisher. |
Notes
WSL / Non-NVIDIA Environments
The sim_bringup.launch.xml file automatically sets the following environment variables to enable Mesa software rendering when a hardware GPU is not available (e.g. WSL or CI environments):
| Variable | Value |
|---|---|
LIBGL_ALWAYS_SOFTWARE |
1 |
GALLIUM_DRIVER |
llvmpipe |
No extra configuration is required; the launch file handles this automatically.