Set up the environment
Get something moving before reading anything
Install ROS 2 Humble first. It is the recommended LTS version for Nav2 and has the widest package support.
The official Nav2 getting started guide. Run TurtleBot4 in Gazebo and navigate to a goal point. TurtleBot4 runs ROS 2 natively and is the current ROBOTIS reference platform.
The current reference platform for Nav2, with native ROS 2 support. Simulates with Ignition Gazebo out of the box — no hardware needed.
TurtleBot4 navigates to a clicked goal point in simulation. Can launch the stack, build a map with teleop, save it, and send a Nav2 goal.
Understand localization
How does the robot know where it is?
The algorithm behind Nav2's AMCL package. Explains how the robot uses particle filters to localize itself on a known map using laser scan data.
Before AMCL can localize, you need a map. SLAM Toolbox is the standard tool in Nav2 for building one from lidar data.
Can explain what AMCL is doing when the robot localizes. Understands the difference between mapping mode and localization mode.
Understand collision avoidance
How does the robot avoid obstacles in real time?
The algorithm behind Nav2's DWB controller. Only 8 pages, very clearly written. Explains how the robot samples velocity commands and picks the one that avoids obstacles while tracking the global path.
Costmaps are how Nav2 represents obstacles for both the global and local planner. Understanding inflation radius and layer configuration is essential for any real deployment.
Can tune costmap inflation radius and explain the effect. Understands the role of the local planner versus the global planner.
Understand the full system
How do all the modules fit together?
The official Nav2 architecture paper by its main author, Steve Macenski. Read this after running Nav2 for a few days — every design decision will make sense in context.
Watch alongside the Marathon 2 paper. The author walks through every component in a live setting, which helps connect the paper to actual code.
Can draw the full Nav2 pipeline from scratch: sensor → costmap → BT navigator → global planner → local controller → cmd_vel.
Supplementary references
Keep these open throughout. Reach for them when you hit a wall.
The definitive reference when tuning any Nav2 component. Bookmark this and use it constantly.
Dynamic obstacles, custom plugins, multi-robot, GPS navigation, and real hardware deployment.
The RPP controller in Nav2 — a simpler and more robust alternative to DWB for many real-world use cases.
The current recommended global planner in Nav2, replacing the older NavFn. Supports SE2 and hybrid-A* planning for non-holonomic robots.
When stuck, these are the fastest ways to get answers. The Nav2 Discord is especially active.