# Cameras

Cameras supply the image observations a policy sees. Every backend — OpenCV, Intel RealSense, Reachy 2 —
implements the [`Camera`] interface, so swapping hardware does not change the code that reads frames.

See the [Cameras guide](../cameras) for choosing and configuring a camera, and
[Third-Party Cameras & Sensors](../third_party_sensors) for devices outside the core set.

## Camera

[[autodoc]] lerobot.cameras.Camera
    - connect
    - disconnect
    - read
    - async_read
    - find_cameras

## CameraConfig

[[autodoc]] lerobot.cameras.CameraConfig

## make_cameras_from_configs

[[autodoc]] lerobot.cameras.make_cameras_from_configs

## ColorMode

[[autodoc]] lerobot.cameras.ColorMode

## Cv2Rotation

[[autodoc]] lerobot.cameras.Cv2Rotation

## Cv2Backends

[[autodoc]] lerobot.cameras.Cv2Backends

## OpenCVCamera

The default backend for USB webcams and video files, built on OpenCV.

[[autodoc]] lerobot.cameras.opencv.OpenCVCamera
    - all

[[autodoc]] lerobot.cameras.opencv.OpenCVCameraConfig

## RealSenseCamera

Intel RealSense cameras, with optional depth sensing.

[[autodoc]] lerobot.cameras.realsense.RealSenseCamera
    - all

[[autodoc]] lerobot.cameras.realsense.RealSenseCameraConfig

## Reachy2Camera

Cameras exposed by a Reachy 2 robot's own camera manager.

[[autodoc]] lerobot.cameras.reachy2_camera.Reachy2Camera
    - all

[[autodoc]] lerobot.cameras.reachy2_camera.Reachy2CameraConfig

## ZMQCamera

Reads frames published over a ZeroMQ socket by `ImageServer`, for cameras attached to a different machine
than the one running the policy.

[[autodoc]] lerobot.cameras.zmq.ZMQCamera
    - all

[[autodoc]] lerobot.cameras.zmq.ZMQCameraConfig
