L13: Mapping and Navigation with Nav2#
Overview#
This lecture covers how a mobile robot builds a model of its
environment and uses that model to navigate autonomously. Maps
provide the spatial representation a robot needs to plan paths,
localize itself, and reason about the world. We focus on the
occupancy grid, the metric representation used throughout Nav2,
and on the standard map frame defined by REP 105. SLAM
(Simultaneous Localization and Mapping) builds an occupancy grid from
LiDAR data using slam_toolbox: scan matching estimates incremental
motion, a pose graph stores the trajectory, and loop closure corrects
accumulated drift. Once a map is saved, AMCL (Adaptive Monte
Carlo Localization) localizes the robot against it using a particle
filter. Finally, Nav2 orchestrates planning and control: global
planners (NavFn, Smac) and local controllers (DWB, Regulated Pure
Pursuit) operate on global and local costmaps to compute and
execute collision-free paths. Goals are sent through the
NavigateToPose action – either from RViz2 or programmatically
through the nav2_simple_commander API. All hands-on examples use
the rosbot_gazebo and nav_demo packages.
Learning Objectives
By the end of this lecture, you will be able to:
Distinguish metric, topological, and semantic map representations.
Explain the occupancy grid map representation and how LiDAR observations update it through Bayesian fusion.
Build a map with
slam_toolbox, save it withnav2_map_server, and reload it later for AMCL-based localization.Localize a robot against a known map using AMCL and a particle filter.
Describe the role of global and local costmaps, the inflation layer, and the robot footprint.
Distinguish global planners (NavFn, Smac Hybrid A*) from local controllers (DWB, Regulated Pure Pursuit).
Explain how Nav2 uses a behavior tree to orchestrate planning, control, and recovery behaviors.
Send navigation goals programmatically via the
NavigateToPoseaction API usingnav2_simple_commander.
Next Steps#
In the next lecture, we will cover Extra ROS Tools:
Foxglove Studio for live and recorded data inspection
ROS bags (
ros2 bag record/play) for capture and replayThe RQT framework and its plugins
Final project status check
Complete the exercises from this lecture before the next class.
Read the Nav2 Configuration Guide and skim the Nav2 Behavior Trees documentation.