Skip to content

Fix articulation and schema documentation CI failures - #7504

Merged
kellyguo11 merged 2 commits into
isaac-sim:developfrom
kellyguo11:codex/fix-articulation-wrench-axis
Sep 3, 2026
Merged

Fix articulation and schema documentation CI failures#7504
kellyguo11 merged 2 commits into
isaac-sim:developfrom
kellyguo11:codex/fix-articulation-wrench-axis

Conversation

@kellyguo11

@kellyguo11 kellyguo11 commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

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, where the world-Z angular velocity was 0.004370182752609253.

Related to #7458.

No runtime dependencies are added.

Type of change

  • Bug fix (non-breaking change which fixes an issue)

Release backport

  • 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

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation (not applicable: test-only change)
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works (updated the existing mirrored regression tests)
  • 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)
  • 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.

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.

@kellyguo11

Copy link
Copy Markdown
Contributor Author

run-ci

@github-actions github-actions Bot added bug Something isn't working isaac-lab Related to Isaac Lab team labels Sep 2, 2026
@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 2, 2026

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Isaac Lab Review Bot

The PR consistently updates the mirrored Newton, PhysX, and OVPhysX articulation tests to check total root angular speed rather than only the world-Z component, while preserving the existing threshold and adding appropriate .skip changelog fragments.

  • Design and architecture: The axis-agnostic assertion is applied identically across all three backend test mirrors. No production architecture or shared helper is changed; the main tradeoff is reduced axis specificity, which matches the stated intent because the response axis depends on link-frame transformations.
  • API: No public API or extension-facing behavior changes. The patch only reads the existing root_ang_vel_w test data, and each touched source package includes the required non-user-visible changelog fragment.
  • Implementation: Using torch.linalg.vector_norm on the three-component angular velocity directly tests whether the articulation rotates regardless of response axis. Keeping the 0.1 threshold preserves the prior minimum-response criterion, while broadening the accepted response from Z-axis rotation to rotation on any axis.

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-apps

greptile-apps Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Updates mirrored articulation tests to measure total root angular speed instead of only the world-Z component, preventing valid rotation on another axis from failing the test.

  • Applies the same vector-norm assertion to the Newton, OVPhysX, and PhysX test suites.
  • Adds package-scoped skip changelog fragments for all three touched backends.

Confidence Score: 5/5

The test-only change appears safe to merge.

The updated assertions continue to require substantial articulation rotation while avoiding an invalid dependency on a particular world-space axis, and the mirrored backend tests remain consistent.

Important Files Changed

Filename Overview
source/isaaclab_newton/test/assets/test_articulation.py Replaces the world-Z angular-velocity assertion with total angular-speed magnitude in the Newton wrench-response test.
source/isaaclab_ov/test/assets/test_articulation.py Applies the same axis-independent rotation assertion to the OVPhysX test mirror.
source/isaaclab_physx/test/assets/test_articulation.py Applies the same axis-independent rotation assertion to the PhysX test mirror.

Reviews (1): Last reviewed commit: "Fix articulation wrench response asserti..." | Re-trigger Greptile

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 3, 2026
@kellyguo11 kellyguo11 changed the title Fix articulation wrench response axis assertion Fix articulation and schema documentation CI failures Sep 3, 2026
@kellyguo11

Copy link
Copy Markdown
Contributor Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 3, 2026
@kellyguo11
kellyguo11 merged commit 541de9a into isaac-sim:develop Sep 3, 2026
48 checks passed
kellyguo11 added a commit that referenced this pull request Sep 3, 2026
…7504) (#7512)

# Description

Backports #7504 to `release/3.0.0` by cherry-picking the actual merged
commit, `541de9a7a91f9e7c24b24b923c0620475a00e051`.

The automatic backport stopped during source validation because the
documentation hunk from #7504 had already reached `develop` through
#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

- Bug fix (non-breaking change which fixes an issue)

## Release backport

- [ ] <!-- backport-active-release --> This PR already targets the
active release branch; do not backport it again.

## 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-backport-pr-7504-base`
- `uvx --from pre-commit==4.6.2 pre-commit run --all-files` with
`check-changelog-fragments` skipped because that hook assumes
`origin/develop`; the release-base check above passed
- `.github/scripts/backport.py validate-candidate ... --exact_patch`
- `git diff --check upstream/release/3.0.0..HEAD`
- The simulator-backed CUDA regression remains for Linux GPU CI

## Checklist

- [x] I have read and understood the contribution guidelines
- [x] I have run the available pre-commit checks
- [x] Documentation changes are not needed for this six-file backport
- [x] My changes generate no new warnings
- [x] The existing mirrored regression tests cover the fix
- [x] Each touched package includes its original `.skip` changelog
fragment
- [x] My name already exists in `CONTRIBUTORS.md`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant