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

Configuring robot_localization for loss of sensor data

asked 2020-05-06 04:40:31 -0500

DanielRobotics gravatar image

I am working on an outdoor mobile robot which should be able to localize itself using GPS, IMU and wheel encoder data. The GPS I am using is very precise and because of this I only use that for the (x, y) pose estimate at the moment by use of robot_localizations navsat_transform_node. However, ideally the robot should also be able to localize itself in areas where GPS reception is bad or non-existing for which reason I would like to use the odometry of the robot in such scenarios. How can the ekf_node of robot_localization be configured for such an application where odometry should only be used in the (x, y) pose estimate when the GPS is insufficient. Is it done through covariances, sensor_timeouts, thresholds or something else?

edit retag flag offensive close merge delete

Comments

1

I asked a similar question a couple years ago. Solving it is still on my To Do list. https://answers.ros.org/question/3029...

billy gravatar image billy  ( 2020-05-06 17:59:56 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
2

answered 2020-06-24 02:36:28 -0500

Tom Moore gravatar image

The short answer is that this should "just work."

The longer answer is that you should make sure that you are fusing velocity data from your wheel encoders, and not pose data. Your EKF config should fuse everything: wheel encoder velocity, IMU (velocity or orientation, but if you use the latter, make sure it's consistent with the GPS), and GPS data. Then, when you have GPS data, the filter will fuse those positions into your state estimate, and your EKF state estimate covariance will remain low. If you lose GPS signal, you will continue to have a state estimate, because the filter will keep fusing the wheel encoder velocity data. It's just that the state estimate will drift over time, because you aren't getting absolute pose data from the GPS.

Then, when you get GPS signal again, the state estimate will get corrected again, and your covariance will come back down.

TL;DR, this is something that the EKF should handle well out-of-the-box.

edit flag offensive delete link more

Question Tools

4 followers

Stats

Asked: 2020-05-06 04:40:31 -0500

Seen: 373 times

Last updated: Jun 24 '20