isaaclab_ov.sensors#

Sub-package for ovphysx-backed sensors.

Classes#

The following classes are part of the public isaaclab_ov.sensors API.

ContactSensor

An ovphysx contact reporting sensor.

ContactSensorCfg

OVPhysX contact sensor configuration.

ContactSensorData

Data container for the ovphysx contact reporting sensor.

FrameTransformer

An OVPhysX sensor for reporting frame transforms.

FrameTransformerData

Data container for the OVPhysX frame transformer sensor.

Imu

The OVPhysX Inertial Measurement Unit (IMU) sensor.

ImuData

Data container for the OVPhysX IMU sensor.

JointWrenchSensor

OVPhysX joint reaction wrench sensor.

JointWrenchSensorData

Data container for the OVPhysX joint-wrench sensor.

Pva

The OVPhysX Pose Velocity Acceleration (PVA) sensor.

PvaData

Data container for the OVPhysX PVA sensor.

class isaaclab_ov.sensors.ContactSensor[source]#

Bases: BaseContactSensor

An ovphysx contact reporting sensor.

Reports normal contact forces in world frame using the ovphysx ContactBinding API. The PhysxContactReportAPI USD schema must be applied to each sensor body (set isaaclab.sim.spawner.RigidObjectSpawnerCfg.activate_contact_sensors on the asset spawner).

Optional features tracked by ContactSensorCfg:

  • track_pose — sensor body pose via a RIGID_BODY_POSE tensor binding.

  • filter_prim_paths_expr — per-partner filtered forces via ContactBinding.read_force_matrix().

  • track_air_time — air/contact time tracking and compute_first_contact() / compute_first_air().

The following config flags are not supported on the ovphysx backend yet (the underlying ovphysx APIs do not expose tensor-friendly per-sensor reads — see docs/superpowers/specs/2026-04-27-ovphysx-contact-api-gaps.md):

  • track_contact_points

  • track_friction_forces

Setting either flag raises NotImplementedError at initialization.

Methods:

__init__(cfg)

Initializes the contact sensor object.

__new__(*args, **kwargs)

__init__(cfg: ContactSensorCfg)[source]#

Initializes the contact sensor object.

Parameters:

cfg – The configuration parameters.

classmethod __new__(*args, **kwargs)#
class isaaclab_ov.sensors.ContactSensorCfg[source]#

Bases: ContactSensorCfg

OVPhysX contact sensor configuration.

Methods:

__new__(*args, **kwargs)

__init__([class_type, cloning_contexts, ...])

classmethod __new__(*args, **kwargs)#
__init__(class_type: type[ContactSensor] | str = <factory>, cloning_contexts: tuple[str | type, ...] | None = <factory>, prim_path: str = <factory>, update_period: float = <factory>, debug_vis: bool = <factory>, track_pose: bool = <factory>, track_contact_points: bool = <factory>, track_friction_forces: bool = <factory>, max_contact_data_count_per_prim: int | None = <factory>, track_air_time: bool = <factory>, force_threshold: float | None = <factory>, history_length: int = <factory>, filter_prim_paths_expr: list[str] = <factory>, sensor_shape_prim_expr: list[str] = <factory>, filter_shape_prim_expr: list[str] = <factory>, visualizer_cfg: ~isaaclab.markers.visualization_markers_cfg.VisualizationMarkersCfg = <factory>) None#
class isaaclab_ov.sensors.ContactSensorData[source]#

Bases: BaseContactSensorData

Data container for the ovphysx contact reporting sensor.

Methods:

__new__(*args, **kwargs)

__init__()

classmethod __new__(*args, **kwargs)#
__init__()#
class isaaclab_ov.sensors.FrameTransformer[source]#

Bases: BaseFrameTransformer

An OVPhysX sensor for reporting frame transforms.

Reports the world-frame transform of one or more target frames relative to a source frame. Both the source frame (FrameTransformerCfg.prim_path) and target frames (FrameTransformerCfg.target_frames) must attach to rigid bodies — either articulation links or standalone rigid bodies. The two cases are handled uniformly via TT.RIGID_BODY_POSE tensor bindings.

Per-frame offsets (position + quaternion) are applied to the source and to each target. The relative transforms are computed on GPU by the same warp kernel the PhysX backend uses.

Methods:

__init__(cfg)

Initializes the frame transformer object.

__new__(*args, **kwargs)

__init__(cfg: FrameTransformerCfg)[source]#

Initializes the frame transformer object.

Parameters:

cfg – The configuration parameters.

classmethod __new__(*args, **kwargs)#
class isaaclab_ov.sensors.FrameTransformerData[source]#

Bases: BaseFrameTransformerData

Data container for the OVPhysX frame transformer sensor.

Methods:

__new__(*args, **kwargs)

__init__()

classmethod __new__(*args, **kwargs)#
__init__()#
class isaaclab_ov.sensors.Imu[source]#

Bases: BaseImu

The OVPhysX Inertial Measurement Unit (IMU) sensor.

This sensor models a real IMU that measures angular velocity (gyroscope) and linear acceleration (accelerometer) in the sensor’s body frame. Unlike the PVA sensor, it does not provide pose, linear velocity, angular acceleration, or projected gravity.

Like a real accelerometer, the linear acceleration readings always include the contribution of gravity. The gravity vector is queried from the simulation at initialization.

The sensor can be attached to any prim path with a rigid ancestor in its tree. If the provided path is not a rigid body, the closest rigid-body ancestor is used for simulation queries. The fixed transform from that ancestor to the target prim is computed once during initialization and composed with the configured sensor offset.

Note

Linear acceleration is computed using numerical differentiation from velocities. Consequently, the IMU sensor accuracy depends on the chosen physics timestep. For sufficient accuracy, we recommend keeping the timestep at least 200 Hz.

Methods:

__init__(cfg)

Initializes the IMU sensor.

__new__(*args, **kwargs)

__init__(cfg: ImuCfg)[source]#

Initializes the IMU sensor.

Parameters:

cfg – The configuration parameters.

classmethod __new__(*args, **kwargs)#
class isaaclab_ov.sensors.ImuData[source]#

Bases: BaseImuData

Data container for the OVPhysX IMU sensor.

Methods:

__new__(*args, **kwargs)

__init__()

classmethod __new__(*args, **kwargs)#
__init__()#
class isaaclab_ov.sensors.JointWrenchSensor[source]#

Bases: BaseJointWrenchSensor

OVPhysX joint reaction wrench sensor.

The sensor reads OVPhysX’s incoming joint wrench (a PhysX-backed tensor binding of type LINK_INCOMING_JOINT_FORCE) for every articulation link and exposes the linear force [N] and angular torque [N·m] components in the child-side joint frame, with torque referenced at the child-side joint anchor. The root body’s entry is included.

prim_path must point at either the articulation root prim or a parent prim containing a single articulation root in every environment.

Methods:

__init__(cfg)

Initialize the OVPhysX joint-wrench sensor.

__new__(*args, **kwargs)

__init__(cfg: JointWrenchSensorCfg)[source]#

Initialize the OVPhysX joint-wrench sensor.

Parameters:

cfg – The configuration parameters.

classmethod __new__(*args, **kwargs)#
class isaaclab_ov.sensors.JointWrenchSensorData[source]#

Bases: BaseJointWrenchSensorData

Data container for the OVPhysX joint-wrench sensor.

Methods:

__init__()

__new__(*args, **kwargs)

__init__()[source]#
classmethod __new__(*args, **kwargs)#
class isaaclab_ov.sensors.Pva[source]#

Bases: BasePva

The OVPhysX Pose Velocity Acceleration (PVA) sensor.

The sensor reports world-frame pose, body-frame linear and angular velocities, body-frame linear and angular accelerations, and projected gravity. Unlike the BaseImu sensor, linear acceleration here is the coordinate acceleration of the sensor frame (zero at rest, -g in freefall) and does not include the gravity bias.

The sensor can be attached to any prim path with a rigid ancestor in its tree. If the provided path is not a rigid body, the closest rigid-body ancestor is used for simulation queries. The fixed transform from that ancestor to the target prim is computed once during initialization and composed with the configured sensor offset.

Note

Linear and angular accelerations are computed using numerical differentiation of the corresponding velocities. Consequently, the PVA sensor accuracy depends on the chosen physics timestep. For sufficient accuracy, we recommend keeping the timestep at least 200 Hz.

Methods:

__init__(cfg)

Initializes the PVA sensor.

__new__(*args, **kwargs)

__init__(cfg: PvaCfg)[source]#

Initializes the PVA sensor.

Parameters:

cfg – The configuration parameters.

classmethod __new__(*args, **kwargs)#
class isaaclab_ov.sensors.PvaData[source]#

Bases: BasePvaData

Data container for the OVPhysX PVA sensor.

Methods:

__new__(*args, **kwargs)

__init__()

classmethod __new__(*args, **kwargs)#
__init__()#