Module 13 · Phase 4: Localization and autonomy
Navigation Stack & Autonomous Motion Planning
Select planners and controllers, configure Nav2 on ROS 2 Jazzy, tune costmaps and footprints, set up recovery behaviors and validate navigation in a real building.
This overview is open. 6 of 6 guides are written; the others show Coming soon until they are complete and tested.
Questions this module answers
- How do I choose a global planner and a local controller?
- How do I configure Nav2 and tune the costmaps and footprint?
- Why does the robot oscillate near obstacles or fail in narrow corridors?
- How do I configure recovery behaviors and validate navigation on site?
What it covers
- A*, Dijkstra, Hybrid A*, state lattice, sampling-based planning
- Costmaps, obstacle layers, inflation, footprint
- Dynamic obstacles, trajectory generation, MPC navigation
- Nav2, behavior trees, recovery
Guides and design decisions
A. Engineering Guides (4)
B. Design & Selection (2)
Diagnostics, tools and challenges
C. Troubleshooting (4)
- Robot oscillates near obstaclesThe robot swings left and right or dithers beside an obstacle.
- Robot fails in narrow corridorsPlanning succeeds in open space and fails in doorways or corridors.
- Path planning failsThe planner reports no valid path to a reachable goal.
- Robot gets stuckRecoveries repeat without progress.
E. Design challenges (2)
- Challenge 1: Design an Autonomous Mobile RobotIndoor differential-drive robot: sensors, motor sizing, compute, power, ROS 2, LiDAR+IMU, SLAM, Nav2, tuning and validation.
- Challenge 6: Multi-Robot Fleet DeploymentFleet of mobile robots: architecture, networking, fleet management, task allocation, traffic, monitoring and recovery.
Practical deliverables
- Annotated Nav2 configuration files
- Parameter explanations
- Debugging commands
- Tuning procedure
Read first: existing FixTheRobot lessons and labs
This module builds on these instead of repeating them.
- Nav2 Architecture Navigation · Lesson
- Tuning a Navigation Stack Navigation · Lesson
- Layered Costmaps Navigation · Lesson
- Choosing a Local Planner Navigation · Lesson
- Lint a Nav2 Parameter File Navigation · Lab
- Validate a Behavior Tree Navigation · Lab
- Bring Up Nav2 in Simulation Navigation · Lab
- SLAM and Nav2 Integration SLAM · Lesson