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

robot_localization: diverging covariances

asked 2023-04-18 07:31:10 -0500

Per Edwardsson gravatar image

Okay, my robot experiences diverging covariances as the output of the robot_localization package. I feed the ekf node a wheel encoder odometry and an imu, and I find that no matter how I change the input, the x and y position covariances grow out of bound eventually. The positioning is fine, but the map -> odom transform node (rtabmap) cares about the covariance output, and creates jittery behavior due to the covariances.

So, what can I do to decrease the covariance of the output of the ekf_node? More data? Less data? Change covariance of the input data up or down?

edit retag flag offensive close merge delete

Comments

What values are you fusing? Some stuff that have worked for me is setting one of the two inputs as differential or relative, or literally going into source code of imu/odom drivers and changing the covar values until it worked.

chased11 gravatar image chased11  ( 2023-04-19 22:38:55 -0500 )edit

Do you fuse position from somewhere? What kind of source of data is good with that? I mostly get velocities and acceleration from sensors, but the covariance of position blows up which makes my slam go bad.

Per Edwardsson gravatar image Per Edwardsson  ( 2023-04-28 04:36:21 -0500 )edit

Yeah it's good to have some sort of absolute position estimate of some sort. In outdoor settings, gps works well, I have also used encoder counts to estimate position (although it's probably not great, it contained covariance). You could also try using another odometry source from rtabmap's rgbd odometry. Other than that it comes down to having both the right sources being fused and accurate covariance values.

chased11 gravatar image chased11  ( 2023-04-29 10:26:44 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2023-06-05 03:03:45 -0500

Tom Moore gravatar image

You need to post your full EKF config and a sample of each sensor input, but the behaviour of the EKF is probably correct here: if you are just feeding wheel encoder velocities and IMU angular velocity, those measurements will be integrated, but so will their errors. If you want to constrain error, you need an absolute pose reference (input source).

However, the unbounded growth of the odom->base_link state estimate covariance should have zero bearing on the map->odom transform. Your jitter is going to be coming from another source. Please provide more detail in your question.

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2023-04-18 07:31:10 -0500

Seen: 103 times

Last updated: Jun 05 '23