← All projectsIn progress

navstack: Autonomous Robot Navigation

A full navigation stack for a differential-drive robot: EKF localization, occupancy grid mapping, hybrid A* planning and DWA control.

The problem

A mobile robot has to answer four questions continuously: where am I, what's around me, how do I get there, and how do I move right now. An error in any one shows up in all the others.

What I built

  • Implemented EKF localization fusing odometry and sensor measurements
  • Built occupancy grid mapping of the robot's surroundings
  • Implemented hybrid A* for kinematically feasible global paths
  • Implemented a dynamic window approach (DWA) local controller, integrated with ROS 2 and Nav2 in Gazebo

Key decisions

Hybrid A* instead of grid A*

A differential-drive robot can't turn in place along any path; hybrid A* plans only paths it can actually drive.

Each module built and tested in simulation first

Gazebo makes failures reproducible, so localization, mapping, planning and control can be debugged one at a time.

Progress

0 of 5 milestones
  1. EKF localization
  2. Occupancy grid mapping
  3. Hybrid A* global planner
  4. DWA local controller
  5. Closed-loop navigation in Gazebo

Tech stack

ROS 2Nav2GazeboEKFHybrid A*DWA