After spending some time trying to get ROS 2 Jazzy working reliably on Raspberry Pi via Docker and Conda (and losing several rounds to OpenGL, Gazebo plugins, and cross-arch issues), I eventually concluded:)
On Raspberry Pi, ROS really only behaves when it’s installed natively.
So I built the full ROS 2 Jazzy stack as native Debian packages for Raspberry Pi OS / Debian Trixie (arm64), using a reproducible build pipeline:
-
bloom → dpkg-buildpackage → sbuild → reprepro
-
signed packages
-
rosdep-compatible
The result:
-
Native ROS 2 Jazzy on Pi OS / Debian Trixie
-
Uses system Mesa / OpenGL
-
Gazebo plugins load correctly
-
Cameras, udev, and ros2_control behave
-
Installable via plain apt
Public APT repository
GitHub - rospian/rospian-repo: ROS2 Jazzy on Raspberry OS Trixie debian repo
Build farm (if you want to reproduce or extend it)
Includes the full mini build-farm pipeline.
This was motivated mainly by reliability on embedded systems and multi-machine setups (Gazebo on desktop, control on Pi).
Feedback, testing, or suggestions very welcome.