0
$\begingroup$

Rosanswers logo

SLAM can analysis the environment and locating iteself.

And AMCL can locate itself with saved map.

What difference between the two locating method of SLAM and AMCL?

Because SLAM can locate, the AMCL is not necessary?


Originally posted by wyfeng2013 on ROS Answers with karma: 19 on 2021-11-20

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

SLAM is simultaneously localizing and creating a map of the environment. AMCL is localizing based on a prior map. Moving into the real world, a SLAM algorithm will be first used to create a map of the environment, then AMCL is used to localize in this map. However, this map will be needed to be updated frequently depending on how dynamic the environment is. So you'd run the SLAM algorithm from time to time to update the map. The frequency at which the map is updated will differ from one environment to the other.


Originally posted by 3473f with karma: 56 on 2021-11-20

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by wyfeng2013 on 2021-11-20:
@3473f

Thanks for you very much!

How does SLAM update the map in realtime?

I only have some try to save the map with map server.

And I have another question, the MAP updated by SLAM is the global static map or local map or final costmap?

Comment by 3473f on 2021-11-20:
A SLAM algorithm will keep updating its map until you kill the node. The saved map (using the map server) can later be used with AMCL. If you need to update your saved map, you will need to create a new one (note: Google Cartographer allows you to continue a mapping session) A SLAM algorithm will only update the occupancy grid map which according to this page is optionally used to initialize the static map.

Comment by wyfeng2013 on 2021-11-20:
@3473f

If SLAM runs without saving map by map server, and when the robot is rebooted, the robot will lose its position and will build map from begining, isn't it?

Your mention about "If you need to update your saved map, you will need to create a new one", the "a new one" means a new map? The saved map can't be updated in realtime?

Thanks for the reference!

Comment by Mike Scheutzow on 2021-11-20:
SLAM and AMCL make very different assumptions about what data is available to the robot, and about how the system should handle areas of the map that are unknown.

The accuracy of the robot global localization will be much better with AMCL IF you have given it an accurate map to work from. This is because SLAM maps built using location estimates from robot's wheel-encoder data are often distorted, which then causes inaccurate global localization.

Comment by 3473f on 2021-11-20:
@wyfeng2013 that's corrent. restarting your SLAM algorithm will start mapping from the beginning. Yes, I was referring to the map here. I haven't tested with other SLAM algorithms, but as mentioned, Google Cartographer can update pre-existing maps.

As @mike-scheutzow mentioned in his answer, AMCL with a good map will out perform SLAM. This is because SLAM algorithm will drift until a loop is closed and the map is optimized. You can get unlucky and your SLAM algorithm can totally fail (e.g., due to wrong scan matching result) which will definitely cause a problem. That's why in real life (at least in the logistics industry where I work) we rely on creating a map then localization using it.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.