Hello I am trying to use robot localization package for fusing IMU and Wheel Encoder Odometry such that x and y velocities are taken from odometry data and heading is taken from imu.
However I am getting this issue such that fused localization is not really paying attention to the heading from the IMU. Such that the ekf output just goes down whatever heading the odometry gives while still facing the correct imu direction.
For example, in the picture below , I have my rover going forward and then turn right 90 degrees and then go forward. Blue is wheel odometry (It is very off when coming up with yaw) and the red is the ekf output.
I have also attached a bag file of this test.
Here is my ekf params:
map_frame: map odom_frame: odom base_link_frame: base_footprint world_frame: odom odom0: odometry/wheel odom0_config: [false, false, false, false, false, false, true, true, false, false, false, false, false, false, false] odom0_queue_size: 10 odom0_nodelay: true odom0_differential: false odom0_relative: false imu0: /imu/data imu0_config: [false, false, false, false, false, true, false, false, true, false, false, true, false, false, true] imu0_nodelay: false imu0_differential: false imu0_relative: false imu0_queue_size: 10 imu0_remove_gravitational_acceleration: true
Post score: 1
Comment by Eisenhorn on 2019-08-29:
Why do you filter out yaw' int the odom0_config? Mybe can you also show an image of the fused odom output?
Here is a link with a a walktrough on configuring the ekf
Comment by jawsqb on 2019-08-29:
The odom fused output is the red arrows, that is fusion of both the odom and the imu.
Reason why I took out the yaw was because the wheel odometry is very off when it comes to turning so I wanted the yaw to be only fused from the IMU.
I have already tried using the params from there however I have the same issue.