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

The derivation was based which form of quaternion? JPL or Hamilton #3

Open
yang0331 opened this issue Dec 21, 2022 · 3 comments
Open

Comments

@yang0331
Copy link

Hello, I wanna know that your derivation of all equations was in form of JPL or Hamilton quaternion. Because you referred to OpenVINS and it is based on JPL quaternion. Was the state transition matrix F also derived in form of JPL? I am looking forward to your reply.

@yang0331
Copy link
Author

Also, we derived and found you used the right multiplication of R*delta_R to derive the F and J, but I feel confused when you update the state X, why you used exp(theta)R instead of Rexp(theta)? Should we keep the same form of right multiplication when updating the state and deriving the Jacobian?

@ChangwuLiu
Copy link
Owner

Hi, I use 'rotation matrix (from the body to the world)' instead of 'quaternions' to represent pose (and thus there's nothing to do with 'Hamilton' or 'JPL' issues), since in the invariant filter theory (you may refer to the paper 'A. Barrau and S. Bonnabel. The invariant EKF as a stable observer') the triple (R, p, v) of the estimation target is viewed as a coupled SE_2(3) matrix group (instead of the SO(3)R3R3 in the conventional case). The invariant EKF theory gives the user the freedom to choose either the left or the right invariant error. However, to meet the compatibility criterion required by consistency issues in this specific problem, only the right invariant form can be adopted. By choosing such right-invariant error form, the 'delta' is acting on the LEFT of the state (e.g. rotation matrix) due to the definition of right-invariant error by matrix logarithm, i.e. err=log_{SE_2(3)}(\hat X X^{-1}) (let X be the state). Such behavior is fixed by the theory, unlike the conventional case where your can DEFINE whether the delta should be acting on the left or right side of SO(3) or SU(2) (quaternions). Also, another remark about your confusion: the right multiplication of exp(\omega*dt) on the rotation matrix is the discrete propagation of the state mean, this has nothing to do with the error state. The error state strictly follows the right invariant error definition, as you can see in the structure of the state transition matrix. I hope these can help :). Cheers!!

@yang0331
Copy link
Author

Thank you for your reply and solve my confusion.

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

2 participants