bump IK max_iter to 20 to enable wrist-flip restart in pinokin#1
Merged
Conversation
Pinokin's wrist-flip restart strategy (introduced in pinokin fix-ik-wrist-flip-restart) only triggers after LM converges to a limits-violating q. With max_iter=10 some realistic seeds (e.g. the PRECISION_POSE call from end-of-zigzag in demo_showcase line 98) need ~11 LM iters to converge — they exited the inner loop without ever calling check_limits, so the wrist flip never applied. 20 gives enough margin for current PAROL6 IK seeds while keeping worst-case solve time well under 1 ms. Successful first-attempt convergence is unaffected (LM converges in <20 iters either way).
Merged
6 tasks
v0.1.6 ships the deterministic wrist-flip restart for limits-violating IK branches (Jepson2k/pinokin#1). Combined with this branch's max_iter bump to 20, the wrist-flip restart now actually fires for the realistic PAROL6 seeds it was designed to rescue.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Bumps
max_iterfor the cached IK solver inparol6/utils/ik.pyfrom 10 to 20.Why
Companion to Jepson2k/pinokin#1 which adds a deterministic wrist-flip restart strategy. The wrist flip only triggers after LM converges to a limits-violating q (i.e. inside the convergence-then-check_limits-rejected branch). With
max_iter=10, some realistic seeds — e.g. the PRECISION_POSE call from end-of-zigzag indemo_showcase.pyline 98 — need ~11 LM iters to converge and were exiting the inner loop without ever callingcheck_limits, so the wrist flip never applied.max_iter=20gives margin for currently observed PAROL6 IK seeds while keeping worst-case solve time well under 1 ms. Successful first-attempt convergence is unaffected since LM converges in <20 iters either way.Test plan
pytest— 231 passed, 8 skippedpre-commit run --all-files— cleanDependencies
pinokinv0.1.6 (or matching branch) for the wrist-flip behavior. CI will fall back to v0.1.5 wheels until pinokin is released, so the demo regression won't pass until pinokin v0.1.6 is tagged and the wheel pin inpyproject.tomlis bumped (separate follow-up).