Hello,
I have a robot car with a laser-scanner and an imu and would like to fuse the position information of the two sensors.
For laser based localization I am using the hector_mapping node which produces a /poseupdate topic. Additionally I am using an imu producing the /imu/data topic.
Those two shall be fused to provide a more accurate position estimate at a higher rate.
After incorporating the suggestions from Tom Moore my launch files look like this:
**Edit 1**
I am getting better behaviour now. What I did is based on the following thoughts: The odom->baselink transformation according to Rep105 should only be computed by odometry sources (by def. relativ/differential information). However before I was using differential set to false in the /imu0 data of the odom->baselink ekf, so the odometry got the absolute heading information from the imu. Could this have caused the orientation errors?
As I understood Rep105 the map->odom transform is computed indirectly by using absolute sensory information. So I thought it needs the absolute information from all source. That is why I set, differential to false for the imu topic of the map->odom ekf.
Here are my updated launchfiles (the mess with hector frames reverted):
**The odom-baselink ekf-instance:**
[true, true, false,
false, false, true,
false, false, false,
false, false, false,
false, false, false]
[false, false, false,
false, false, true,
false, false, false,
false, false, true,
true, true, false]
**The map-odom ekf:**
[true, true, false,
false, false, true,
false, false, false,
false, false, false,
false, false, false]
[false, false, false,
false, false, true,
false, false, false,
false, false, true,
true, true, false]
Is there any way to check whether the ekfs are really fusing the information (and *not* throwing away the imu data)?
For testing that I set the usage of all poseupdate values for both ekfs to false so as to only use the imu. Then of course everything was drifting wildly but I could see rotations and accelerations of the vehicle.
Although the baselink frame is now stable and the odom frame is only driftnig very little (10-20cm) I sometimes get jerks in the baselink position of a couple of centimetres. I read the ekf does this because of improper covariances? Setting the differential option to true in the map->odom ekf did not change anything though.
↧