### Behind the scenes * amcl subscribes to a topic `geometry_msgs/PoseWith` * rviz command *2d pose estimate* publishes the new proposed pose on that topic * When amcl receives that message it resets its collection of candidate poses
### Going inside the Nav Stack * Global planner: works out best path assuming map is accurate 1. **global costmap**: How safe or unsafe is each spot on the map 1. Published on /move_base/global_costmap/costmap 1. Planner view shows what the planned path to the nav goal is * Local Planner: 1. Adjusts the global plan based on newly detected obstacles 1. Map shows square area around robot with further analysis 1 Color shows safe areas in cold colors (like blue) and dangerous areas in warm colors (like red)
### Navigating in code * Look at [patrol.py](https://raw.githubusercontent.com/campusrover/rosbook/master/scripts/patrol.py) * It is a `SimpleActionClient` which sends a repeating sequence of two Action Goals to `move_base` * There's nothing tricky about itself. * The challenge might be getting all the other bits set up so that it will work correctly
### Some more references: * [Navigation Wiki Page](http://wiki.ros.org/navigation) * [move_base Wiki Page](http://wiki.ros.org/move_base) * [Video about navstack](https://vimeo.com/106994708) * [Paper: Layered Costmaps for Context Sensitive Navigation](http://wustl.probablydavid.com/publications/IROS2014.pdf)