-
Notifications
You must be signed in to change notification settings - Fork 0
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 constraints with precision matrix #5
base: knight
Are you sure you want to change the base?
Conversation
…se in creating asymetric constraints
…eedless covariance
…e weight on low variance directions, and vice versa
4face2d
to
af3711a
Compare
…ass through to use choleskey instead of full precision
About to push a bunch of changes so might make sense to wait on review. |
I'll have to clean up that history before cartographer people would accept. |
I remembered that cartographer used to have a weight matrix but dumped it a long time ago. It appears they were using if or a different purpose though the original paper appears to endorse the use of covariance in the constraint for improved accuracy. https://github.com/googlecartographer/cartographer/pull/309/files |
auto row_major_jacobian = Eigen::Matrix<double, Eigen::Dynamic, 3, Eigen::RowMajor>(point_cloud.size(), 4); | ||
auto jacobianPtr = row_major_jacobian.data(); // for use to create fake array of jacobians | ||
|
||
costFunction->Evaluate(parameter_blocks.data(), residuals.data(), &jacobianPtr); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not of any concern here, but there is also problem.Evaluate
method that can populate residuals and jacobians using the final solution. FYI
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't use that one because the problem still has the seed in it. As far as I've read removing a cost function can mess up the jacobians.
ceres::Solver::Summary unused_summary; | ||
Eigen::Matrix3d seedless_precision; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
May consider initializing to zeros here. Ceres also uses sparse matrices(sometimes) and depending on the implementation, there may be a condition in which the Evaluate
may only assign to the non-zero entries of the matrix leaving garbage value for the zero entries.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm. Good catch. Will do.
No description provided.