SLAM Navigation
What is SLAM? How does it work? What does it rely on? How to make use of it?

What is SLAM?

Simultaneous localization and mapping (SLAM) is the computational problem of constructing or updating a map of an unknown environment while simultaneously keeping track of an agent’s location within it (wikipedia).

Watch two videos, they are happening the same time.



The map is saved as a pgm image file and a yaml configuration file. They are all human-readable and easy to understand. Open them and see what’s going on.

Assignment: Read chapter 9 and 10. Build and save the map of turtlebot_world in simulator. Upload the map file you made, the yaml file and a writeup of what are they. Also List all the commands you used and tell what they do.

In ROS, the robot uses amcl package to localize itself in a map.

  • AMCL stands for Adaptive Monte Carlo localization (original paper).

    In ROS, the implementation is in a package called amcl. It basically takes all your sensor data, combines them, and tries to predict where the robot is in the map. The amcl package computes a set of poses associated with possiblity, the one with highest possiblity with be published.

  • Navigation Stack

    Navigation is usually not an easy task. The one of the reason ROS is so powerful is that the navigation functionality is came in out-of-box. In ROS, you can simply send a goal to the navigation stack(this’s an action). It will plan the path and navigate the robot for you. You can do it use API or Human interface to send this goal. * Navigation with RVIZ IMAGE ALT TEXT HERE * Navigation with API * Sending Goals to the Navigation Stack * Sample Code: 1. c++ 2. python 3. Demo

      In gazebo simulator:
      [![IMAGE ALT TEXT HERE]( "Navigation in Simulator")](

    In Real World:


    In real world, there are far more problems than in a simulator. Small things could cause failed navigation and localization.