Skip to main content
Camera parts capture images from various camera hardware. All cameras inherit from BaseCamera and provide a consistent interface for the vehicle.

Available Cameras

PiCamera (Raspberry Pi Camera Module)

The standard camera for Raspberry Pi using the Picamera2 library (Bullseye/Bookworm). Location: donkeycar/parts/camera.py:23
Parameters:
  • image_w: Image width in pixels (default: 160)
  • image_h: Image height in pixels (default: 120)
  • image_d: Color depth - 3 for RGB, 1 for grayscale (default: 3)
  • vflip: Vertical flip boolean (default: False)
  • hflip: Horizontal flip boolean (default: False)
Hardware Setup:
  • Connect camera ribbon cable to CSI port on Raspberry Pi
  • Enable camera interface: sudo raspi-config → Interface Options → Camera
  • Requires: picamera2 library (pre-installed on recent Raspberry Pi OS)

Webcam

USB webcam support using pygame. Location: donkeycar/parts/camera.py:85
Parameters:
  • image_w, image_h, image_d: Image dimensions
  • framerate: Target frames per second (default: 20)
  • camera_index: Camera index when multiple USB cameras (default: 0)
Installation:

CSI Camera (NVIDIA Jetson)

For Jetson Nano IMX219 camera modules using GStreamer. Location: donkeycar/parts/camera.py:194
Parameters:
  • capture_width, capture_height: Native camera resolution
  • image_w, image_h: Output resolution (will be scaled)
  • framerate: Target FPS (default: 60)
  • gstreamer_flip: Image rotation/flip method

V4L Camera (Video4Linux)

Direct V4L2 access for low-level camera control. Location: donkeycar/parts/camera.py:273
Installation:

Advanced Cameras

OAK-D (Luxonis)

Intel Movidius-based depth camera with onboard AI processing. Location: donkeycar/parts/oak_d.py:34
Features:
  • RGB color camera
  • Stereo depth sensing
  • Onboard neural network inference
  • 4K video capability
Installation:
Usage:

RealSense T265 (Intel)

Tracking camera with visual-inertial odometry. Location: donkeycar/parts/realsense2.py:13
Outputs:
  • Position (x, y, z) in meters
  • Velocity (vx, vy, vz) in m/s
  • Acceleration (ax, ay, az) in m/s²
  • Optional fisheye camera images
Installation:
Usage:

Leopard Imaging Camera

High-performance camera for NVIDIA Jetson with built-in fast stretch. Location: donkeycar/parts/leopard_imaging.py:7
Features:
  • Hardware-accelerated image processing
  • High frame rates (up to 60 FPS)
  • Optimized for Jetson platform

Testing Cameras

Use the camera test script:
Or test in Python:

Mock Cameras for Testing

MockCamera

Returns a static image for testing without hardware. Location: donkeycar/parts/camera.py:333

ImageListCamera

Replays images from a tub for testing. Location: donkeycar/parts/camera.py:350

Camera Configuration

In myconfig.py:

Common Issues

Camera Not Detected

Raspberry Pi:
Jetson:

Low Frame Rate

  • Reduce image resolution
  • Disable unnecessary image processing
  • Use hardware acceleration when available
  • Check USB bandwidth (for USB cameras)

Image Quality Issues

  • Adjust lighting conditions
  • Clean camera lens
  • Check focus (if adjustable)
  • Verify correct image orientation (use flip settings)

Next Steps