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

Why can the odom frame drift?

asked 2014-08-04 17:06:49 -0500

wpd gravatar image

According to REP 105, "The pose of a mobile platform in the odom frame can drift over time". I am trying understand what that means. In what situations would the frame "drift"? And "drift" relative to what? The base_link? How would the the odom frame drift relative to the base link if the robot is responsible for publishing the base_link->odom transform based on it's notion of odometry in the first place?

REP 105 also states/requires, "the pose of a robot in the odom frame is guaranteed to be continuous".

Does this mean I can't use an INDEX pulse on my wheel encoders to reset the axel angle to zero on each wheel rotation, since that might lead to a discontinuity? Or does it imply a requirement that I must filter my odometry estimates to eliminate such discontinuities.

Hmmm... maybe this starts to make sense. If I'm required (by REP 105) to eliminate any discontinuities, I can see where that might lead to "drift"...maybe.

Anyways, I'm confused, and would appreciate any enlightenment folks would care to give me on this topic.

--wpd

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
12

answered 2014-08-04 20:17:31 -0500

updated 2014-08-04 20:18:46 -0500

Hi there!

As I understand, the drift mentioned on REP 105 refers to the fact that the difference between the pose of the robot on the real world and the estimated pose of the robot by the odometry (lets call this odometry error) will grow over time due the well-known problems of odometry calculation. For example:

  • Small difference between the nominal and actual wheel diameter -> will cause the odometry error to grow over time
  • Small difference between the nominal and actual tread -> will cause the odometry error to grow over time
  • Wheel slipping -> will cause the odometry error to grow over time
  • No matter what you do -> the odometry error will grow over time

Regarding the continuity of the odom frame, yes, you should avoid big jumps. The values on the odom frame should be continuous, and any compensation for the odometry error (drift) should be made on the map frame:

In a typical setup, a localization component constantly re-computes the robot pose in the map frame based on sensor observations, therefore eliminating drift, but causing discrete jumps when new sensor information arrives.
edit flag offensive delete link more

Comments

Ahhh, that makes sense. Thank you.

wpd gravatar image wpd  ( 2014-08-04 20:52:59 -0500 )edit

Question Tools

3 followers

Stats

Asked: 2014-08-04 17:06:49 -0500

Seen: 2,885 times

Last updated: Aug 04 '14