-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Boundary interpolation bug #1056
Comments
Sorry for taking so long to reply to this, do you have a simple reproduction of this? |
Unfortunately I am not able to create a simple reproduction of this bug, while the project which uses this library is very complex (it' s ROS project). I can just supply some part of information: Is some more information necessary? |
When a Ceres solver starts with a point just on a boundary (min or max limit), the Ceres does not do optimization steps and locks itself on the boundary point. The same happens randomly when Ceres gets to any boundary (min or max limit) during optimization steps - it stops optimization step on the boundary.
The error is obviously in the interpolation calculation due to numeric error, which numerically appears to start from a point little behind the boundary limit. This happens when a programmer forgets to check the optimization step goal validity before iteration calculation.
Proposed correction: The code must check the optimization step direction first, then compare whether the direction goes out of boundary or inside of boundaries. Inside of boundaries is valid, outside of boundaries is invalid. For a valid iteration goal, the interpolation must not be done, while the goal is valid completely. For an invalid iteration goal only, the interpolation has to be done.
I have discovered this bug on a version 2.1.0. Since I have not found any such bug in issues list descriptions nor in a bug fixes list of a new version 2.2.0, I have input this issue here, while this bug probably still persists in new version also.
The text was updated successfully, but these errors were encountered: