Skip to main content

Cameras

Module: se3labs.interface.eval.camera

Camera_DeviceType​

class Camera_DeviceType(Enum)

Camera_DeviceType.Realsense_D405​

Realsense_D405 = 'realsense_d405'

Realsense D405 Stereo Camera. Both imagers are RGB, so one observation carries 2 views (left, right).

Camera_DeviceType.n_views​

n_views: int

Read-only property.

Number of frames delivered per observation (1 for mono, 2 for a stereo pair).

Camera_DeviceSpec​

Camera_DeviceSpec(
device_type: Camera_DeviceType,
resolution: tuple[int, int],
refresh_rate: int,
jpeg_compression: int | None,
)

Camera_DeviceSpec.device_type​

device_type: Camera_DeviceType

Device type of the camera

Camera_DeviceSpec.resolution​

resolution: tuple[int, int]

Resolution of each view of the camera stream, in tuple of (height, width), unit: [px]

Camera_DeviceSpec.refresh_rate​

refresh_rate: int

Refresh rate of the camera, unit: [fps]

Camera_DeviceSpec.jpeg_compression​

jpeg_compression: int | None

jpeg compression quality value if specified, if None then no compression will be made.

Camera_DeviceSpec.n_views​

n_views: int

Read-only property.

Camera_Observation​

Camera_Observation(timestamp: float, rgb: jt.UInt8[np.ndarray, 'b h w 3'])

One decoded observation of a camera: b RGB views captured together (b = 2 for a stereo pair).

Frames are delivered already decoded regardless of jpeg_compression. Construction enforces uint8 BHWC with 3 channels; validate binds (b, h, w) to the camera spec.

Camera_Observation.timestamp​

timestamp: float

Monotonic capture time on the station clock, unit: [s]. Shared by all views.

Camera_Observation.rgb​

rgb: jt.UInt8[np.ndarray, 'b h w 3']

Views in device order (stereo: index 0 = left, 1 = right).

Camera_Observation.n_views​

n_views: int

Read-only property.

Camera_Observation.validate​

validate(spec: Camera_DeviceSpec) -> None