-
Notifications
You must be signed in to change notification settings - Fork 3.5k
[OVPHYSX] RigidObject + RigidObjectData asset #5426
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
AntoineRichard
wants to merge
57
commits into
isaac-sim:develop
Choose a base branch
from
AntoineRichard:antoiner/feat/ovphysx_rigidobject
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
57 commits
Select commit
Hold shift + click to select a range
9afd8fc
Add RIGID_BODY_* TensorType aliases
AntoineRichard 4b3503b
Relocate shared Warp kernels to isaaclab_ovphysx.assets.kernels
AntoineRichard 5f8c4c6
Add asset_kind='rigid_object' mode to MockOvPhysxBindingSet
AntoineRichard 65084f7
Scaffold OVPhysX RigidObjectData skeleton
AntoineRichard 0a79c66
Fix RigidObjectData defaults and is_primed gating
AntoineRichard 3cb5de1
Implement RigidObjectData root-state properties
AntoineRichard b2afe59
Reset buffer timestamps in _invalidate_caches
AntoineRichard 95dc4fa
Implement body-state and body-frame derived properties
AntoineRichard 1e9e9aa
Fix projected_gravity_b test to use unit-vector gravity
AntoineRichard 5963cfe
Implement RigidObjectData body mass/inertia/COM properties
AntoineRichard 9a69088
Scaffold OVPhysX RigidObject skeleton
AntoineRichard af2e8a9
Apply Marco's RIGID_BODY_* contract corrections
AntoineRichard 0ec4611
Add RigidObject _create_buffers and _process_cfg
AntoineRichard af529eb
Implement RigidObject root pose and velocity writers
AntoineRichard fed5d23
Implement RigidObject mass/COM/inertia setters
AntoineRichard 6cb0c36
Implement RigidObject.write_data_to_sim wrench application
AntoineRichard f10f59c
Implement RigidObject lifecycle methods
AntoineRichard bbad12b
Export RigidObject and RigidObjectData publicly
AntoineRichard 5c07601
Add OVPhysX backend to test_rigid_object_iface
AntoineRichard 0a950bd
Add OVPhysX preset to Allegro hand env
AntoineRichard 6b16fe9
Bump isaaclab_ovphysx to 0.2.0 for RigidObject
AntoineRichard db27e50
Drop RIGID_BODY_ACCELERATION dependency, FD acc from velocity
AntoineRichard a07c425
Fix stale-buffer bug in body_com_pose_b lazy read
AntoineRichard 6e81211
Add kitless guard to test_rigid_object_iface
AntoineRichard cd38c46
Fix shape mismatch in 1-D body-property setter writes
AntoineRichard b3b93b3
Replace mock test_rigid_object with PhysX-copy kitless adapter
AntoineRichard b9eb426
Add kitless real-OvPhysxManager warmup + load tests
AntoineRichard e320fe1
Rewrite test_rigid_object to use real SimulationContext + Nucleus assets
AntoineRichard 45557cd
Fix RigidObject._initialize_impl swallows on body_names and device
AntoineRichard aa0ee90
Match Newton's pattern in external_force_on_single_body
AntoineRichard 7153229
Address W1 audit fixes: is_primed, naming, body_names, set_coms reshape
AntoineRichard e762ab5
Revert RigidObject.reset auto-write to match PhysX/Newton
AntoineRichard 1e3dcf8
Port test_external_force_at_position to PhysX/Newton pattern
AntoineRichard b1a841e
Derive root_link_vel_w from root_com_vel_w via lever-arm kernel
AntoineRichard 231e9be
Implement deprecated state-concat properties on RigidObjectData
AntoineRichard 482e7af
Address remaining audit investigates: docstring, demotions, removal
AntoineRichard 5e09119
Reorganize RigidObjectData to match PhysX/Newton structure
AntoineRichard b0532f2
Polish RigidObject docstrings + rename _write_root_state
AntoineRichard ed30c2c
Add docstrings to every kernel in isaaclab_ovphysx.assets.kernels
AntoineRichard 7adf3b6
Polish test_rigid_object.py: drop gates, GPU coverage, docstring cleanup
AntoineRichard 66df142
Unify _configure_physx_scene_prim across CPU and GPU
AntoineRichard 2bd2752
Align test_rigid_object.py 1-to-1 with isaaclab_physx
AntoineRichard f06e64b
Use session-scoped sim fixture for rigid-object tests
AntoineRichard 0887d2d
Mirror PhysX/Newton patterns in OVPhysX RigidObject
AntoineRichard 8b180fb
Update RigidObject tests for new contract; document two-pass CI
AntoineRichard e2b2f55
Compact 0.2.15 changelog entry
AntoineRichard 588c1c8
Squash 0.2.x changelog entries into a single 0.2.15 release
AntoineRichard d74e904
Drop full_data and dead helpers from OVPhysX RigidObject
AntoineRichard 5cdc178
Cache flat wrench-buffer view in _create_buffers
AntoineRichard abbeda4
Trim kitless module stubs in iface test guards
AntoineRichard b340a55
Fix OVPhysX iface fixture to mirror PhysX/Newton setup
AntoineRichard 08180d3
Move ovphysx lifecycle workaround into OvPhysxManager
AntoineRichard 8bc3a4a
Address PR #5426 review feedback
AntoineRichard 26a442b
Merge branch 'develop' into antoiner/feat/ovphysx_rigidobject
AntoineRichard c453822
Switch isaaclab_ovphysx PR changelog to fragments
AntoineRichard 658e73c
Make OVPhysX RigidObject._get_binding strict
AntoineRichard cf1adf0
Address PR review on RigidObjectData
AntoineRichard File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
50 changes: 50 additions & 0 deletions
50
source/isaaclab_ovphysx/changelog.d/antoiner-feat-ovphysx_rigidobject.minor.rst
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| Added | ||
| ^^^^^ | ||
|
|
||
| * Added :class:`~isaaclab_ovphysx.assets.RigidObject` and | ||
| :class:`~isaaclab_ovphysx.assets.RigidObjectData` for single-actor rigid-body | ||
| simulation against the OVPhysX backend, satisfying the | ||
| :class:`~isaaclab.assets.BaseRigidObject` and | ||
| :class:`~isaaclab.assets.BaseRigidObjectData` contracts. Public surface | ||
| matches the PhysX/Newton conventions: ``write_root_*_to_sim_index`` / | ||
| ``write_root_*_to_sim_mask`` writers (link- and com-frame variants), | ||
| ``set_masses_*``, ``set_coms_*``, ``set_inertias_*`` setters, and the | ||
| external-wrench composers exposed via | ||
| :meth:`~isaaclab_ovphysx.assets.RigidObject.set_external_force_and_torque`. | ||
| * Added the ``RIGID_BODY_*`` :class:`TensorType` aliases in | ||
| :mod:`isaaclab_ovphysx.tensor_types` (``POSE``, ``VELOCITY``, ``WRENCH``, | ||
| ``MASS``, ``COM_POSE``, ``INERTIA``; plus ``ACCELERATION``, ``INV_MASS``, | ||
| ``INV_INERTIA`` declared for forward compatibility once the wheel ships | ||
| them). | ||
| * Added :class:`~isaaclab_ovphysx.assets.kernels` as a shared Warp-kernel | ||
| module (frame conversions, state concatenation, finite-difference | ||
| acceleration, index- and mask-style scatter writers) consumed by both the | ||
| rigid-object and articulation assets. | ||
| * Added USD prim-scan validation in | ||
| :meth:`~isaaclab_ovphysx.assets.RigidObject._initialize_impl`: a clear | ||
| ``RuntimeError`` is raised when ``cfg.prim_path`` resolves to no | ||
| ``UsdPhysics.RigidBodyAPI`` prim, multiple rigid-body prims, or a prim with | ||
| an enabled ``UsdPhysics.ArticulationRootAPI``. | ||
|
|
||
| Changed | ||
| ^^^^^^^ | ||
|
|
||
| * Changed :meth:`~isaaclab_ovphysx.physics.OvPhysxManager._release_physx` to | ||
| perform a soft reset (``physx.reset()``) and keep the cached | ||
| :class:`ovphysx.PhysX` reference alive across | ||
| :class:`~isaaclab.sim.SimulationContext` lifetimes, instead of dropping the | ||
| reference and triggering the wheel's dual-Carbonite static-destructor race. | ||
| :meth:`~isaaclab_ovphysx.physics.OvPhysxManager._warmup_and_load` now reuses | ||
| the cached instance on subsequent calls. | ||
| * Changed :meth:`~isaaclab_ovphysx.physics.OvPhysxManager._warmup_and_load` to | ||
| raise a clear ``RuntimeError`` when a later | ||
| :class:`~isaaclab.sim.SimulationContext` requests a different device than | ||
| the one the process is locked to, surfacing the wheel's process-global | ||
| device-mode lock as a Python error before | ||
| :exc:`ovphysx.types.PhysXDeviceError` would fire. | ||
| * Changed :meth:`~isaaclab_ovphysx.physics.OvPhysxManager._configure_physx_scene_prim` | ||
| to apply the ``UsdPhysics.PhysxSceneAPI`` schema and | ||
| ``enableSceneQuerySupport`` on both CPU and GPU; GPU-only attributes | ||
| (``enableGPUDynamics``, ``broadphaseType``, the ``gpu*`` capacity attributes | ||
| from :class:`~isaaclab_ovphysx.physics.OvPhysxCfg`) remain gated on | ||
| ``device == "gpu"``. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AppLauncherin standard Kit CIThe second branch of
_kitless:treats any Python process with no
LD_PRELOADand noEXP_PATHas "kitless" and skipsAppLauncher. An Isaac Sim Kit environment that happens to have clearedLD_PRELOAD(or never setsEXP_PATHin some CI configurations) would also satisfy this condition, silently bypassing the full Kit initialization. The physx/newton backends in the same file still require a live Kit session, so if those backends are exercised in the same test run the session state will be inconsistent.Consider using a dedicated opt-in env var (e.g.
ISAACLAB_KITLESS=1) rather than inferring from LD_PRELOAD/EXP_PATH.