Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds another simplified unit test of related to PR #564 and Issue #561.
The unit test situation is very simple - there are two horizontal planes, p1 and p2, connected to a pose, x0. All the variables have priors on them.
In this toy example, all the factors are "perfect" (i.e. the optimal solution should have zero error), and the initial condition on the planes are "perfect" (the same as their optimal value). The only thing the optimizer needs to do is solve a pose offset - the initial condition is at (100,0,0) and the optimal solution is at (99,0,0).
![image](https://user-images.githubusercontent.com/6793487/105092066-ac77e700-5a98-11eb-82a0-897c06c1057a.png)
The Gauss Newton optimizer throws an
IndeterminantSystemError
exception.The Hessians associated to each variable are below. It seems that the plane variables are very poorly conditioned.
I think there may be a problem with the second element in the
OrientedPlane3Factor
residual but I don't know enough about how gtsam works out the Hessian to be sure.Any thoughts on the next step for debugging this?