Is AMCL necessary for exploration if gmapping is already running?
Hello,
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" (http://www.ros.org/wiki/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!