Expose VBD stabilization and contact capacity for rigid cables - #7913
rebeccazhang0707 wants to merge 3 commits into
Conversation
|
There was a problem hiding this comment.
Isaac Lab Review Bot
The PR additively exposes four Newton VBD rigid-solver controls on VBDSolverCfg, documents their migration semantics, adds the required package changelog fragment, and tests manager-created solvers against direct Newton SolverVBD construction.
- Design and architecture: The controls remain localized to the Newton-specific solver configuration and rely on the existing manager forwarding path. Using
Nonefor mode-dependent backend defaults preserves current behavior while allowing explicit compliant-ALM opt-in. Exposing the already deprecated legacyrigid_contact_hardoption is a deliberate migration aid that may require later cleanup when Newton removes that mode. - API: The public API change is additive and follows the package’s
rigid_*naming and modern union-type conventions. Declared and documented defaults are consistent, existing configurations retain their behavior, and the tuning guide plus past-tense changelog fragment provide migration guidance for compliant ALM. - Implementation: The parameterized test exercises default, legacy hard-contact, legacy penalty-contact, and compliant-ALM configurations on a real CPU model. It compares both solver attributes and body-body buffer allocation against direct
SolverVBDconstruction, covering the existing config-to-manager forwarding path. The main residual maintenance risk is that documentation of Newton-specific mode defaults and deprecations may need updating alongside future backend versions.
No blocking issues. No inline issue met the actionable-evidence threshold; the assessment above records the review feedback.
Automated review; human maintainers own approval decisions.
|
434056c to
1209acb
Compare
|
run-ci |
|
@mmichelis please also review |
|
mmichelis
left a comment
There was a problem hiding this comment.
Thanks for the addition! I agree with Max, what is the reasoning of not exposing rigid_compliant_alm as well? This seems like a logical additional parameter. I would also state the Newton mode-dependent defaults for alpha explicitly here, just so that is clear as well.
|
Thank you for the guidance, @maxkra15. Added |
|
Thank you for the review, @mmichelis. Agreed that the mode switch belongs here. Added |
Description
Rigid cable tasks such as shoelace currently need a
VBDSolverCfgsubclass to configure shared joint/contact stabilization and per-body body-body contact capacity. Exposerigid_avbd_alphaandrigid_body_contact_buffer_sizeso those settings can be passed directly:The defaults (
Noneand64) preserve the pinned Newton constructor's behavior. The existing manager already forwards both fields. The change adds two configuration fields, two tuning-guide entries, a package changelog fragment, and two parameterized test cases.Related: #6733.
Validation
uv run --frozen --extra test python -m pytest -q source/isaaclab_newton/test/physics/test_vbd_core.py— 10 passed with Newton 1.6.0. The two configuration cases compare real CPU solver construction with direct Newton construction for defaults and shoelace settings, including unchanged contact mode and allocated contact capacity.uv run --frozen --isolated --extra dev -- make -C docs current-docs— warning-free build.ISAACLAB_CHANGELOG_BASE_REF=upstream-develop-pr-base UV_FROZEN=1 uv run isaaclab -fand the changelog gate — passed. The base ref tracks upstreamdeveloprather than the fork's olderorigin/develop.Type of change
Release backport
developChecklist
uv run isaaclab -f.CONTRIBUTORS.md.