Commit 4384bfb
committed
Refactor OVPhysX SDP to mirror PhysX single-binding shape
Drop per-articulation TT.LINK_POSE bindings now that the wheel's
RIGID_BODY_POSE matcher is confirmed (probe + wheel docs) to accept
patterns matching any UsdPhysics.RigidBodyAPI prim, including
articulation links. The provider now bucket-by-relative-path: one
RIGID_BODY_POSE + RIGID_BODY_VELOCITY binding per distinct env-wildcard
form (cartpole -> 2 bindings, Allegro hand -> ~17), each covering all
envs. Mirrors PhysX's single-RigidBodyView intent while respecting the
wheel's one-pattern-per-binding API.
Other changes pulled in by the same refactor:
* Add UsdPhysics.RigidBodyAPI filter on Newton body paths so joints and
articulation-root xforms are excluded from binding patterns (mirrors
PhysxSceneDataProvider._setup_rigid_body_view at physx_scene_data_provider.py:281).
* Migrate to the wheel-0.4 binding.read(dst) API with pre-allocated warp
destination buffers so per-step reads are allocation-free.
* Drop _classify_paths_by_articulation_root, _apply_articulation_bindings,
_articulation_link_bindings, _bindings dict, _get_binding, and the
velocity-aggregation loop in get_velocities.
* Update tests: replace partition test with one-per-distinct-rigid-path
test, retarget merge test to rigid+xform, fix get_velocities test to
exercise the new read(dst) API.1 parent 6acf21e commit 4384bfb
3 files changed
Lines changed: 174 additions & 230 deletions
File tree
- source/isaaclab_ovphysx
- changelog.d
- isaaclab_ovphysx/scene_data_providers
- test/scene_data_providers
Lines changed: 12 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
0 commit comments