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));
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));