Open SkyPigZhu opened 3 years ago
@SkyPigZhu the formula of the measurement Jacobian in code measurementH()
is defined as -r(x)/delta X
while the form of h(x)/delta X
is defined in my article.
ok, thanks , and I find that if the measurement is not very accurate(such as the position has a average error of 15 mm , angle error is 5-6degree), the eskf system's perfoemance is not very good , the corrected vel is not accurate , and the corrected positoion will be volatility, can give some suggestions about the problem?
Eigen::Quaterniond q1(vo_q.toRotationMatrix() Tcb.linear()); Eigen::Matrix4d m4 = quat_left_matrix((q2 q0).normalized()) * quat_right_matrix(q1.conjugate());
why the code is q1 = vo_q.toRotationMatrix() * Tcb.linear() ,but thr formula in article is q1= cb.linear()?
Eigen::Quaterniond q1(vo_q.toRotationMatrix() Tcb.linear()); Eigen::Matrix4d m4 = quat_left_matrix((q2 q0).normalized()) * quat_right_matrix(q1.conjugate());
why the code is q1 = vo_q.toRotationMatrix() * Tcb.linear() ,but thr formula in article is q1= cb.linear()?
the formula of the measurement Jacobian in code measurementH()
is defined as -r(x)/delta X
while the form of h(x)/delta X
is defined in my article.
the definition of measurement residual and Jacobian matrix in the code is as below:
ok, thanks , and I find that if the measurement is not very accurate(such as the position has a average error of 15 mm , angle error is 5-6degree), the eskf system's perfoemance is not very good , the corrected vel is not accurate , and the corrected positoion will be volatility, can give some suggestions about the problem?
@SkyPigZhu it is a demo project that i wrote to study and practice sensor fusion algrithms, and it is not accuracy and robust in some cases. you can optimize it and fork and pull request.
@cggos Thanks for your codes. Besides what is the meaning of the subscript bn in the measurement function h(x)?
@cggos Thanks for your codes. Besides what is the meaning of the subscript bn in the measurement function h(x)?
@zzhh00 the Bn
is the IMU coordinate of the nth frame
presentation of the algorithm: https://www.researchgate.net/publication/353330937_IMU_and_VO_Loose_Fusion_based_on_ESKF
@cggos Are you sure it is bn instead of bm?
@cggos Are you sure it is bn instead of bm?
@zzhh00 you can reference the sketch below which the code based on or the presentation/publication in ResearchGate
@cggos Thanks for your reply. However why the measurement is not Tc0cm? As your formula, the measurement is Tc0cm*Tcmcn=Tc0cn. It is obvious that cm refers to the measurement frame from camera. We get the Tcmcn through imu, why we use the value of imu in the measurement function?
@zzhh00
@cggos Thank you.
I see code "Eigen::Quaterniond q1(vo_q.toRotationMatrix() * Tcb.linear());" Is not the same as the formula in your article