Repository navigation
Support newer Mink and optimize finite-difference IK - #30
Merged
Merged
Conversation
Keep the existing tasks, constraints and finite-difference semantics while sharing geometry, pairing independent arm perturbations, batching SVDs and reducing temporary allocations. Update solver dependency support and focused numerical, cache-ownership and topology regression coverage.
stevenaya
force-pushed
the
feat/mink-ik-optimization
branch
from
October 1, 2026 12:35
8bd31f9 to
408bc80
Compare
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
Numerical IK constraints, cache invalidation, and dependency-private APIs warrant final human validation despite comprehensive passing tests.
Review effort: Balanced
Findings: None
What changed in this PR
Updates IK internals for Mink 1.2+ while reducing repeated Jacobian, SVD, FK, and allocation work.
Changes:
- Adds cached geometry, fused task residuals, and batched bimanual calculations.
- Optimizes joint and singularity constraints while preserving behavior.
- Expands regression coverage and tests minimum/latest Mink versions.
| File | Description |
|---|---|
.github/workflows/test.yaml |
Adds minimum/latest Mink CI matrix. |
pyproject.toml |
Raises solver dependency minimums. |
src/openarm_control/geometry/jacobian.py |
Adds configuration-level geometry caching. |
src/openarm_control/kinematics.py |
Integrates caches and paired computations. |
src/openarm_control/qp/arm_joint_limit.py |
Reuses projected constraint matrices. |
src/openarm_control/qp/bounded_frame_task.py |
Implements fused bounded residuals. |
src/openarm_control/qp/nullspace_posture_task.py |
Caches and batches SVD calculations. |
src/openarm_control/qp/singularity_approach_limit.py |
Batches finite-difference Jacobians and FK. |
tests/test_geometry.py |
Tests cache invalidation and immutability. |
tests/test_ik_params.py |
Consolidates hidden-option coverage. |
tests/test_kinematics.py |
Verifies solver operation counts. |
tests/test_qp_limits.py |
Covers optimized limit calculations. |
tests/test_qp_tasks.py |
Covers fused residuals and SVD caching. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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
Validation