Ask Your Question

Robot_localization diagnostics topic question

asked 2016-05-08 10:29:05 -0500

b2256 gravatar image

I'm currently attempting to fine-tune an instance of (ekf) robot_localization using gps and single imu devices. In doing so, the diagnostic topic lists:

    level: 1
    name: ekf_localization: Filter diagnostic updater
    message: Potentially erroneous data or settings detected for a robot_localization state estimation node.
    hardware_id: none
        key: imu0_pose_covariance
        value: The covariance at position (35), which corresponds to YAW variance, was zero. This will be replaced with a small value to maintain filter stability, but should be corrected at the message origin node.

The location of “position (35)” YAW covariance eludes me in attempting to revise the value. I've searched all the code for robot_localization and the code for the Phidgets 1044 imu to no avail. The ekf_localization launch file initial covariance is set (currently at a non-zero value of 0.035). The "message origin node" is the elusive part.

Aside from the ekf_localization initial_estimate_covariance, is there anywhere left to look for modification?

Thanks in advance for any insight.


edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2016-05-08 13:32:21 -0500

Tom Moore gravatar image

It's complaining about your IMU messages, not your r_l configuration. Do a rostopic echo on your IMU data, and I'm guessing you'll find that the value in the last index of your orientation covariance is 0.

edit flag offensive delete link more


Yes, it appears that you're correct as all the orientation_covariances are zero at this timestamp. It is still unclear where to modify this value? Any advice?

b2256 gravatar image b2256  ( 2016-05-08 14:33:37 -0500 )edit

Which ROS package are you using for the IMU?

Tom Moore gravatar image Tom Moore  ( 2016-05-08 20:01:43 -0500 )edit

I'm using the ROS driver phidgets_imu by Ivan Dryanovski.

b2256 gravatar image b2256  ( 2016-05-09 07:47:39 -0500 )edit

That driver doesn't appear to support orientation. I think it only gives angular velocity, linear acceleration, and raw mag data. You need to use another IMU filter like imu_filter_madgwick to get the orientation data, then feed that topic into r_l.

Tom Moore gravatar image Tom Moore  ( 2016-05-09 08:09:40 -0500 )edit

It turns out that I was using imu_filter _madgwick indirectly. An earlier answer by Tom mentioned using dynamic_reconfigure with this driver; that was successful. Thank you as always.

b2256 gravatar image b2256  ( 2016-05-11 23:57:35 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2016-05-08 10:29:05 -0500

Seen: 452 times

Last updated: May 08 '16