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

3d robot_localization and bounding Yaw

asked 2018-04-17 14:12:59 -0500

zlacelle gravatar image

updated 2018-04-17 16:21:38 -0500

I'm fusing the wheel odom and imu on the Husky, with robot_localization's UKF. What I'm wondering is the following:

I don't really want to rely on the magnetometer output for bounding yaw from the IMU, but I also don't want to orient my yaw around my wheel encoder yaw. So, I'd like to just fuse both as angular velocities, and let it slowly drift with gyro bias.

However, when I do this (fuse YawRate from odom, YawRate from IMU) the covariance for YawYaw (/odometry/filtered/pose/covariance[35]) grows slowly. After a few hours, it will be very large.

Is this a significant issue? I assume the filter will become unstable (I'm using the UKF currently). Thus, do I have to fuse an absolute yaw from somewhere in order to keep the filter stable?

As a side note, the covariance for ZZ is also growing (/odometry/filtered/pose/covariance[14]), but I don't think that matters as much.

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
1

answered 2018-04-19 03:25:44 -0500

Tom Moore gravatar image

It’s not really an issue, unless you suddenly give the filter an absolute yaw measurement after the covariance grows. But it’s the intended/expected behavior. If you are just fusing velocities, you are integrating those velocities over time. Likewise, you will integrate their errors.

As you said, you will experience drift. That drift is represented by the ever-increasing covariance.

If the Z variance is also growing without bound, then you must be fusing Z velocity from a data source. You can always set two_d_mode to true, which will fix all 3D variables to 0.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2018-04-17 14:12:59 -0500

Seen: 165 times

Last updated: Apr 19 '18