Camera Sensors#
The deprecated isaacsim.sensors.camera extension is replaced by isaacsim.sensors.experimental.rtx. The replacement keeps the same camera concepts (single camera, batched camera views, single-view depth sensor) but reshapes the Python API to mirror isaacsim.sensors.experimental.physics — array-form transforms, no command-based creation, and a split between authoring (RtxCamera) and runtime (CameraSensor, TiledCameraSensor, SingleViewDepthCameraSensor) classes.
Concept mapping#
|
|
|---|---|
|
|
Singular |
Plural |
|
Removed (was unused). |
|
|
|
|
|
|
|
|
Code examples#
Camera — create and read RGB
Old (isaacsim.sensors.camera):
from isaacsim.sensors.camera import Camera
camera = Camera(
prim_path="/World/Camera",
resolution=(640, 480),
frequency=30,
position=[0.0, 0.0, 1.0],
)
camera.initialize()
camera.add_rgb_to_frame()
frame = camera.get_current_frame()
New (isaacsim.sensors.experimental.rtx):
from isaacsim.sensors.experimental.rtx import CameraSensor, RtxCamera
sensor = CameraSensor(
RtxCamera(
"/World/Camera",
tick_rate=30.0,
translations=[[0.0, 0.0, 1.0]],
),
resolution=(640, 480),
annotators=["rgb"],
)
data, info = sensor.get_data("rgb")
CameraView → TiledCameraSensor — batched read
Old (isaacsim.sensors.camera):
from isaacsim.sensors.camera import Camera, CameraView
# CameraView wraps existing camera prims, so author them first.
Camera(prim_path="/World/env_0/Camera", position=[0.0, 0.0, 5.0])
Camera(prim_path="/World/env_1/Camera", position=[2.0, 0.0, 5.0])
view = CameraView(
prim_paths_expr="/World/env_*/Camera",
camera_resolution=(256, 256),
output_annotators=["rgb"],
)
New (isaacsim.sensors.experimental.rtx — explicit path list, or pass a Camera object):
import numpy as np
from isaacsim.core.experimental.objects import Cube
from isaacsim.sensors.experimental.rtx import RtxCamera, TiledCameraSensor
# Author two camera prims (the explicit-list replacement for `prim_paths_expr="..."`).
RtxCamera("/World/env_0/Camera", positions=np.array([[0.0, 0.0, 5.0]]))
RtxCamera("/World/env_1/Camera", positions=np.array([[2.0, 0.0, 5.0]]))
# Optional reference geometry so the cameras have something to render.
Cube("/World/env_0/cube", positions=np.array([[0.0, 0.0, 0.0]]))
Cube("/World/env_1/cube", positions=np.array([[2.0, 0.0, 0.0]]))
tiled = TiledCameraSensor(
paths=["/World/env_0/Camera", "/World/env_1/Camera"],
resolution=(256, 256),
annotators=["rgb"],
)
data, info = tiled.get_data("rgb", tiled=True)
For the per-class API surface, see the Overview and How to Collect Data from a Camera sections in Camera Sensors. For the broader RTX-sensor migration (isaacsim.sensors.rtx → isaacsim.sensors.experimental.rtx for Lidar / Radar / Acoustic), see RTX Sensors.