webcam: make driver camera optional (#35455)

* webcam: driverCamera optional

* webcam: update README
pull/35472/head
Andrei Radulescu 6 days ago committed by GitHub
parent 3ad74b440c
commit ef6719f24e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 20
      tools/webcam/README.md
  2. 9
      tools/webcam/camerad.py

@ -1,22 +1,22 @@
# Run openpilot with webcam on PC # Run openpilot with webcam on PC
What's needed: What's needed:
- Ubuntu 24.04 ([WSL2 is not supported](https://github.com/commaai/openpilot/issues/34216)) - Ubuntu 24.04 ([WSL2 is not supported](https://github.com/commaai/openpilot/issues/34216)) or macOS
- GPU (recommended) - GPU (recommended)
- Two USB webcams, at least 720p and 78 degrees FOV (e.g. Logitech C920/C615) - One USB webcam, at least 720p and 78 degrees FOV (e.g. Logitech C920/C615, NexiGo N60)
- [Car harness](https://comma.ai/shop/products/comma-car-harness) with black panda to connect to your car - [Car harness](https://comma.ai/shop/products/comma-car-harness)
- [Panda paw](https://comma.ai/shop/products/panda-paw) or USB-A to USB-A cable to connect panda to your computer - [panda](https://comma.ai/shop/panda)
That's it! - USB-A to USB-A cable to connect panda to your computer
## Setup openpilot ## Setup openpilot
- Follow [this readme](../README.md) to install and build the requirements - Follow [this readme](../README.md) to install and build the requirements
- Install OpenCL Driver - Install OpenCL Driver (Ubuntu)
``` ```
sudo apt install pocl-opencl-icd sudo apt install pocl-opencl-icd
``` ```
## Connect the hardware ## Connect the hardware
- Connect the road facing camera first, then the driver facing camera - Connect the camera first
- Connect your computer to panda - Connect your computer to panda
## GO ## GO
@ -24,12 +24,12 @@ sudo apt install pocl-opencl-icd
USE_WEBCAM=1 system/manager/manager.py USE_WEBCAM=1 system/manager/manager.py
``` ```
- Start the car, then the UI should show the road webcam's view - Start the car, then the UI should show the road webcam's view
- Adjust and secure the webcams. - Adjust and secure the webcam
- Finish calibration and engage! - Finish calibration and engage!
## Specify Cameras ## Specify Cameras
Use the `ROAD_CAM`, `DRIVER_CAM`, and optional `WIDE_CAM` environment variables to specify which camera is which (ie. `DRIVER_CAM=2` uses `/dev/video2` for the driver-facing camera): Use the `ROAD_CAM` (default 0) and optional `DRIVER_CAM`, `WIDE_CAM` environment variables to specify which camera is which (ie. `ROAD_CAM=1` uses `/dev/video1`, on Ubuntu, for the road camera):
``` ```
USE_WEBCAM=1 ROAD_CAM=4 WIDE_CAM=6 system/manager/manager.py USE_WEBCAM=1 ROAD_CAM=1 system/manager/manager.py
``` ```

@ -9,14 +9,19 @@ from cereal import messaging
from openpilot.tools.webcam.camera import Camera from openpilot.tools.webcam.camera import Camera
from openpilot.common.realtime import Ratekeeper from openpilot.common.realtime import Ratekeeper
ROAD_CAM = os.getenv("ROAD_CAM", "0")
WIDE_CAM = os.getenv("WIDE_CAM") WIDE_CAM = os.getenv("WIDE_CAM")
DRIVER_CAM = os.getenv("DRIVER_CAM")
CameraType = namedtuple("CameraType", ["msg_name", "stream_type", "cam_id"]) CameraType = namedtuple("CameraType", ["msg_name", "stream_type", "cam_id"])
CAMERAS = [ CAMERAS = [
CameraType("roadCameraState", VisionStreamType.VISION_STREAM_ROAD, os.getenv("ROAD_CAM", "0")), CameraType("roadCameraState", VisionStreamType.VISION_STREAM_ROAD, ROAD_CAM)
CameraType("driverCameraState", VisionStreamType.VISION_STREAM_DRIVER, os.getenv("DRIVER_CAM", "2")),
] ]
if WIDE_CAM: if WIDE_CAM:
CAMERAS.append(CameraType("wideRoadCameraState", VisionStreamType.VISION_STREAM_WIDE_ROAD, WIDE_CAM)) CAMERAS.append(CameraType("wideRoadCameraState", VisionStreamType.VISION_STREAM_WIDE_ROAD, WIDE_CAM))
if DRIVER_CAM:
CAMERAS.append(CameraType("driverCameraState", VisionStreamType.VISION_STREAM_DRIVER, DRIVER_CAM))
class Camerad: class Camerad:
def __init__(self): def __init__(self):

Loading…
Cancel
Save