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

Revision history [back]

AMCL uses a map along with sensor data that tells it something about where it might be in the map for localization. IMU data is not useful for providing an localization estimate within the map, whereas laser scans (or depth data) is.

robot_pose_ekf requires odometry because IMU data (from cheap consumer IMUs at least) is very noisy, and integrating that over long periods of time will get you very poor results.

The answer depends on what exactly you are trying to do.

If you have odometry and IMU data, use robot_pose_ekf. It doesn't do global localization like AMCL, but if you know where the robot started, it will maintain a better estimate of its pose than odometry or IMU alone.

If you have odometry, a depth sensor, and a map, use AMCL. It will let you perform global localization within the map.