Most robotics projects rely on ROS NAV2 as a black box. This project built the entire navigation stack from scratch; deployed and tested on a real KELO Robile robot, as well as in Gazebo simulation.
Path Planning was handled by a custom A* global planner that computes optimal routes on a known map, feeding waypoints through a sequential Waypoint Manager to a Potential Field local controller, which balances attraction toward the goal with repulsion from laser-scanned obstacles in real time.
Localization was implemented as both a vanilla Particle Filter (MCL) and a more sophisticated KLD-adaptive AMCL with likelihood-field sensor modeling, cluster-based pose estimation, and recovery injection, publishing the map→odom transform directly into the ROS TF tree.
Autonomous Exploration combined SLAM Toolbox for live map building with a custom Frontier Explorer that continuously identifies boundaries between known and unknown space, selects exploration goals, and drives the full planning pipeline, enabling the robot to map an unknown environment entirely on its own.
The full system features a clean cancellation chain across all nodes, separate configs for real-robot and simulation modes, and runs without any NAV2 dependency.
A Path Planning + Potential Field Controller | ROS2 Navigation WITHOUT Nav2**: https://youtu.be/nya_zI9f6i8
Particle Filter Localization (AMCL) | ROS2 Navigation WITHOUT Nav2**: https://youtu.be/hdpkfR94zl8
Frontier Exploration + SLAM Toolbox | ROS2 Autonomous Navigation WITHOUT Nav2** : https://youtu.be/HbuEOJ_evas