Gazebo simulation package for a 1/10 scale autonomous racing vehicle equipped with a Livox Mid-360 LiDAR.
- Ackermann Steering — Realistic steering kinematics with inner/outer wheel differentiation
- Livox Mid-360 LiDAR — Non-repetitive scan pattern, PointCloud2 output (10Hz, 20k pts/frame)
- IMU — 200Hz built-in IMU sensor on the LiDAR frame
- Ground Truth Publisher — Broadcasts
map -> base_linkTF, publishesbase_poseandbase_odom - Joystick Support — Deadman switch + analog stick control via joy_node
- ICRA Racetrack — Pre-built racing course world
- Multi-Agent — Supports spawning two vehicles simultaneously
- Ubuntu 20.04
- ROS Noetic
- Gazebo Classic 11
mkdir -p ~/ws_gazebo_roboracer/src && cd ~/ws_gazebo_roboracer/src
git clone git@github.com:HangyoCho/roboracer_gazebo.git
cd roboracer_gazebo
./setup.sh
source ~/ws_gazebo_roboracer/devel/setup.bash# Single vehicle with keyboard teleop on ICRA racetrack
roslaunch roboracer_gazebo icra_racetrack.launch
# Single vehicle (default world)
roslaunch roboracer_gazebo unicorn.launch
# Without teleop
roslaunch roboracer_gazebo unicorn.launch teleop:=false
# Two vehicles
roslaunch roboracer_gazebo dual_unicorn.launch
# Headless (no GUI)
roslaunch roboracer_gazebo unicorn.launch gui:=false| Topic | Type | Description |
|---|---|---|
/livox/lidar |
sensor_msgs/PointCloud2 |
LiDAR point cloud (10Hz) |
/livox/imu |
sensor_msgs/Imu |
IMU data (200Hz) |
/glim_ros/base_pose |
geometry_msgs/PoseStamped |
Ground truth pose (rear axle) |
/glim_ros/base_odom |
nav_msgs/Odometry |
Ground truth odometry |
/cmd_vel |
geometry_msgs/Twist |
Velocity command input |
map -> base_link -> chassis
-> livox_mid360 -> imu
-> lidar
roboracer_gazebo/
├── config/ # Controller PID parameters
├── docs/ # Detailed documentation
├── launch/ # Launch files
├── meshes/ # 3D models (STL, DAE)
├── scripts/ # Teleop, twist-to-joint bridge, GT publisher, visualization
├── thirdparty/ # Livox-SDK, LiDAR simulation plugin, ROS driver
├── urdf/ # Vehicle URDF/Xacro model
└── world/ # Gazebo world files
setup.sh installs all dependencies automatically.
| Package | Source | Description |
|---|---|---|
| Livox-SDK | thirdparty | C++ SDK (built from source) |
| livox_laser_simulation | thirdparty | Gazebo LiDAR plugin |
| livox_ros_driver | thirdparty | ROS driver |
| libapr1-dev, libpcl-dev, ros-noetic-pcl-ros | apt | System libraries |
MIT