ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

the relationship between slam and (static)map

asked 2021-11-19 06:05:08 -0500

wyfeng2013 gravatar image

updated 2021-11-20 03:15:27 -0500

Usually, robot will be started with slam and build the map. I know there are two main funcitons in slam, one is judging the positon of the robot itself, and the other is building the map.

My question is :

  1. if the robot runs with slam, but the map haven't been saved, and when the robot is rebooted, the slam process will be run again from beginning?

  2. if the map built by slam have't been saved, how the robot know the position of itssef after rebooted?

edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted

answered 2021-11-19 11:28:13 -0500

osilva gravatar image

Hi @wyfeng2013

The question is very general, so short answer is that it depends on your robot's capabilities.

Just to clarify some key concepts:

Localization is the process to determine the location of the robot with respect to its environment. Your robot might have localization capabilities or it might not. For example a GPS sensor offers localization capabilities. Although it may not very accurate it will give you a position in space as starting point. Your robot might not have the ability to locate itself as well, then it needs to rely in other methods for navigation.

Mapping is the process to build the map by a robot while exploring a space. The result of mapping could be an occupancy grid that gives information of map features/obstacles, empty space, etc. How you build this map will be depending on the sensing technology you have available such as 2D Lidar or it could be a simple distance sensor. Maps can be loaded to the robot ahead of time or not. Robots may find features in the environment and compare them to the loaded map to understand location in space. There are ways to achieve this also by changing the environment to help the robot locate. For example you can add qr codes for the robot to detect. The qr code can store information like the position in the map.

SLAM stands for Simultaneous Localization and Mapping. SLAM is the process to simultaneously locate(localize) and map the environment. While the robot explores, it creates a map and localize itself with respect to map being built. This information can be saved periodically or it can be saved when the SLAM process is completed. SLAM gives the robot the ability to learn from the environment and locate itself with respect to the map generated.

The robot upon reboot can assume that the last position recorded is the initial location but may or may not be true. So it will be a design decision whether to start SLAM process upon every reboot. Hope this helps.

edit flag offensive delete link more

answered 2021-11-19 16:15:31 -0500

wyfeng2013 gravatar image

updated 2021-11-19 16:21:17 -0500


Thanks for your so detail reply! Please let me ask some other question as following:

  1. if the map haven't been saved when the slam is running, and the robot will lose the position of itself when rebooted, is it right?

  2. if the map is saved when the slam is running , and after the robot reboot again with slam, the saved map will be refreshed by slam?

    I think the saved map woking as static global map , and after the robot reboot again with slam, the new map built by slam is working as local map ? (local map also has severl layers such as static layer, obstcle layer, and so on. which map and which layer does the new map built by slam works in ?)

  3. one basic function of slam is location, when the robot run without saved map, how the robot locate the position of itself without map?

edit flag offensive delete link more


I think is better to add comment vs adding another answer.

But to answer to your questions:

  1. Yes robot will not know it’s location if map is not saved

  2. Yes you can continue SLAM. This a design feature. SLAM can be continuous or not.

  3. That’s where simultaneous part of mapping and localization comes handy. As the robot explores it finds features that are used as reference to locate itself. There is an excellent course by Cyrill Stachniss: id recommend you watch

osilva gravatar image osilva  ( 2021-11-19 16:25:55 -0500 )edit


Thank you very much ! I am sorry to reply for you in another answer because I am the beginer for this forum.

Thanks for your information of the above course, I will learn it soon!

wyfeng2013 gravatar image wyfeng2013  ( 2021-11-19 16:37:29 -0500 )edit

Question Tools

1 follower


Asked: 2021-11-19 06:05:08 -0500

Seen: 206 times

Last updated: Nov 19 '21