Default (dual ekf example) Robot Localization is ignoring GPS updates

asked 2020-12-09 08:01:05 -0500

bjajo gravatar image


I'm running the dual ekf example config with all valid data and it seems to be that the second global ekf is just ignoring the transformed position and not updating at all. Covariances are correct, the filtered corariance gets insanly large and still doesnt't update with the RTK position. The filtered and gps pose are really close together at the start and then drift away, it is simply never updating. So the odometry/gps message makes sense in RVIZ, but is simply ignored by the filter.

Do you have any idea what might be wrong?

I'm using ROS noetic.

edit retag flag offensive close merge delete



Difficult to judge without more data, tf tree, config files etc. What data do you fuse where? topics into ekf tf output of ekfs? And then the config files would be nice. This could be as simple as a typo in the topic names or similar, check rostopic list for "near" duplicate topics. The covariances can mess things up. To me the growing covariance seems a little odd, but Iam not into them deep at the moment. Maybe see here: link text And maybe check: from ekf site:

Note If you are fusing GPS information via navsat_transform_node or utm_transform_node, you should make sure that the _differential setting is false.

Dragonslayer gravatar image Dragonslayer  ( 2020-12-09 08:24:27 -0500 )edit

Thanks for your help, after giving up and and not really knowing what to do anymore I found the issue. The GNSS sets the timestamp to the satelite time and the local computer sets the timestamp for the imu. The computer was not synced. To be more robust I gave every sensor message a local timestamp.

bjajo gravatar image bjajo  ( 2020-12-09 13:04:55 -0500 )edit

Good to hear, didnt you get an INFO or ERROR in the logs for this?

Dragonslayer gravatar image Dragonslayer  ( 2020-12-09 16:58:33 -0500 )edit

The issue is that under ROS noetic TF throws a lot of warning that all real warnings are not visible anymore.

bjajo gravatar image bjajo  ( 2020-12-10 08:21:35 -0500 )edit

Ok. Just to add, ekf has a sensor_timeout: parameter for not fully synced datastreams. Also there are print_diagnostics: - debug: - debug_out_file: /path/to/debug/file.txt Just posting it here if someone looks up this question.

Dragonslayer gravatar image Dragonslayer  ( 2020-12-11 04:58:43 -0500 )edit