Author: Florian Hegele University: UMLP Date: 19/12/2025
IMPORTANT NOTE REGARDING HARDWARE: Due to hardware limitations preventing the local execution of the full ROS2 environment, this report is based on a detailed technical analysis of the provided demonstration video, in accordance with the assignment instructions.
The objective of this report is to detail the complete workflow allowing a mobile robot to map an unknown environment (SLAM) and then navigate within it autonomously. Although the exercise mentions the JetBot, the simulation uses a TurtleBot3 Burger, a standard platform for learning mobile robotics whose operating principles (Lidar, Odometry, ROS2) are identical.
The simulation environment is launched via a Python launch file (.launch.py) which orchestrates two major elements:
# Initialization command
TURTLEBOT3_MODEL=burger ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
Upon launching, the robot immediately begins to perceive its immediate environment using its primary sensor: the LiDAR (Light Detection and Ranging).

Fig. 1: The TurtleBot3 robot in the Gazebo environment. The blue rays represent the LiDAR laser impacts detecting obstacles.
The Gazebo simulator manages physics (gravity, wheel friction) and publishes sensor data to ROS "topics", allowing control nodes to react just as they would on a real robot.
To build the map, we use the slam_toolbox in asynchronous mode. This complex ROS node performs data fusion:
# Launching the SLAM node and visualization
ros2 launch slam_toolbox online_async_launch.py use_sim_time:=true use_rviz:=true
In the RViz visualization tool, the result is an "Occupancy Grid":