cggos / imu_x_fusion

IMU + X(GNSS, 6DoF Odom) Loosely-Coupled Fusion Localization based on ESKF, IEKF, UKF(UKF/SPKF, JUKF, SVD-UKF) and MAP
https://msf.cgabc.xyz/
GNU General Public License v3.0
880 stars 156 forks source link

How to validate results? #60

Open libdoron opened 11 months ago

libdoron commented 11 months ago

Hello, I successfully ran the IMU + 6DoF Odom example. My question is - how do we know that the Kalman filter (either EKF or UKF) correctly takes the IMU into account? I want to use the Kalman filter to get estimated position at times either in between VO updates or as a prediction into the future. What I wonder is how do I know that the results of the filter are more accurate than either interpolation or extrapolation of 2 VO updates?

The estimated pose is published right after the new VO (visual odometry) is given (see code [here])(https://github.com/cggos/imu_x_fusion/blob/59bf2ab4a183fc97181675ccbcb5992834e53526/src/imu_vo_ekf.cpp#L127). I expect to see the estimated pose (green track) close to the VO track (red) even if the IMU is completely off, as long as the covariance given to the IMU is small enough.

I tried using the ground truth provided here but the VO and the ground truth are not aligned (naturally since the VO has no way of knowing absolute coordinates...)

Thanks