Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to compute H ??? #28

Closed
duandongbin000 opened this issue Jul 6, 2021 · 12 comments
Closed

How to compute H ??? #28

duandongbin000 opened this issue Jul 6, 2021 · 12 comments

Comments

@duandongbin000
Copy link

duandongbin000 commented Jul 6, 2021

Dear friend:
我直接说中文啦!我是个slam初学者,看了您们的论文“FAST-LIO: A Fast, Robust LiDAR-inertial Odometry Package by Tightly-Coupled Iterated Kalman Filter”,有个地方很迷惑,,不知道论文公式14中雅可比H怎么计算的?具体什么形式呢?
img

/*** calculate the Measuremnt Jacobian matrix H ***/ Eigen::Vector3d A(point_crossmat * state.rot_end.transpose() * norm_vec); Hsub.row(i) << VEC_FROM_ARRAY(A), norm_p.x, norm_p.y, norm_p.z;

@duandongbin000 duandongbin000 changed the title How compute H ??? How to compute H ??? Jul 6, 2021
@XW-HKU
Copy link
Member

XW-HKU commented Jul 6, 2021

根据error state的定义:真值 x_k = propagated x_k \boxplus error-state x_k,h_j 函数中的真值 x_k可以替换成 ( propagated x_k \boxplus error-state x_k), 由于error-state x_k很小,所以可以根据泰勒公式在将原的h_j(真值 x_k, {L_j} n_{f_j})在 h_j(propagated x_k, {L_j} n_{f_j})处进行线性化(等于说“在error-state x_k = 0处进行线性化”)。

因此 H矩阵的物理含义就是h_j函数对error-state x_k的Jacobin matrix。

@duandongbin000
Copy link
Author

这个H是对称三角阵吗?能否给个H的具体什么形式 。 H = P_cross * R * G + G ???

@XW-HKU
Copy link
Member

XW-HKU commented Jul 9, 2021

这个H是对称三角阵吗?能否给个H的具体什么形式 。 H = P_cross * R * G + G ???

首先你要知道hj()是一个一维的数。

H_j是H矩阵的第j行,H_j 是一个1×18的向量但是只有前6个不为0,前三个是对旋转的偏导,第四到第六个是对位移的偏导。具体的解析形式我有空了会写一个。

@duandongbin000
Copy link
Author

duandongbin000 commented Jul 9, 2021

谢啦 非常感谢您的指导。
大概是如下推导吗?
image

@XW-HKU
Copy link
Member

XW-HKU commented Jul 13, 2021

Sorry fot the late reply.

For delta p, I think it is right.

But for delta R, looks like a bit weired. delta R should be a R^3 vector not a rotation matrix. You can follow the below guide:

751520824

@duandongbin000
Copy link
Author

okay, thank you!

@XW-HKU XW-HKU closed this as completed Aug 26, 2021
@xiaotaw
Copy link

xiaotaw commented Sep 29, 2021

@XW-HKU 我推出来的公式和代码中的不太一样,请帮忙看看。
lADPDgtYyagXUOjNC7jND6A_4000_3000

@cuishiwei
Copy link

@XW-HKU 我推出来的公式和代码中的不太一样,请帮忙看看。 lADPDgtYyagXUOjNC7jND6A_4000_3000

你好,请教一下这个求导过程,最后怎么理解的?你照片中确实和代码有出入啊。

@xiaotaw
Copy link

xiaotaw commented May 15, 2022

@cuishiwei 代码和论文是一致的,形式上差一个转置。我之前手写的可能推错了,也不去做校验了。后面又推一个电子版的,供参考。

Screenshot_2022-05-15_17-20-03

简略的推导过程

Screenshot_2022-05-15_17-18-29

@yangtzey
Copy link

yangtzey commented Aug 8, 2022

@xiaotaw 你好,请问下方便把详细推导文档分享下吗?谢谢! 841581437@qq.com

@xiaotaw
Copy link

xiaotaw commented Aug 8, 2022

@xiaotaw 你好,请问下方便把详细推导文档分享下吗?谢谢! 841581437@qq.com

之前截图这版有误,修正之后的版本,整理了一下,放到了知乎上,排版稍微有点差,暂时没有时间去优化,勉强也能看。https://zhuanlan.zhihu.com/p/538975422

@yangtzey
Copy link

yangtzey commented Aug 9, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants