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

Is AMCL necessary for exploration if gmapping is already running?

asked 2013-07-17 07:53:24 -0500

BlitherPants gravatar image

updated 2013-07-17 07:56:52 -0500


I've got a Turtlebot 2 with a Kinect on ROS groovy, and I'm trying to understand the basics of navigation. I've been going over the navigation tutorials but one thing that consistently confuses me is the role of AMCL.

My issue is this: I plan to write a program similar to "Explore" (, which seems unmaintained for current ROS distributions). I know in general that gmapping is used to build a map from driving around an unknown environment, and that AMCL is used for localization. The tutorials provided for Turtlebot only ever use gmapping when the driving is controlled by the user (teleop), and they only use AMCL to navigate a known map that has already been created by a previous teleop. But what if I wanted the robot to explore and map an unknown area autonomously? Would just running gmapping work?

The idea that gmapping is a SLAM algorithm, by name (Simultaneous Localization and Mapping), suggests to me that I only need gmapping to achieve this, but since the tutorials seem to insist on AMCL so much, I just want to be sure I have this right.

If anyone could clear this up for me, I'd appreciate it. Thanks in advance!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2013-07-17 08:14:35 -0500

dornhege gravatar image

Short answer: You are right.

Longer answer: As you said gmapping implements SLAM and thus contains localization. AMCL only implements localization and thus needs a map from somewhere.

There reason of the use that you have seen is that to actually create the map without teleop one would need a node like explore, so unless that's part of the task, just building the map by hand and only using localization afterwards is fine. Also localization should be more stable.

edit flag offensive delete link more


Thanks! By the way, what case are you saying will have more stable localization?

BlitherPants gravatar image BlitherPants  ( 2013-07-18 03:45:50 -0500 )edit

AMCL on a static map (given that this is correct) as there is no map uncertainty.

dornhege gravatar image dornhege  ( 2013-07-18 05:16:59 -0500 )edit

So, if we make a map of the entire environment in image editor will serve as global cost map for localization? Will there be problem in marking and clearing or any accessing problem?

RB gravatar image RB  ( 2013-10-20 21:25:30 -0500 )edit

Costmap, marking, clearing is independent of the localization. Both should work with a self-drawn map in theory. However that should be metrically correct.

dornhege gravatar image dornhege  ( 2013-10-28 01:41:43 -0500 )edit

I am going through gmapping and global 2D map creation tutorial. But my bag file containing logged transform and laser scan data has not been created. I have posted a question . Please give some information regarding the creation of 2D global map. I am using USARSim/ROS control framework.

RB gravatar image RB  ( 2013-10-28 04:17:16 -0500 )edit

Question Tools



Asked: 2013-07-17 07:53:24 -0500

Seen: 3,969 times

Last updated: Jul 17 '13