Skip to content

Commit 51de36d

Browse files
Add isaaclab_ovphysx.sensors.ray_caster package
Mirror the per-backend RayCaster structure introduced by PR isaac-sim#5510 for the OVPhysX backend: a single ``_OvPhysxRayCasterMixin`` (~200 lines) in ``ray_caster.py`` carries the backend-specific pose-tracking surface, reading live body poses through the ovphysx wheel's ``create_tensor_binding(pattern=..., tensor_type=RIGID_BODY_POSE)`` API. Three 14-line sibling modules compose the mixin with the matching ``Base*`` class (RayCasterCamera, MultiMeshRayCaster, MultiMeshRayCasterCamera). Static (non-physics) sensor frames fall back to a one-time USD pose snapshot, matching PhysX's ``_initialize_static_pose_tracking``. Under OVPhysX ``clone_usd=True`` scenes where only env_0 carries USD prims, the env_0 offset is broadcast across the binding's row count (same broadcast PhysX applies). Multi-mesh dynamic targets create a second binding via the same ``create_tensor_binding`` call. v1 limitation: target paths must dedup to a single env-wildcard pattern; multi-pattern targets raise ``NotImplementedError`` (mirrors the OVPhysX ContactSensor ``track_pose`` single-body constraint). Unblocks ``Isaac-Velocity-Rough-Anymal-D-v0 presets=ovphysx`` (the height_scanner is a RayCaster).
1 parent 51a704e commit 51de36d

7 files changed

Lines changed: 411 additions & 0 deletions

File tree

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Added
2+
^^^^^
3+
4+
* Added :mod:`isaaclab_ovphysx.sensors.ray_caster` with
5+
:class:`~isaaclab_ovphysx.sensors.ray_caster.RayCaster`,
6+
:class:`~isaaclab_ovphysx.sensors.ray_caster.RayCasterCamera`,
7+
:class:`~isaaclab_ovphysx.sensors.ray_caster.MultiMeshRayCaster`, and
8+
:class:`~isaaclab_ovphysx.sensors.ray_caster.MultiMeshRayCasterCamera`.
9+
Mirrors :mod:`isaaclab_physx.sensors.ray_caster` structure: a single
10+
``_OvPhysxRayCasterMixin`` carries the backend-specific pose-tracking
11+
surface, reading body poses via the ovphysx
12+
``create_tensor_binding(pattern=..., tensor_type=RIGID_BODY_POSE)``
13+
API. Static (non-physics) sensor frames fall back to a one-time USD
14+
pose snapshot. Unblocks ``Isaac-Velocity-Rough-Anymal-D-v0`` (the
15+
height_scanner now dispatches under OVPhysX).
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Copyright (c) 2022-2026, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
2+
# All rights reserved.
3+
#
4+
# SPDX-License-Identifier: BSD-3-Clause
5+
6+
"""Sub-module for OVPhysX ray-caster sensors."""
7+
8+
from isaaclab.utils.module import lazy_export
9+
10+
lazy_export()
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Copyright (c) 2022-2026, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
2+
# All rights reserved.
3+
#
4+
# SPDX-License-Identifier: BSD-3-Clause
5+
6+
__all__ = [
7+
"MultiMeshRayCaster",
8+
"MultiMeshRayCasterCamera",
9+
"RayCaster",
10+
"RayCasterCamera",
11+
]
12+
13+
from .multi_mesh_ray_caster import MultiMeshRayCaster
14+
from .multi_mesh_ray_caster_camera import MultiMeshRayCasterCamera
15+
from .ray_caster import RayCaster
16+
from .ray_caster_camera import RayCasterCamera
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Copyright (c) 2022-2026, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
2+
# All rights reserved.
3+
#
4+
# SPDX-License-Identifier: BSD-3-Clause
5+
6+
from __future__ import annotations
7+
8+
from isaaclab.sensors.ray_caster.base_multi_mesh_ray_caster import BaseMultiMeshRayCaster
9+
10+
from .ray_caster import _OvPhysxRayCasterMixin
11+
12+
13+
class MultiMeshRayCaster(_OvPhysxRayCasterMixin, BaseMultiMeshRayCaster):
14+
"""OVPhysX MultiMeshRayCaster implementation."""
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Copyright (c) 2022-2026, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
2+
# All rights reserved.
3+
#
4+
# SPDX-License-Identifier: BSD-3-Clause
5+
6+
from __future__ import annotations
7+
8+
from isaaclab.sensors.ray_caster.base_multi_mesh_ray_caster_camera import BaseMultiMeshRayCasterCamera
9+
10+
from .ray_caster import _OvPhysxRayCasterMixin
11+
12+
13+
class MultiMeshRayCasterCamera(_OvPhysxRayCasterMixin, BaseMultiMeshRayCasterCamera):
14+
"""OVPhysX MultiMeshRayCasterCamera implementation."""

0 commit comments

Comments
 (0)