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
# Description
Adds the PhysX backend for `JointWrenchSensor`.
This PR is built on top of #5412. Until that PR lands,
this comparison also includes the Newton joint-wrench sensor commits
from #5412.
The PhysX sensor creates a PhysX articulation view and reads incoming
joint wrenches from `ArticulationView.get_link_incoming_joint_force()`.
It then converts the raw PhysX body1-frame, body-origin wrench into the
shared `incoming_joint_frame` convention: child-side joint frame with
torque referenced at the child-side joint anchor. PhysX and Newton
joint-wrench sensors also resolve nested USD articulation roots before
creating their articulation views so asset-level paths such as
`{ENV_REGEX_NS}/Robot` work for classic Ant/Humanoid assets.
This also removes `ArticulationData.body_incoming_joint_wrench_b` from
the articulation data APIs, migrates manager/direct environments that
used it to `JointWrenchSensor`, and documents the Isaac Lab 3.0
migration path. Classic Ant/Humanoid Newton presets now use the same
wrench observations as PhysX and pass short RSL-RL training smokes.
@camevor can you review?
Fixes # (issue)
N/A
## Type of change
- New feature (non-breaking change which adds functionality)
- Breaking change (existing functionality will not work without user
modification)
- Documentation update
## Screenshots
N/A
## Tests
- `./isaaclab.sh -f`
- `docker exec isaac-lab-base bash -lc "cd /workspace/isaaclab &&
./isaaclab.sh -p -m pytest
source/isaaclab_physx/test/sensors/test_joint_wrench_sensor.py"` - 11
passed
- `docker exec isaac-lab-base bash -lc "cd /workspace/isaaclab &&
./isaaclab.sh -p -m pytest
source/isaaclab_newton/test/sensors/test_joint_wrench_sensor.py"` - 10
passed
- `docker exec isaac-lab-base bash -lc "cd /workspace/isaaclab &&
./isaaclab.sh -p -m pytest
source/isaaclab_tasks/test/test_environments.py -k 'Isaac-Ant-v0 or
Isaac-Humanoid-v0'"` - 4 passed
- `docker exec isaac-lab-base bash -lc "cd /workspace/isaaclab &&
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task
Isaac-Ant-v0 --num_envs 16 --max_iterations 1 --headless --device cuda
presets=newton agent.num_steps_per_env=8"` - passed
- `docker exec isaac-lab-base bash -lc "cd /workspace/isaaclab &&
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task
Isaac-Humanoid-v0 --num_envs 16 --max_iterations 1 --headless --device
cuda presets=newton agent.num_steps_per_env=8"` - passed
- `docker exec isaac-lab-base bash -lc "cd /workspace/isaaclab &&
./isaaclab.sh -p -m pytest
source/isaaclab/test/test_mock_interfaces/test_mock_data_properties.py"`
- 253 passed
## 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
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] I have updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there
---------
Signed-off-by: camevor <camevor@nvidia.com>
Co-authored-by: camevor <camevor@nvidia.com>
0 commit comments