TurtleBot3 SLAM & Localization

TurtleBot3 SLAM & Localization

November 2024
robotics slam python c++

Overview

Final Autonomous Robotics project developed in ROS 2 Humble. We engineered a complete robotics stack from mathematical foundations: simultaneous localization and mapping (SLAM) with particle filtering and occupancy grids, AMCL probabilistic localization, and autonomous navigation, deployed both in simulation and on a physical TurtleBot3 Burger robot.

Key Features

  • Custom Particle Filter SLAM: Implemented Monte Carlo particle filtering with odometry motion modeling, LiDAR scan matching, and map log-odds updates in Python.
  • Occupancy Grid Mapping & Ray Tracing: Computed inverse sensor models with 2D Bresenham ray tracing to construct metric maps of unknown environments.
  • ROS 2 Navigation & Transforms: Configured Nav2 stack, costmaps, planner/controller servers, and dynamic TF2 coordinate transforms (map -> odom -> base_footprint -> base_scan).
  • Physical Hardware Validation: Deployed the ROS 2 workspace directly to the TurtleBot3 Burger hardware, validating LiDAR perception, wheel encoders, and motor control on a real physical arena track.

Architecture & Implementation

ROS 2 nodes process laser scans (/scan) and wheel odometry (/odom). A custom particle filter node propagates robot pose hypotheses and updates occupancy grid probabilities. The Nav2 planner computes optimal paths around obstacles, with TF2 broadcasting dynamic coordinate frames in real time.

Results & Performance

Successfully constructed high-resolution metric grid maps and executed autonomous navigation goals both in Gazebo simulated mazes and on physical university robotics laboratory tracks without collisions.

Tech Stack

ROS 2 Humble Python C++ TurtleBot3 Burger Gazebo RViz2 Nav2 TF2 LiDAR Linux