Files
zed-playground/README.md

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)