Robotics StackExchange | Archived questions

robot_localization setup

Hi,

I have some visual odometry, wheel odometry and an IMU, and I want to fuse all three.

Currently I am only looking at the visual odometry and the IMU, but I am having a hard time to understand the setup.

I have an odom frame and a baselink frame which is updated by the visual odometry node. Then when i add the robotlocalization, i define the following:

    <param name="odom_frame" value="odom"/>
<param name="base_link_frame" value="base_link"/>
<param name="world_frame" value="odom"/>

When I then run the localization node, the base_link starts to twitch around, and get much less stable. What I do not really understand is which frame the localization node is supposed to update. I assumed that I would make a separate frame which would then have the fused localization.

Anyone recommend a step by step tutorial or a working example that I could look at?

Asked by phil333 on 2017-12-08 15:38:14 UTC

Comments

A separate frame would not follow rep 105. When using robot_localization to update the tf odom->base_link make sure you have no other node that publishes this transformation.

Asked by Humpelstilzchen on 2017-12-11 01:37:04 UTC

Also see state_estimation_nodes#published-transforms for what frame is published.

Asked by Humpelstilzchen on 2017-12-11 01:39:19 UTC

thank you, I disabled everything that was publishing any tf. Now the localisation node does its job, but it is still very noisy. From what I understand, the robot_localisation node does already apply kalman filtering, so its a matter of configuration?

Asked by phil333 on 2017-12-11 03:46:57 UTC

Probably, mainly your covariances

Asked by Humpelstilzchen on 2017-12-11 06:39:06 UTC

Since none of my sensors produce covarience matrices, I had to add them myself. I guess, i need to set them to lower values. Is it worth using: initial_estimate_covariance?

Asked by phil333 on 2017-12-11 07:52:08 UTC

Please publish your entire EKF configuration, and a sample message for every sensor input.

Asked by Tom Moore on 2018-01-26 03:56:01 UTC

Answers