[Backport] Fix ray caster path matching regressions (#7516) - #7577
Conversation
# Description This PR fixes the two remaining ray-caster path-matching failures: 1. The ray-caster camera tutorial counted four sensors for two camera prims because `/World/Origin_.*/CameraSensor` allowed `.*` to cross path separators under whole-path regular-expression matching. 2. Legacy Newton multi-mesh ray casters could fail to associate tracked-target sites when registration used a regular-expression path but initialization resolved it to concrete prim paths. The stale post-reset Newton sensor result reported in isaac-sim#7236 is now fixed at the sensor state boundary by isaac-sim#7523, which this branch inherits from `develop`. The earlier environment-loop synchronization workaround and its tests/changelog fragments have therefore been removed from this PR. ## Changes - Restrict the tutorial environment wildcard to one path segment with `/World/Origin_[^/]+/CameraSensor`. - Associate legacy Newton tracked-target site labels by configuration order instead of path-expression strings. - Remove the obsolete `--enable_cameras` argument from the tutorial smoke case. - Add regression coverage for regular-expression target resolution. Fixes isaac-sim#6572 Related: isaac-sim#7236, resolved by isaac-sim#7523. ## Type of change - Bug fix (non-breaking change which fixes an issue) ## Release backport - [x] Backport this pull request to the active release branch after it merges into `develop` ## Screenshots Not applicable. ## Validation - `uv run python -m pytest source/isaaclab_newton/test/sensors/test_newton_raycast_sensor.py -vv` (18 passed, including the isaac-sim#7523 FK regressions in eager and CUDA-graph modes) - `uv run python -m pytest source/isaaclab/test/app/test_standalone_scripts.py::test_commands_respect_script_launcher_capabilities -vv` (1 passed) - Verified the ad-hoc tracked-target regression fails with the old string-key association and passes with this fix in eager and CUDA-graph modes. - Verified the exact clone-plan topology from isaac-sim#6572 passes on the merged branch in eager and CUDA-graph modes. - `ISAACLAB_CHANGELOG_BASE_REF=upstream-develop uv run isaaclab -f` The full standalone Newton multi-object demo smoke could not launch in this checkout because the newly merged installer guard rejects combining the downloaded Isaac Sim package with the active Python virtual environment; it exited before application startup. ## Checklist - [x] I have read and understood the contribution guidelines - [x] I have run the pre-commit checks - [x] I have made corresponding changes to the tutorial and smoke configuration - [x] My changes generate no new warnings - [x] I have added tests that prove the remaining fix is effective - [x] I have added changelog fragments for the touched source packages - [x] My name already exists in `CONTRIBUTORS.md` (cherry picked from commit 167b6b1)
Greptile SummaryThe backport fixes legacy Newton ray-caster target association by preserving registration order instead of looking up sites through potentially different path expressions.
Confidence Score: 5/5The PR appears safe to merge with no concrete regressions identified. The new positional bookkeeping follows the same filtered target order as mesh-view initialization and is reset on every reinitialization, while the tutorial and smoke changes remain consistent with the Warp-only ray-caster path. Important Files Changed
Reviews (1): Last reviewed commit: "[Sensor] Fix ray caster path matching re..." | Re-trigger Greptile |
There was a problem hiding this comment.
Isaac Lab Review Bot
Reviewed the backport’s ray-caster path-matching correction, including the tutorial regex, legacy Newton tracked-target association, smoke-test launcher arguments, regression coverage, and package changelog fragments. No actionable finding is directly supported by the patch.
- Design and architecture: The fix remains scoped to the legacy Newton adapter: tracked site labels are associated by target configuration order, and the cursor is reset before base mesh-view initialization. This avoids changing shared ray-caster architecture while addressing the mismatch between discovered owner paths and registration expressions.
- API: No public API is removed or renamed. The changed tracking state is private,
MultiMeshRayCasterCfgbehavior remains compatible, and the user-visible Newton fix is represented by anisaaclab_newtonchangelog fragment while the ancillaryisaaclabchanges use a.skipfragment. - Implementation: The initialization and consumption paths were traced: labels are collected in tracked-target order, the cursor is reset before mesh views are recreated, and mesh updates retain the same target ordering. The tutorial’s segment-bounded regex matches its generated camera prims, and the smoke override consistently stops passing the unnecessary
--enable_camerasflag. Positional association is more order-dependent than the former dictionary lookup, but the shown creation path preserves that ordering and the regression test exercises the reported expression mismatch.
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.
|
run-ci |
Description
Backports #7516 to
release/3.0.0.The automatic backport workflow completed successfully but skipped the backport because the source PR body did not retain the hidden
<!-- backport-active-release -->selection marker. This branch manually cherry-picks the canonical merged commit167b6b15538bc6ec23554ec1b69f45ac34ae35bdwith-xprovenance.The cherry-pick applied without conflicts or release-specific edits. Its stable patch ID is identical to the source commit, and all seven source paths are preserved exactly.
Type of change
Release backport
Validation
b30f8378be6d764298eb95b92d8f5e03ffb97b51.uv run python -m pytest source/isaaclab_newton/test/sensors/test_newton_raycast_sensor.py -vv— 18 passed.uv run python -m pytest source/isaaclab/test/app/test_standalone_scripts.py::test_commands_respect_script_launcher_capabilities -vv— 1 passed.ISAACLAB_CHANGELOG_BASE_REF=release/3.0.0 uv run isaaclab -f— all hooks passed.git diff --check upstream/release/3.0.0..HEAD— passed.Checklist
CONTRIBUTORS.md