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

Update odometry based on pose estimate

asked 2020-07-18 00:49:40 -0500

Leonti gravatar image

Hi!

I have a rover which publishes odometry and a lidar which is used by slam_toolbox.

As far as I understand it slam_toolbox takes odometry data, a map, and a lidar data to estimate robots position.
It seems to be working, but I'm wondering about the odometry data.

The way or works at the moment is when the rover boots up X and Y are set to 0,0 and then updated over time. Because of the drift coordinates from odometry become incorrect.

Would it makes sense to update odometry values based on the pose estimate to make them correct? I could listen to pose estimate and update the odometry pose.
It would also help in cases when I restart my rover or move it by hand.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2020-07-19 18:39:36 -0500

Geoff gravatar image

You do not need to worry about the drift in the odometry coordinates unless you start seeing massive jumps between successive readings. Gradual drift over time is fine.

Odometry typically has drift. Even with a very good sensor providing odometry data, there will be drift over time because it is a continuously-updating state based solely on the sensor measurement of change from the previous state. Any error in those measurements gets integrated into the result.

Approaches such as localising to a known map are used to give more robust pose estimates at a point in time, but they tend to have a lower update rate than odometry. So what tools like slam_toolbox do is they integrate the two approaches (or more) together so you get periodic trustworthy updates, and in between you get the higher-frequency estimate from the odometry. The higher-frequency estimate is produced from, for example, taking the most recent lidar/map localisation pose as the baseline and adding on odometry values to it. Because this only needs to work for a short time until the next lidar/map localisation result, the drift is not significant enough to worry about.

There are also additional things that may be going on, depending on the algorithm, such as using the odometry value to constrain lidar-based localisation results, but in general the above is how it works.

edit flag offensive delete link more

Comments

Thanks @Geoff! That makes sense now.

Leonti gravatar image Leonti  ( 2020-07-21 01:57:22 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2020-07-18 00:49:40 -0500

Seen: 421 times

Last updated: Jul 19 '20