-
Notifications
You must be signed in to change notification settings - Fork 40
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
WIP: Covariance with local parameterization #57
base: master
Are you sure you want to change the base?
WIP: Covariance with local parameterization #57
Conversation
Judging by the algorithm on the Ceres website, it seems like the local parameterization of the quaternion is the non-normalized angle-axis representation, just as in the |
9665942
to
57f717b
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
There were a few mistakes in #54 that are addressed by #63 which caused some confusion with my previous comments. Using the corrected version of the cost function and unit tests, I was able to create the covariance matrices for various parameterizations of this problem Covariance - Pose6dI slightly modified the original PnP cost function (from 0.1.0) to take two pointers (angle axis and position) instead of one.
Covariance - Eigen AngleAxis (no local parameterization)I then slightly modified the new cost function to cast the input orientation pointer to an
Covariance - Eigen Quaternion with Local ParameterizationI generated the covariance matrix using the existing cost function that leverages quaternions and local parameterization
Conclusions
|
57f717b
to
44a6911
Compare
This PR adds the ability to calculate covariance for parameters that were locally parameterized in the optimization. My test case for development was the Eigen-based PnP optimization in #54.
PnP Covariance Results
In these tests the simulated camera was positioned over the center of the target (rather than the origin, which is in the corner) at a 1m standoff.
Because the quaternion is locally parameterized by Ceres, I'm not entirely sure what the three output values physically represent. This will require a little more research into Ceres
5x7, 0.025m target, perfect initial condition
10x14, 0.025m target, perfect initial condition
10x14, 0.05m target, perfect initial condition
Interesting to note that the variance of the parameters goes down as the target got physically larger and as the number of points increased. The off-diagonal terms, however, seemed unaffected