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

ROS navigation with combined odometry

asked 2017-01-07 06:43:16 -0500

dgrixti gravatar image

updated 2017-01-17 08:48:20 -0500

gvdhoorn gravatar image


I have been trying to find the best solution to create a robot with move_base + AMCL + combined sensory odometry and I have a few questions.

I will be using a robot with Kinect depth sensor and wheel encoders.

Now I know that AMCL uses /odom and Laser/PointCloud as input to determine the robot localization.

What I am worried about is would the robot is going to be navigating terrain which is slippery such as peagravel etc.

My questions are:

1) would the robot "realise" if for example the wheels have turned on a slippery floor without actually moving the robot by usint the Laser/PointCloud and encoder odometry alone? Because I fear that this could mark that the robot has moved forward on the navigation map but actually it stayed behind in reality.

I was thinking that this problem could be tackled by introducing an IMU and Visual Odometry which can be combined using robot_pose_ekf in order to create a more accurate odometry (if I am assuming right).

2) However I have read that this is a bad idea somehow because move_base and robot_pose_ekf don't work well together. Is this the case?

3) Wouldn't something like this work to override the move_base odometry intake (including IMU or VO)?

<remap from="odom" to="odometry/filtered"/>

I would appreaciate any clarifications you can provide on this matter.


Edit: Thanks very much to both for your input. I have ordered an IMU sensor and I will have a try in the coming days.

Would you happen to know of a an online example which combines odomery from IMU and Encoders and uses move_base?

I have found a bit of difficulty to find ready examples of the desired solution and hence is why I was thinking that such thing couldn't work.

In any case I will post feedback when my sensor arrives and I try this out.

edit retag flag offensive close merge delete


I reorganized your question because you actually have 3 of them.

Procópio gravatar image Procópio  ( 2017-01-17 07:46:30 -0500 )edit

check the robot_localization package for examples on sensor fusion.

Procópio gravatar image Procópio  ( 2017-01-17 09:48:15 -0500 )edit

2 Answers

Sort by » oldest newest most voted

answered 2017-01-17 07:50:57 -0500

Procópio gravatar image
  1. not exactly, what will likely happen is that AMCL will project the particles forward due to the odometry info and them you will likely see the AMCL particles spreading apart, as the filter will detect that the measurement from projected particles do not match what was expected. Eventually, it could converge again and relocalize the robot.

  2. this is not the case. move_base will use whatever odometry you provide it. If it is filtered or not, it does not matter.

  3. yes, it would, but you would also need to update your tf tree with your filtered odometry, which robot_localization already does, for example.

you got the right idea though, the way to go is to improve your odometry, eventually using visual odom, GPS or other source to filter out slippages. Then you feed your enhanced odometry to AMCL and move_base and you will get a much better localization and navigation.

edit flag offensive delete link more

answered 2017-01-09 06:03:54 -0500

DavidN gravatar image

There are a few discussions here:

  1. You are probably right to say that using pure odom from wheel encoders is not the best solution for localization on "slippery" terrain. So fusing odom sources (with or without wheel odom) is a good direction if you want to tackle such environments.

  2. I am not sure why you mentioned "move_base and robot_pose_ekf dont work well together". I have seen move_base and robot_localization package worked pretty well together. Regardless, if you want move_base to use particular odom source (wheel odom or fused odom or ...), you can make use of remapping when launching move_base.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2017-01-07 06:43:16 -0500

Seen: 1,712 times

Last updated: Jan 17 '17