rpng / R-VIO

Robocentric Visual-Inertial Odometry
https://journals.sagepub.com/doi/10.1177/0278364919853361
GNU General Public License v3.0
753 stars 174 forks source link

Question About the F matrix in code. #27

Closed Gatsby23 closed 3 years ago

Gatsby23 commented 3 years ago

Hi, The paper shows that the F Matrix is like this: image But the code is multiplied with the mnGravity. What does it meaning? image

huaizheng commented 3 years ago

In the implementation, we treat local gravity as a vector with constant magnitude (e.g., 9.8), therefore, we actually estimate a unit (directional) vector of local gravity. To get the value for state transition matrix computation, we need to multiply the (error) state of local gravity with its magnitude.

Gatsby23 commented 3 years ago

In the implementation, we treat local gravity as a vector with constant magnitude (e.g., 9.8), therefore, we actually estimate a unit (directional) vector of local gravity. OK, Thank you very much! The last question is: What is the difference between R-VIO with ROVIO. I'm a freshman to this area and haven't touch the beauty of your F equation. Both of you are the Robocentric formulation.

huaizheng commented 3 years ago

There are the following differences between Rovio and R-VIO: 1) Rovio uses raw IMU measurements to directly update the pose of global frame, while R-VIO uses relative motion to incrementally update the pose of global frames (i.e., through the composition); 2) Rovio implements an EKFSLAM-based formulation (i.e., jointly estimates the landmarks), while R-VIO implements an MSCKF-based formulation (i.e., pose-only VIO); and most importantly 3) R-VIO has been proved to have invariant observability properties (i.e., its unobservable subspace is constant) which significantly improves the estimation consistency under generic motion.

Gatsby23 commented 3 years ago

There are the following differences between Rovio and R-VIO: 1) Rovio uses raw IMU measurements to directly update the pose of global frame, while R-VIO uses relative motion to incrementally update the pose of global frames (i.e., through the composition); 2) Rovio implements an EKFSLAM-based formulation (i.e., jointly estimates the landmarks), while R-VIO implements an MSCKF-based formulation (i.e., pose-only VIO); and most importantly 3) R-VIO has been proved to have invariant observability properties (i.e., its unobservable subspace is constant) which significantly improves the estimation consistency under generic motion.

Thank you very much~ 真是特别好的工作,我将再仔细看看代码和论文,体会当中具体的不同之处