KumarRobotics / msckf_vio

Robust Stereo Visual Inertial Odometry for Fast Autonomous Flight
Other
1.71k stars 599 forks source link

Is msckf_vio suitable only for 4DOF motion? #63

Closed Ajithkumar1 closed 3 years ago

Ajithkumar1 commented 5 years ago

Hi all, I could understand that msckf_vio is capable of measuring 6DOF motion even through VIO systems cannot observe position and yaw. But, conducting a series of experiments, I could observe that the VIO drifts when the gravity axis is changed (pitching 90 deg or rolling 90 deg and keeping the setup in that state for a long time). I meant that the imu gravity vector is modelled for one axis(axis along gravity during initialization, probably yaw) only. If my assumption is correct, Can we conclude that msckf_vio could work fine only for 4DOF motions (x,y,z, initial rotation axis along gravity i.e yaw) ideally suitable for rover and copter navigation?

So, this makes the system unsuitable for AR/VR applications?

Thanks.

ke-sun commented 5 years ago

But, conducting a series of experiments, I could observe that the VIO drifts when the gravity axis is changed (pitching 90 deg or rolling 90 deg and keeping the setup in that state for a long time).

The gravity vector in the IMU frame is initialized by averaging the initial accelerometer readings assuming the accelerometer is bias free (That is why the software requires the sensor to start from stationary). Of course, it is wrong to assume the accelerometer is bias free. However, the hope is the incorrectness of the gravity vector can be explained by the accelerometer bias in the filter.

Without any motion, the bias is hardly observable, which cause the estimation to drift after just simply flipping the sensor.