[Backport release/3.0.0] Fix articulation wrench response assertion (#7504) - #7512
Conversation
# Description The `test_external_force_on_multiple_bodies_at_position` test asserted only the world-Z component of root angular velocity. The applied offset wrench can produce rotation on another axis, especially when body-frame wrenches are transformed, so the articulation can rotate while the Z component remains below the threshold. Check the total angular-speed magnitude instead, preserving the existing `0.1` threshold. Apply the same assertion to the OVPhysX, PhysX, and Newton test mirrors. This addresses the recurring CUDA failure observed in [the `test_articulation` job](https://github.com/isaac-sim/IsaacLab/actions/runs/33674713218/job/100398456668?pr=7458), where the world-Z angular velocity was `0.004370182752609253`. Related to isaac-sim#7458. No runtime dependencies are added. ## Type of change - Bug fix (non-breaking change which fixes an issue) ## Release backport - [x] <!-- backport-active-release --> Backport this pull request to the active release branch after it merges into `develop` ## Screenshots Not applicable; this is a test-only change. ## Validation - `uv run --no-project python -m compileall -q` on all three modified test modules - `uv run --no-project python tools/changelog/cli.py check codex-changelog-base --include-worktree` - `uvx pre-commit run --all-files` - The simulator-backed CUDA case requires Linux GPU CI and will be requested with `run-ci` ## Checklist - [x] I have read and understood the [contribution guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html) - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./isaaclab.sh --format` - [x] I have made corresponding changes to the documentation (not applicable: test-only change) - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works (updated the existing mirrored regression tests) - [x] I have added a changelog fragment under `source/<pkg>/changelog.d/` for every touched package (do **not** edit `CHANGELOG.rst` or bump `extension.toml` — CI handles that) - [x] I have added my name to the `CONTRIBUTORS.md` or my name already exists there ## Documentation CI follow-up The docs workflow also exposed 14 duplicate object registrations for schema fragment classes documented on both `isaaclab.sim` and `isaaclab.sim.schemas`. Keep the top-level public API rendering but mark its alias copies `:no-index:`, leaving the canonical schema page as the only Sphinx cross-reference target. Failure: [Build Latest Docs](https://github.com/isaac-sim/IsaacLab/actions/runs/33694569196/job/100460582334?pr=7504). A full local Sphinx build completed without the original duplicate-object warnings. Remaining local warnings were import failures for project packages unavailable in the macOS validation environment; the pushed Linux docs workflow provides the authoritative warning-free result. (cherry picked from commit 541de9a)
|
run-ci |
There was a problem hiding this comment.
Isaac Lab Review Bot
This backport consistently replaces the frame-dependent z-axis angular-velocity assertion with a rotation-magnitude assertion across the Newton, OV, and PhysX articulation regression tests, with matching .skip changelog fragments for each package.
- Design and architecture: The mirrored backend tests remain synchronized, and the revised assertion avoids encoding a backend- or link-frame-specific response axis while retaining the intended check that the applied wrench causes rotation.
- API: No production code, public API, configuration, export, or documented contract changes. The empty
.skipfragments appropriately record a test-only change in each touched source package without adding release notes. - Implementation: The new vector-norm assertion still rejects a non-rotating articulation. It is intentionally less axis-specific than the previous z-component assertion, so it would not detect rotation occurring around an unexpected axis, but that tradeoff matches the stated frame-dependent behavior being corrected.
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.
Greptile SummaryThis backport corrects a frame-dependent articulation wrench regression test without changing runtime behavior.
Confidence Score: 5/5The PR appears safe to merge with no actionable correctness or security issues identified. The updated assertions continue to reject absent rotational responses while avoiding an invalid assumption about which world-space axis carries rotation from a link-frame-dependent wrench. Important Files Changed
Reviews (1): Last reviewed commit: "Fix articulation and schema documentatio..." | Re-trigger Greptile |
|
run-ci |
Description
Backports #7504 to
release/3.0.0by cherry-picking the actual merged commit,541de9a7a91f9e7c24b24b923c0620475a00e051.The automatic backport stopped during source validation because the documentation hunk from #7504 had already reached
developthrough #7493. GitHub therefore omitted that already-present hunk from #7504's squash commit, while the PR files API still reported the original seven-file change. The validator rejected the resulting six-file squash patch before attempting a cherry-pick.This PR replays those six remaining files exactly. The overlapping documentation change is handled separately by #7508.
Failed automation: https://github.com/isaac-sim/IsaacLab/actions/runs/33710984910/job/100510198896
No runtime dependencies are added.
Type of change
Release backport
Validation
uv run --no-project python -m compileall -qon all three modified test modulesuv run --no-project python tools/changelog/cli.py check codex-backport-pr-7504-baseuvx --from pre-commit==4.6.2 pre-commit run --all-fileswithcheck-changelog-fragmentsskipped because that hook assumesorigin/develop; the release-base check above passed.github/scripts/backport.py validate-candidate ... --exact_patchgit diff --check upstream/release/3.0.0..HEADChecklist
.skipchangelog fragmentCONTRIBUTORS.md