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.