-
Notifications
You must be signed in to change notification settings - Fork 308
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
residual format #20
Comments
Hi @narutojxl ,
|
Thanks for your help @koide3! Could you please give some advice how you calculate the jacobian, thanks for your help very much! |
Calculating the jacobian of (B + RAR^T)^-1 is very complicated. I did it (you can find the code at the following links), but it was very slow and impractical. In practice, we approximate RAR^T as a constant matrix during each optimization iteration step. Then, dr/dR can be simply given by (B + RAR^T)^-1 * dRa/dR. This approximation doesn't affect the accuracy while making the derivatives simple and fast. https://github.com/SMRT-AIST/fast_gicp/blob/87cd6288d14bd155e8b7a2144f68bb5246aecc52/include/fast_gicp/gicp/gicp_loss.hpp |
Thanks very very much@koide3 :) |
It's a trick to calculate the jacobian of expmap. While the jacobian of expmap around |
I refer to this book |
@narutojxl, see Section 3.3.5 (the subsubsection after what you referenced) of the same book or eq (94) of Eade |
Question about the covariance. |
Hi, doctor @koide3 |
As explained at #20 (comment), we fix the fused covariance matrix at the linearization point. This approximation makes the log term constant and negligible during optimization. |
Got it #20 (comment), Thanks for your reply! |
Hi doctor @koide3,
I want to figure out the jacobians of residual in code.
RCR_inv * d
209 line of fast_gicp_st_impl.hpp, which is 3 dimensional, notd.transpose() * RCR_inv * d
, which is a scalar matching with the paper's cost function, why the residual is this?Thanks for your help!
Jiao
The text was updated successfully, but these errors were encountered: