liangheming / iG-LIO_SAM_LC

iG-LIO with Loop Closure(PGO) and Online Re-Localize
MIT License
149 stars 19 forks source link

The question about the Jacobian derivation in IESKF::update()? #7

Closed Freeecode closed 3 months ago

Freeecode commented 3 months ago

Hi, thanks for sharing the work! I was checking the code and found some difference compared to ig-lio, especially in convariance update and constructing IMU prior constraint. For example, when constructing IMU prior constraint, the jacobian about current state in ig-lio is
image while in your code is image and I checked the details in the paper and other paper: image and the problem also appear in convariance update, in ig-lio: image while in in your code : image if the LIO is ok, I think the jacobian maybe is approximately identity matrix.

liangheming commented 3 months ago

Thank you for your careful inspection,you are right, I have really made a big mistake. it should be "Jr_inv", not "Jr";

a

Freeecode commented 3 months ago

Hi, the functions of convariance update are aslo different. I checked the formulation in ig-lio and I found that is similar to -Jl_inv: image about this question, do you have any ideas?

liangheming commented 3 months ago

i think the author missed a transpose(), P_ = L.transpose() temp L

Freeecode commented 3 months ago

yes, in the ig-lio code, the author missed a transpose for L, and the computation of matrix L confused me, which is a derivation of state?

liangheming commented 3 months ago

reply

Freeecode commented 3 months ago

用中文吧,整个过程是我是清楚,就是在计算L矩阵时,我看需要计算雅克比矩阵,如下图所示 image 而在你的代码中,这部分也在计算雅克比矩阵 image ig-lio中L的计算,这个雅克比的形式应该是Jl_inv,这个雅克比矩阵应该是对更新之前的位姿进行求导

liangheming commented 3 months ago

最后一步是误差卡尔曼的修正过程,在《Quaternion kinematics for the error-state KF》 第64页的6.3节ESKF reset有直接的结论, IG LIO 的作者应该是用了这里的结论,但是这个雅可比其实误差状态对更新前误差的导数(文字描述还是有歧义,你直接看论文中的公式,或许会更好理解)

Freeecode commented 3 months ago

好的,谢谢!