Repository navigation
[Newton] Add GPU H2 tablecloth speed-comparison example - #7185
Merged
maxkra15 merged 53 commits intoOct 13, 2026
Merged
Conversation
kellyguo11
approved these changes
Sep 1, 2026
Contributor
|
do you want to land this on develop? |
…n-tablecloth-demos # Conflicts: # source/isaaclab_newton/isaaclab_newton/physics/vbd_manager.py # source/isaaclab_newton/test/physics/test_vbd_core.py
4 tasks done
Contributor
Author
|
run-ci |
Contributor
Author
|
run-ci |
Contributor
Author
|
run-ci |
Contributor
Author
|
run-ci |
AntoineRichard
pushed a commit
that referenced
this pull request
Oct 12, 2026
## Summary Extract the reusable Newton fixes from #7185, as requested in review. No tablecloth environment, asset, example, or video recorder is included. - Include active cloth bending constraints in VBD graph coloring. - Expose structural `rigid_joint_linear_ke` and `rigid_joint_angular_ke`, independently of actuator gains; defaults retain Newton's `1e5` values. - Expose `friction_epsilon` with the native default `1e-2`, documented in m/s. - Publish generalized joint state after each standalone VBD physics tick. `update_joint_state=False` opts out. Coupled solvers and externally integrated rigid bodies retain their existing state ownership. - Respect a configured nested articulation root when constructing the Newton IK prototype view. Publication is a device-side Warp operation included in the physics CUDA graph, without CPU state reads. ## Validation Merged upstream `develop` at `cfa9e35c2a756849f3fea4bde9eac947f85a8300`. Current-head tests use pinned Newton `1.7.0.dev0` (`5ea82eef6f7911388025a8df6ccdb172e2fed286`) and Warp `1.17.0` on an NVIDIA L40: - `test_vbd_core.py`: **9 passed** — bending, native defaults, explicit stiffness/friction settings, and analytic gravity/torque equilibrium. - `test_rigid_object.py -k vbd_root`: **3 passed** — public-state publication, opt-out, and externally owned state. - `test_newton_ik_solver.py`: **5 passed**. - `test_coupler_runtime.py`: **4 passed** — includes comparison against native coupled stepping to protect generalized-state ownership. - `test_coupler.py`: **73 passed**. - Each file ran in its own process with `uv run --frozen --no-sync python -m pytest -q`. Existing upstream deprecation warnings remain. - Local regression mutations fail without the coupled-state guard, linear/angular gain forwarding, friction forwarding, or native default preservation. The duplicated stiffness simulation was consolidated while retaining independent default/configuration and physical-equilibrium checks. - `ISAACLAB_CHANGELOG_BASE_REF=cfa9e35c2a756849f3fea4bde9eac947f85a8300 UV_FROZEN=1 uv run --no-sync isaaclab -f`: passed. - `uv run --frozen --no-sync make -C docs current-docs`: clean warning-as-error build passed. ## Type of change - Bug fix - Non-breaking configuration additions - Documentation update ## Checklist - [x] Read the contribution guidelines and used the existing package conventions. - [x] Added focused regression coverage and ran formatting/lint checks. - [x] Added package changelog fragments and a minor-version marker for configuration additions. - [x] Updated the VBD tuning guide and built the documentation.
Contributor
Author
|
run-ci |
Contributor
Author
|
run-ci |
ooctipus
reviewed
Oct 12, 2026
ooctipus
reviewed
Oct 12, 2026
ooctipus
reviewed
Oct 12, 2026
Contributor
Author
|
run-ci |
AntoineRichard
approved these changes
Oct 13, 2026
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.
Description
Add an experimental Isaac Lab example: five fixed-base H2 Plus robots with native SHARPA hands perform contact-only tablecloth pulls at 4, 2, 1.5, 0.75 and 0.5 m/s. The three faster trials keep the dishes on their tables; both slow trials drop them.
uv run isaaclab example tablecloth --device cuda:0 # One trial without rendering: uv run isaaclab example tablecloth --device cuda:0 --speeds 4.0 --viz noneInteractiveSceneowns the side-by-side worlds, default ground plane, table visuals and primitive tableware colliders. Warp and Newton IK script approach, insertion, finger closure, withdrawal, lift and pull. Physics, actuators, IK, interpolation and grasp monitoring are GPU graph-captured. No cloth attachments or added fingertip pads are used.Addressed the remaining review comments by keeping the scenario in one
examples/tablecloth.py: standard articulation/cloth configs, private asset preparation and controller, and public articulation selection/native views instead of custom index resolution. The Contrib modules and dependency are removed. The seven-file feature diff has one 1,384-line Python example, down from 1,563 lines across three files. No RL task, custom recorder, new dependency, backend tests or generic solver changes remain. Shared VBD fixes landed in #8360. This branch includes upstreamdevelopat32fea6be38e3dafd3a157883780198e0bb3fc1a3.The manufacturer USD is pinned to
b6a8942b0803b6c137e58cef12beb4b03e4a2fa7and retrieved through Isaac Lab's asset cache. Documentation is one compact example card, not a new page.Screenshot and videos
Retained headless Kit recordings at 1080p/60 fps. Playback speed is not simulation throughput; Catmull–Clark only smooths rendering. These show the previously qualified physical configuration, retained unchanged by the refactor.
Five-speed overview:
tablecloth_h2_overview_1080p60.mp4
Wider side view of the fastest robot:
tablecloth_h2_wider_side_1080p60.mp4
Validation
Head:
37e1a5bd8f1da6dc1cf648f842348530fe975284. Pinned Newton1.7.0.dev0and Warp1.17.0, NVIDIA L40.git diff --check, and a clean warning-as-error Sphinx HTML build passed.Limitations
Calibrated fixed-base manipulation, not humanoid balance or a general grasp planner. The 64 physics ticks per 60 Hz control frame favor contact accuracy over real-time throughput. Direct compliant-ALM drives do not enforce native hardware torque limits or armature; whole-robot self-collision avoidance is not provided. Asset/contact changes require revalidation. One deterministic full run is not a robustness guarantee under perturbations. Existing upstream asset/runtime warnings remain.
Checklist
CONTRIBUTORS.md.