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