ROS2 Navigation

ROS2 Autonomous Navigation

My core expertise revolves around the Robot Operating System 2 (ROS2) and the Nav2 navigation framework. I build full-stack autonomous navigation pipelines โ€” from lidar-driven mapping to real-time path execution on competition robots.

Navigation Stack

The Nav2 stack I develop integrates multiple subsystems for robust autonomy:

  • SLAM Toolbox โ€” Real-time 2D LiDAR-based cartography for building and updating maps in unknown environments
  • AMCL โ€” Adaptive Monte Carlo Localization using particle filters for probabilistic pose estimation within known maps
  • EKF Sensor Fusion โ€” Extended Kalman Filter combining wheel odometry, IMU data, and visual odometry for drift-corrected state estimation
  • Custom Planners โ€” From-scratch global and local planners implemented as Nav2 plugins for differential drive and swerve kinematics
  • Behavior Trees โ€” Complex mission logic using Nav2's BT framework for multi-phase autonomous tasks

Technical Details

All navigation code is written in C++ for maximum performance, with Python used for visualization, tuning tools, and high-level mission scripting. The system runs on ROS2 Humble on Ubuntu 22.04, with custom launch configurations for different robot platforms.

Key packages I work with: nav2_bringup, slam_toolbox, robot_localization, tf2, nav2_bt_navigator, and custom lifecycle-managed nodes for hardware interfaces.

View Related Projects โ†’