This project is a ROS 2 4-wheel-drive mobile robot simulated end-to-end in Gazebo and visualized in RViz. The robot integrates LiDAR and RGB camera sensors and supports full teleoperation, serving as a complete baseline for mobile robot perception, motion, and system bringup which is built using a modular ROS 2 package architecture rather than a single monolithic node.
The project is structured around four core focus areas:
The robot's URDF/Xacro files define its structure, wheels, sensor mounts, and coordinate frames, while ROS 2 launch files handle spawning the robot into the Gazebo world along with its controllers and sensor plugins. The LiDAR publishes live scan data on /laser_scan, and the RGB camera streams image data for vision-based tasks. In RViz, the full TF tree, robot model, laser scan, and sensor data are visualized simultaneously, while keyboard teleoperation drives the robot in real time via /cmd_vel velocity commands which gives a complete simulation-to-visualization-to-control loop for mobile robot development.
Project Highlights
The project is split into two ROS 2 packages. The description package holds the robot's URDF/Xacro files, defining its structure, wheels, sensors, and coordinate frames that are kept entirely independent of simulation logic.
The bringup package handles the Gazebo world, spawns the robot, and launches its controllers and sensor plugins through ROS 2 launch files, so the same description can later be reused across different simulation or hardware bringups.
A simple data flow governs operation: Spawn → Sense (LiDAR + Camera) → Visualize (RViz) → Teleop Control → Motion (4WD).
/laser_scan data, supporting downstream perception and mapping work straight out of the box.