Skip to content

Support newer Mink and optimize finite-difference IK - #30

Merged
kou merged 1 commit into
enactic:mainfrom
stevenaya:feat/mink-ik-optimization
Oct 2, 2026
Merged

kou merged 1 commit into
enactic:mainfrom
stevenaya:feat/mink-ik-optimization

Conversation

@stevenaya

Copy link
Copy Markdown
Contributor

Summary

  • Support Mink fused residuals and update minimum solver dependencies.
  • Reuse Jacobians/SVDs, share independent bimanual perturbation FK, and reduce allocations while preserving existing tasks and constraints.
  • Add focused regression coverage and CI for minimum/latest Mink.

Validation

  • 67 tests pass with Mink 1.2.0 / MuJoCo 3.8.1 and Mink 1.3.0 / MuJoCo 3.14.0.
  • Ruff check and format checks pass.

Copilot AI balanced review requested due to automatic review settings October 1, 2026 12:33
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
stevenaya force-pushed the feat/mink-ik-optimization branch from 8bd31f9 to 408bc80 Compare October 1, 2026 12:35

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot AI balanced review requested due to automatic review settings October 1, 2026 12:37

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@kou
kou merged commit 167f69d into enactic:main Oct 2, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants