RTX Sensors#
The deprecated isaacsim.sensors.rtx extension is replaced by isaacsim.sensors.experimental.rtx. The replacement keeps the same sensor concepts (RTX Lidar, RTX Radar) but reshapes the Python API to mirror isaacsim.sensors.experimental.physics — array-form transforms, no command-based creation, and a split between authoring (Lidar/Radar/Acoustic) and runtime (LidarSensor/RadarSensor/AcousticSensor) classes. The previously-named “Ultrasonic” plugin is now exposed as Acoustic/AcousticSensor.
Concept mapping#
|
|
|---|---|
|
|
|
|
|
|
|
No equivalent in ``isaacsim.sensors.experimental.rtx`` today; may be supported in a future release. In the meantime, continue to use the deprecated command or author the IDS occupancy prim directly in USD. |
|
|
Singular |
Plural |
|
Removed (was unused). |
|
|
|
|
|
Driven by |
|
|
|
|
|
|
|
USD attributes ( |
Code examples#
RTX Lidar — create and read
Old (isaacsim.sensors.rtx):
import numpy as np
from isaacsim.sensors.rtx import LidarRtx
sensor = LidarRtx(
prim_path="/World/Lidar",
config_file_name="Example_Rotary",
orientation=np.array([1.0, 0.0, 0.0, 0.0]),
)
frame = sensor.get_current_frame()
New (isaacsim.sensors.experimental.rtx):
import numpy as np
from isaacsim.sensors.experimental.rtx import Lidar, LidarSensor
sensor = LidarSensor(
Lidar.create(
"/World/Lidar",
config="Example_Rotary",
orientations=np.array([[1.0, 0.0, 0.0, 0.0]]),
),
annotators=["generic-model-output"],
)
data, info = sensor.get_data("generic-model-output")
RTX Radar — replace the create command
Old:
import omni.kit.commands
from pxr import Gf
omni.kit.commands.execute(
"IsaacSensorCreateRtxRadar",
path="/Radar",
parent="/World/Robot",
config="Example_Radar",
translation=Gf.Vec3d(0.0, 0.0, 0.0),
)
New:
import carb
from isaacsim.sensors.experimental.rtx import Radar, RadarSensor
# RTX Radar requires Motion BVH to be enabled.
settings = carb.settings.get_settings()
settings.set("/renderer/raytracingMotion/enabled", True)
settings.set("/renderer/raytracingMotion/enableHydraEngineMasking", True)
settings.set("/renderer/raytracingMotion/enabledForHydraEngines", "0,1,2,3,4")
sensor = RadarSensor(
Radar.create(
"/World/Radar",
translations=[[0.0, 0.0, 0.0]],
),
annotators=["generic-model-output"],
)
data, info = sensor.get_data("generic-model-output")
Ultrasonic → Acoustic
Old (Ultrasonic plugin):
import omni.kit.commands
from pxr import Gf
omni.kit.commands.execute(
"IsaacSensorCreateRtxUltrasonic",
path="/Ultrasonic",
parent="/World/Robot",
translation=Gf.Vec3d(0.0, 0.0, 0.0),
)
New (Acoustic class authors an OmniAcoustic prim with the WPM schema):
from isaacsim.sensors.experimental.rtx import Acoustic, AcousticSensor
sensor = AcousticSensor(
Acoustic.create(
"/World/Acoustic",
translations=[[0.0, 0.0, 0.0]],
),
annotators=["generic-model-output"],
)
data, info = sensor.get_data("generic-model-output")
Reading raw GMO data
Old (helper that took a raw GMO pointer):
from isaacsim.sensors.rtx import get_gmo_data
# rawPtr is a raw GMO buffer pointer obtained from a deprecated
# OgnIsaacReadRTXLidarData OmniGraph node (removed in Isaac Sim 5.0).
gmo = get_gmo_data(rawPtr) # noqa: F821
New (runtime sensor owns the buffer; parse_* helpers are module-level):
from isaacsim.sensors.experimental.rtx import Lidar, LidarSensor, parse_generic_model_output_data
sensor = LidarSensor(
Lidar.create("/World/Lidar", config="Example_Rotary"),
annotators=["generic-model-output"],
)
data, info = sensor.get_data("generic-model-output")
gmo = parse_generic_model_output_data(data)
For the per-sensor APIs, see RTX Lidar Sensor, RTX Radar Sensor, and RTX Acoustic Sensor. For the non-visual materials migration (CSV → USD attributes), see RTX Sensor Non-Visual Materials. For the camera migration (deprecated isaacsim.sensors.camera → RtxCamera/CameraSensor), see Camera Sensors.