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

[label:question] Question about Jacobians Phi_tr in UpdaterWheel::preintegration_3D #18

Open
qpc001 opened this issue Jan 29, 2024 · 2 comments
Labels
bug Something isn't working documentation Improvements or additions to documentation

Comments

@qpc001
Copy link

qpc001 commented Jan 29, 2024

in this line:

Phi_tr.block(3, 0, 3, 3) = -R_3D.transpose() * skew_x(R_3D.transpose() * (new_p - p_3D));

I think new_p is equal to (p_3D + R_3D.transpose()*v*dt), then the line comes to:

Phi_tr.block(3, 0, 3, 3) = -R_3D.transpose() * skew_x(R_3D.transpose() * (R_3D.transpose()*v*dt));

But it seems that the final result should be:

Phi_tr.block(3, 0, 3, 3) = -R_3D.transpose() * skew_x(v*dt));

So I think the origin line should be the following code:

Phi_tr.block(3, 0, 3, 3) = -R_3D.transpose() * skew_x(R_3D * (new_p - p_3D));

Just remove the .transpose()

@WoosikLee2510
Copy link
Member

It is very hard to understand your question, could you refer the lines of the code you read and drive it from there?
Also, your second eq doesn't seem right - R_3D.transpose() * (R_3D.transpose()*v*dt) the reference frame should match. I.e., cannot multiply the same rotation matrix R_3D.transpose() * R_3D.transpose().

@qpc001
Copy link
Author

qpc001 commented Feb 2, 2024

It is very hard to understand your question, could you refer the lines of the code you read and drive it from there? Also, your second eq doesn't seem right - R_3D.transpose() * (R_3D.transpose()*v*dt) the reference frame should match. I.e., cannot multiply the same rotation matrix R_3D.transpose() * R_3D.transpose().

很难理解你的问题,你能参考你读到的代码行并从那里驱动它吗? 此外,你的第二个eq似乎不正确- R_3D.transpose() * (R_3D.transpose()*v*dt)参考框架应该匹配。也就是说,不能乘以相同的旋转矩阵R_3D.transpose() * R_3D.transpose()

But the original code in

Phi_tr.block(3, 0, 3, 3) = -R_3D.transpose() * skew_x(R_3D.transpose() * (new_p - p_3D));
is equal to Phi_tr.block(3, 0, 3, 3) = -R_3D.transpose() * skew_x(R_3D.transpose() * (R_3D.transpose()*v*dt));, if new_p= p_3D + R_3D.transpose()*v*dt

@WoosikLee2510 WoosikLee2510 added bug Something isn't working documentation Improvements or additions to documentation labels Feb 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants