This repository helps you run ROS 2 Jazzy inside Docker with full support for:
- 🖼️
libcamera(via Picamera2) - 🧠 Hailo AI HAT (for real-time edge AI)
- Raspberry Pi running 64-bit Debian Bookworm
- Docker installed on both Raspberry Pi and development machine
docker buildx create --name multiarch-builder --node amd64-node --platform liunx/amd64 --driver docker-container
docker buildx create --name multiarch-builder --node arm64-node --platform linux/arm64 --driver docker-container ssh://PI_USER@PI_IP_ADDRESS --append
docker buildx inspect --bootstrapCross-compile the image for the Raspberry Pi (ARM64) and push it to your container registry or use --load:
docker buildx build \
--platform linux/arm64 \
-t ghcr.io/open-vehicle-control-system/ovcs-ros2-bookworm-jazzy-rpi:latest \
-f dockerfile/debian-bookworm-jazzy/raspberry/Dockerfile \
--push \
dockerfile/debian-bookworm-jazzy/raspberrydocker buildx build \
--platform linux/arm64,linux/amd64 \
-t ghcr.io/open-vehicle-control-system/zenoh:1.4.0 \
-f dockerfile/zenoh/Dockerfile \
--push \
dockerfile/zenohdocker build \
-t ghcr.io/open-vehicle-control-system/ovcs-ros2-noble-jazzy-desktop:latest \
-f dockerfile/ubuntu-24-04-jazzy/desktop/Dockerfile \
dockerfile/ubuntu-24-04-jazzy/desktopdocker build \
-t ghcr.io/open-vehicle-control-system/ovcs-ros2-bookworm-jazzy-rpi:latest \
-f dockerfile/debian-bookworm-jazzy/raspberry/Dockerfile \
dockerfile/debian-bookworm-jazzy/raspberrydocker run --rm -it \
--privileged \
-v /run/udev:/run/udev:ro \
ghcr.io/open-vehicle-control-system/ovcs-ros2-bookworm-jazzy-rpi:latest🔐 The
--privilegedflag and/run/udevvolume mount are required for camera hardware access.
If you need to reset your cloud-init setup (for example, to regenerate SSH keys or re-run first boot configs):
sudo vi /boot/firmware/user-data
cloud-init schema --config-file /boot/firmware/user-data
sudo cloud-init clean- Raspberry Pi 5 (64-bit Ubuntu 24.04)
- Docker
>= 24.x - ROS 2 Jazzy
- Picamera2 v0.3+
Happy hacking! 🧪🔬
ls /dev/input/by-id/ readlink -f /dev/input/by-id/usb-Microsoft_Controller_3039373130343938333434343332-event-joystick
docker run --rm -ti --net host --device=/dev/input/js0 --device=/dev/input/event18 ghcr.io/open-vehicle-control-system/ovcs-ros2-noble-jazzy-desktop:latest ros2 run joy joy_node https://docs.ros.org/en/jazzy/p/joy/