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

IMU + AMCL for localization

asked 2014-01-09 04:23:42 -0500

Hansg91 gravatar image

Hi everyone,

Let me write my question out like this:

  • I have IMU data from an IMU sensor
  • I do not always have a xtion available for helping in localization (it could be occupied with another task).
  • I could get odometry data from the wheels.

Now I am a bit lost with what I need for localization. I have used AMCL in the past with a kinect and odometry data for localization, but now I want to mainly be using the IMU sensor. I read somewhere that I can use robot_pose_ekf for this, but it forces the need for odometry (visual or mechanical), why is this so?

I wanted to start with just localization through the IMU sensor and AMCL, but how would I go about doing this?

I am a bit lost with what I need, so some general overview of possibilities would be appreciated.

Thanks in advance!

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2014-01-10 04:07:27 -0500

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.

edit flag offensive delete link more


Thanks for the reply. So a combination of AMCL for global localization and IMU + odometry for local localization, would that make sense? Or is IMU + odometry sufficiently reliable?

Hansg91 gravatar image Hansg91  ( 2014-01-10 07:23:38 -0500 )edit

Again, it depends what you want to do. You can certainly use both at the same time, which is what is done on the PR2. Using just robot_pose_ekf, the pose estimate will drift a bit over time, though I don't have a feel for how much.

Dan Lazewatsky gravatar image Dan Lazewatsky  ( 2014-01-10 10:38:37 -0500 )edit

Oke thanks for your answer. I am indeed interested in a similar situation as with the pr2, so I know what to do now.

Hansg91 gravatar image Hansg91  ( 2014-01-11 04:58:35 -0500 )edit

answered 2019-05-14 04:04:17 -0500

Veera Ragav gravatar image

Checkout this package robot_localization.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2014-01-09 04:23:42 -0500

Seen: 3,096 times

Last updated: May 14 '19