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

Question on dynamic initialization jacobian #447

Open
precyon opened this issue May 30, 2024 · 0 comments
Open

Question on dynamic initialization jacobian #447

precyon opened this issue May 30, 2024 · 0 comments
Labels
question Theory or implementation question

Comments

@precyon
Copy link

precyon commented May 30, 2024

To the authors and the community,

I have some trouble deriving on of the error jacobians in the dynamic initialization. In particular, the jacobian of the error w.r.t rotation component of the state as coded here. It says,

H_theta = -Jr_inv * R_lin.transpose();

From your technical report, the error is defined as global error G δ θ . The state to be estimated is G I R . So the perturbations are right-sided. Is that correct?

Now G δ θ = log ( G I R T G I R lin ) . So the jacobian w.r.t the state G I R should be the following through chain-rule.

log G δ θ G δ θ × G I R T G I R lin G I R T × G I R T G I R

Which should be (switching back to code for brevity),

Jr_inv * R_lin.transpose() * (-R_i) 

Where we are using the following for elementary jacobians. While they can be derived through perturbing the corresponding expressions on the right, I will refer to Eqn 140 and 141 in Sola et al.

  1. J Q Q R = R T
  2. J R R T = R

So finally I have,

H_theta = - Jr_inv * R_lin.transpose() * R_i 

which differs from the code by having an extra R_i on the right.

What am I missing in my understanding? I did find and look at 276 but that didn't quite address it fully.

@goldbattle goldbattle added the question Theory or implementation question label Sep 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Theory or implementation question
Projects
None yet
Development

No branches or pull requests

2 participants