HKUST-Aerial-Robotics / VINS-Mono

A Robust and Versatile Monocular Visual-Inertial State Estimator
GNU General Public License v3.0
5.04k stars 2.1k forks source link

why use left perturbation in jacobians of imu_factor? #340

Open zxawangxiaomu opened 4 years ago

zxawangxiaomu commented 4 years ago

I can see the update method for rotation in vins_estimator/src/factor/pose_local_parameterization.cpp is: q = (_q * dq).normalized(); It implies that the rotation is updated by right perturbation; but in the vins_estimator/src/factor/imu_factor.h,it computes the jacobian for rotation which is derived from left perturbation? jacobian_pose_i.block<3, 3>(O_P, O_R) = Utility::skewSymmetric(Qi.inverse() * (0.5 * G * sum_dt * sum_dt + Pj - Pi - Vi * sum_dt));

xuwuzhou commented 3 years ago

Do you have the answer?