-
Notifications
You must be signed in to change notification settings - Fork 13.3k
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
ekf2: symforce - use builtin Rot3 and Quaternion operations #21359
Conversation
Time to drop (or relax) the comparisons with old generated? |
Yes, I't trying to find a new metric to compare them or just make new unit tests to actually make sure the result is correct instead of just comparing with the old derivation. |
ba06334
to
573a633
Compare
d7496c8
to
7042375
Compare
The true correct thing would actually be to define the quaternion variance on the tangent-space and not as an uncertainty on each component of the quaternion (the quaternion is not "just a vector"). see A micro Lie theory for state estimation in robotics, p.8-II.H and how to do it in SymForce. This would reduce the P matrix to 23x23 elements, so it would make sense to also estimate the delta quaternion (3D) in an error-state EKF to also reduce the state vector. Something to keep in mind for later. |
f69bbdd
to
a890fe1
Compare
to merge after 1.14 release |
This is exactly equivalent for a unit quaternion (and only unit quaternions should be used to encode a rotation)
a890fe1
to
c521873
Compare
Solution
Symforce has rotation (https://symforce.org/api/symforce.symbolic.html#symforce.symbolic.Rot3) and quaternion (https://symforce.org/api/symforce.symbolic.html#symforce.symbolic.Quaternion) support so we should use it instead of re-writing all the functions (mult, conversions, ...).
Test coverage