Topic 2: Planning & Navigation Systems
Topic 2 introduces the navigation stack (maps, localization, planners, controllers) and shows how to build waypoint-based navigation and room traversal for your humanoid.
2.1 Navigation Stack Overview (Module A)​
A typical ROS 2 navigation stack (e.g., Nav2) consists of:
- Map:
- 2D occupancy grid or 3D map from SLAM (Chapter 4).
- Marks free, occupied, and unknown areas.
- Localization:
- Estimates the robot’s pose on the map (e.g., AMCL, VSLAM output).
- Global planner:
- Computes a path from the current pose to a goal pose across the map.
- Local planner / controller:
- Follows the global path while reacting to local obstacles and dynamics.
This stack fits directly into your agent architecture:
- High-level tasks specify goals (e.g., “go to kitchen” → map coordinates).
- The navigation stack turns those into collision-free trajectories.
- Controllers execute the trajectories in simulation and on hardware.
2.2 Global vs Local Planning (Module B)​
Global Planning​
The global planner:
- Uses the full map to compute an overall route.
- Optimizes for criteria like path length, safety margins, or energy.
- Produces a static or slowly-changing path from start to goal.
Characteristics:
- Planning horizon: long (room-to-room, across building).
- Needs a reasonably consistent map.
- Updated when goals change or environment changes significantly.
Local Planning​
The local planner/controller:
- Looks at the robot’s immediate neighborhood:
- Local costmap from sensors (LiDAR, depth).
- Dynamic obstacles and short-term changes.
- Adjusts velocity commands to:
- Avoid collisions.
- Respect kinematic and dynamic constraints.
Characteristics:
- Planning horizon: short (a few meters or seconds ahead).
- Runs at higher frequency than the global planner.
- Performs dynamic re-planning as new sensor data arrives.
Together:
- Global planner answers “how do I get there?”
- Local planner answers “how do I move safely right now?”
2.3 Waypoint Missions (Module C)​
With mapping, localization, and planning in place, you can define waypoint missions:
- Sequences of intermediate goals:
- Room A → hallway → Room B → docking station
- Represented as:
- Lists of poses in the map frame.
- ROS 2 actions (e.g., repeated
NavigateToPosegoals).
Example missions:
- Room-to-room traversal:
- Start in lab, traverse corridor, reach office.
- Patrol routes:
- Visit multiple checkpoints, loop back to base.
You will:
- Script missions using ROS 2 actions and launch files.
- Test them in your digital twin (Chapter 3) with SLAM maps (Chapter 4).
- Feed success/failure status into higher-level task graphs (Topic 3).
By the end of Topic 2, you should be comfortable:
- Configuring a navigation stack on top of your SLAM maps.
- Distinguishing roles of global and local planners.
- Creating waypoint-based missions that allow your humanoid to move autonomously between locations.