Skip to content
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

Iterations and simulated annealing #4

Open
jsantell opened this issue Apr 23, 2018 · 2 comments
Open

Iterations and simulated annealing #4

jsantell opened this issue Apr 23, 2018 · 2 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@jsantell
Copy link
Owner

This article by Jonathan Blow describes a way of finding constraints similarly to the FABRIK paper -- as a valid ellipsoidal area infront of the joint. But since both CCD and FABRIK both are iterative solvers, there could be a point where the local maxima does not reach the target in a chain, however there's still a valid solution if the base joint was rotated on a different axis, for example.

The article covers simulated annealing, or as I understand it, try a second iteration from a different valid base joint rotation and see if it results in an end effector closer to the target than the original base joint rotation. I can try and post an example sketch if this needs further explanation.

@jsantell jsantell added enhancement New feature or request help wanted Extra attention is needed labels Apr 23, 2018
@zalo
Copy link

zalo commented Apr 24, 2018

Alternatively, you can try to anneal through the non-convexities by doing a few iterations with the rotation-limits disabled (allowing joints to rotate past their limits). Then, a few more iterations with the limits on. Some of the joints may "pop" to the other side of their limit, thus "teleporting" the chain to a configuration that can easily converge on the target. (This will not always work, but it's free)

@jsantell
Copy link
Owner Author

I believe my earlier attempt did not disable the rotation limits, I wonder if that'd be the key to prevent the non-stop "popping", but it was a quick and crude attempt that probably needed to prioritize the current pose if the "popped"/different pose did not result in a significantly closer solution

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants