How carol-here/ros2-lidar-slam-simulation works
This ROS 2 project defines a differential-drive robot and launch workflows for displaying it or simulating it in Gazebo. The documented user workflow is to start the simulation, send keyboard velocity commands, use LiDAR and odometry for SLAM mapping, and view the robot and map in RViz. SLAM, teleoperation, and RViz are external ROS tools, not implemented here. The launch files and robot model support the repository-side links; sensor, drive, and mapping data flow is based on the README rather than sampled plugin or SLAM configuration source.
Main entry points: gazebo.launch.py Gazebo launch · display.launch.py Display launch · robot.urdf.xacro Robot description
Components 14
Launch workflows
- Gazebo launch
launch/gazebo.launch.py - Display launch
launch/display.launch.py
Robot model
- Robot description
urdf/robot.urdf.xacro
Simulation and mapping
- Gazebo Classic
- Entity spawner
- Robot state publisher
- Joint state publisher
- Differential drive
- LiDAR sensor
- Keyboard teleop
- SLAM Toolbox
- RViz2
- Occupancy map
Other components
- Operator
Connections 20
- Operator → Gazebo launch: starts
- Operator → Display launch: starts
- Gazebo launch → Robot description: loads
- Display launch → Robot description: loads
- Gazebo launch → Gazebo Classic: starts
- Gazebo launch → Robot state publisher: starts
- Gazebo launch → Entity spawner: starts
- Gazebo launch → Entity spawner: delays
- Display launch → Robot state publisher: starts
- Display launch → Joint state publisher: starts
- Robot description → Entity spawner: describes
- Robot description → Robot state publisher: describes
- Keyboard teleop → Differential drive: publishes /cmd_vel
- Differential drive → Gazebo Classic: controls motion
- Gazebo Classic → LiDAR sensor: simulates
- LiDAR sensor → SLAM Toolbox: publishes /scan
- Gazebo Classic → SLAM Toolbox: provides /odom and /tf
- SLAM Toolbox → Occupancy map: builds /map
- Occupancy map → RViz2: visualizes
- Robot state publisher → RViz2: publishes /tf