Zephyr-based microcontrollers as first-class ros2_control hardware, communicating
with the ROS 2 host directly over Zenoh — without a micro-ROS
agent or bridge process. The host side is zenbedded_hardware_interface; the MCU side
is zenbedded_rcl and zenbedded_transport, built from one interface_schema.yaml.
Tier 1 uses CDR-encoded ROS 2 messages; Tier 2 uses schema-packed payloads.
| ROS 2 Distro | Branch | Host build | Documentation |
|---|---|---|---|
| Lyrical | master |
Documentation | |
| Kilted | master |
Source build | |
| Jazzy | master |
Source build | |
| Humble and older | — | — |
Lyrical is validated end-to-end. Kilted and Jazzy use the same master sources; their
CI lanes are planned after the first release.
Zephyr v4.4.2 and the ros-controls zenoh-pico fork are pinned in
docker/image-west.yml and
zenbedded_transport/west.yml respectively.
The development image provides ROS 2 Lyrical, ros2_control, Zephyr, and zenoh-pico.
git clone https://github.com/ros-controls/zenbedded.git
cd zenbedded
docker compose up -d
docker compose exec -it dev-env bashCI also exports the dev container as a pre-built image --
ghcr.io/ros-controls/zenbedded/zenbedded-dev, tagged latest from master and
pr-<n> per pull request -- if you prefer it over building locally.
Then follow Getting Started to build the host packages and
flash a demo, and the inverted pendulum docs
to run it (add use_mock_hardware:=true to the launch command to run without an MCU).
Demos: inverted_pendulum and
sine_wave.
As an open-source project, we welcome each contributor, regardless of their background and experience. Pick a PR and review it, or create your own! If you are new to the project, please read the contributing guide for more information on how to get started.
Apache-2.0. See LICENSE.
- Packages are built from source; there is no rosdistro release yet.
- Only Lyrical is CI-tested; Kilted and Jazzy are source builds.
- A standalone Zephyr workspace is not supported yet; use the development container.