VINS-Mono
VINS-Mono copied to clipboard
Question about CalibrationExRotation in initial_ex_rotation.cpp
Hi. When I read the paper "Monocular Visual–Inertial State Estimation With Initialization and Camera–IMU Calibration", the equation (5)(6) and (7) should correspond to the function CalibrationExRotation(...) in src/initial/initial_ex_rotation.cpp:
double w = Quaterniond(Rc[i]).w();
Vector3d q = Quaterniond(Rc[i]).vec();
L.block<3, 3>(0, 0) = w * Matrix3d::Identity() + Utility::skewSymmetric(q);
L.block<3, 1>(0, 3) = q;
L.block<1, 3>(3, 0) = -q.transpose();
L(3, 3) = w;
Quaterniond R_ij(Rimu[i]);
w = R_ij.w();
q = R_ij.vec();
R.block<3, 3>(0, 0) = w * Matrix3d::Identity() - Utility::skewSymmetric(q);
R.block<3, 1>(0, 3) = q;
R.block<1, 3>(3, 0) = -q.transpose();
R(3, 3) = w;
A.block<4, 4>((i - 1) * 4, 0) = huber * (L - R);
However, according to the paper, shouldn't it be: L represents Rimu[i]
and R represents Rc[i])
?
Additionally how did you derive equation (6)? Chould you give a reference? Thank you!
I think maybe there is the roation from imu(body cooradinate) to camera coordinate in code , rather than camer to imu rotation expressed as in paper . So, there just a transpose in indication.