hyye / lio-mapping

Implementation of Tightly Coupled 3D Lidar Inertial Odometry and Mapping (LIO-mapping)
https://sites.google.com/view/lio-mapping
GNU General Public License v3.0
898 stars 320 forks source link

Difference of preintegration between 'vins mono' and 'lio-mapping' #34

Closed heyang0105 closed 4 years ago

heyang0105 commented 4 years ago

I notice that you changed the expression to calculate the 'F matrix' and 'V matrix' in preintegrationBase.h. The original definition in 'vins mono' is : 'F.block<3, 3>(0, 12) = -0.25 result_delta_q.toRotationMatrix() R_a_1_x dt dt -dt;' ' V.block<3, 3>(0, 0) = 0.25 delta_q.toRotationMatrix() dt dt;' 'V.block<3, 3>(0, 6) = 0.25 result_delta_q.toRotationMatrix() dt dt;' Somehow, they are modified as: 'F.block<3, 3>(0, 12) = -0.1667 result_delta_q.toRotationMatrix() R_a_1_x dt dt -dt;' 'V.block<3, 3>(0, 0) = 0.5 delta_q.toRotationMatrix() dt dt;' ''V.block<3, 3>(0, 6) = 0.5 result_delta_q.toRotationMatrix() dt dt;'' There must be something that you explored, and then you modified them. Could you please explain more about it with your professional insight?

hyye commented 4 years ago

It is from my derivation, while these values are typically small. Some tests may be carried out to verify.