You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix Newton self-collisions being uncontrolled via the deprecated PhysX cfg (#7164)
## Summary
-
`ArticulationRootPropertiesCfg`/`PhysxArticulationRootPropertiesCfg.enabled_self_collisions`
only authored `physxArticulation:enabledSelfCollisions`. Newton's schema
resolver checks `newton:selfCollisionEnabled` first and only falls back
to the PhysX attribute when it's unauthored, so the deprecated cfg's
setting silently never reached Newton simulations.
- `modify_articulation_root_properties` now mirrors
`enabled_self_collisions` onto `newton:selfCollisionEnabled` (applying
`NewtonArticulationRootAPI`) whenever it's set, so the deprecated cfg
controls self-collisions on both backends.
- Migrated `ALLEGRO_HAND_CFG`, `SHADOW_HAND_CFG`,
`SHADOW_HAND_NEWTON_CFG`, and `KUKA_ALLEGRO_CFG` off the deprecated cfg
to explicit `PhysxArticulationCfg` + `NewtonArticulationCfg` fragments.
Several of the reorientation/handover tasks built on these hands
(`Isaac-Reorient-Cube-Allegro*`, `Isaac-Reorient-Cube-Shadow-Direct*`,
`Isaac-Shadow-Handover-Direct`) default to the `newton_mjwarp` preset,
so this was a real training-time gap, not just a hypothetical one.
- Adds `isaaclab_physx`/`isaaclab_newton` as declared dependencies of
`isaaclab_assets` (needed for the fragment imports above).
## Test plan
- [x] `test_physx_articulation_root_writes_self_collisions` extended to
assert `newton:selfCollisionEnabled` / `NewtonArticulationRootAPI` are
authored; confirmed it fails without the fix and passes with it.
- [x] `source/isaaclab/test/sim/test_schemas.py` (43 tests) and
`test_articulation_fragments.py` (26 tests) pass.
- [x] `source/isaaclab_assets` test suite passes (`test_asset_configs`
loads all three migrated robot configs).
- [x] `test_initialization_hand_with_tendons` (Shadow Hand, PhysX
backend) passes with the fragment-based `articulation_props`.
- [x] `uv run isaaclab -f` passes (formatting, changelog fragments).
---------
Co-authored-by: Kelly Guo <kellyg@nvidia.com>
0 commit comments