88 lines
2.8 KiB
Markdown
88 lines
2.8 KiB
Markdown
# ZED Playground
|
|
|
|
This repo provides a Docker Compose setup and Dev Container config based on
|
|
`stereolabs/zed:5.1-gl-devel-cuda12.8-ubuntu24.04`.
|
|
|
|
## Prerequisites
|
|
|
|
- Docker + Docker Compose v2
|
|
- NVIDIA Container Toolkit (GPU support)
|
|
- ZED camera connected via USB (optional)
|
|
|
|
If you use GUI apps inside the container, you need X11 access from the host.
|
|
|
|
## Quick Start (Docker Compose)
|
|
|
|
1) Allow local X11 access for root:
|
|
|
|
```bash
|
|
xhost +local:root
|
|
```
|
|
|
|
2) Start the container:
|
|
|
|
```bash
|
|
docker compose up
|
|
```
|
|
|
|
3) Open a shell in the running container:
|
|
|
|
```bash
|
|
docker compose exec zed bash
|
|
```
|
|
|
|
## Dev Container (VS Code / compatible)
|
|
|
|
1) Open this folder in a Dev Container-capable editor.
|
|
2) It will use `.devcontainer/devcontainer.json` and `docker-compose.yml`.
|
|
|
|
## Notes
|
|
|
|
- If you are on Wayland, X11 forwarding may require XWayland. If GUI apps do
|
|
not appear, log into an X11 session or enable XWayland.
|
|
- USB devices are passed through via `/dev/bus/usb` and the container runs
|
|
`privileged` for camera access.
|
|
- The workspace is mounted at `/workspaces/zed-playground`.
|
|
|
|
## Udev Rules (Host)
|
|
|
|
Udev controls device permissions and power settings on the host. If ZED sensors
|
|
fail to initialize inside the container, the host likely does not allow
|
|
non-root access to the camera MCU/IMU or has USB autosuspend enabled.
|
|
|
|
This repo provides two options:
|
|
- `misc/99-slabs.rules`: a ready-to-use rule file that grants access to ZED
|
|
USB/HID devices and disables autosuspend for known ZED USB IDs.
|
|
- `misc/udev_fix.sh`: downloads the official `99-slabs.rules`, installs it to
|
|
`/etc/udev/rules.d/`, and reloads udev.
|
|
|
|
Run the script on the host (not in the container), then unplug/replug the
|
|
camera so the new rules take effect.
|
|
- `/usr/local/zed/samples` has ZED SDK sample applications.
|
|
|
|
See [adujardin/setup_zed_udev-rules.sh](https://gist.github.com/adujardin/2d5ce8f000fc6a7bd40bee2709749ff8/) from stereolabs community.
|
|
|
|
- [ZED camera does not open in docker container as a non-root user](https://community.stereolabs.com/t/zed-camera-does-not-open-in-docker-container-as-a-non-root-user/2259/4)
|
|
- [CAMERA NOT DETECTED in WSL2 Ubuntu 22.04](https://community.stereolabs.com/t/camera-not-detected-in-wsl2-ubuntu-22-04/3477/5)
|
|
|
|
## Calibration Download
|
|
|
|
If automatic calibration download fails, grab it manually:
|
|
|
|
```
|
|
http://calib.stereolabs.com/?SN=<ZED_SN>
|
|
```
|
|
|
|
`<ZED_SN>` is the decimal serial number without the `SN` prefix.
|
|
|
|
Place the downloaded `SN<XXXX>.conf` in the default settings path:
|
|
- Linux: `/usr/local/zed/settings/`
|
|
- Windows: `C:/ProgramData/stereolabs/settings`
|
|
|
|
If you pass a custom settings path in your app, the SDK will try that first and
|
|
fall back to the default path if the file is not found.
|
|
|
|
## See also
|
|
|
|
- [How to Install ZED SDK with Docker on Linux](https://www.stereolabs.com/docs/docker/install-guide-linux)
|