Skip to content
ros-controlsPublic

About

Project to integrate ros2_control with embedded boards using Zephyr and Zenoh

Resources

Contributing

Stars

33 stars

Watchers

5 watching

Forks

Repository files navigation

Zenbedded

License Lyrical Binary Build Zephyr Twister

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.

Supported distributions

ROS 2 Distro Branch Host build Documentation
Lyrical master Lyrical Binary Build Documentation
Kilted master source build Source build
Jazzy master source build Source build
Humble and older — unsupported —

Lyrical is validated end-to-end. Kilted and Jazzy use the same master sources; their CI lanes are planned after the first release.

Supported hardware

Platform Status Notes
esp32s3 passing Reference target; built in CI and used by all demos
esp32 Classic Tested Target; Manually tested and verified
native_sim/native/64 passing CI test target; no radio
Other Zephyr boards not tested Requires a network interface supported by zenoh-pico

Zephyr v4.4.2 and the ros-controls zenoh-pico fork are pinned in docker/image-west.yml and zenbedded_transport/west.yml respectively.

Quick start

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 bash

CI 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).

Documentation

Demos: inverted_pendulum and sine_wave.

Contributing

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.

References

License

Apache-2.0. See LICENSE.

Known limitations

  • 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.

About

Project to integrate ros2_control with embedded boards using Zephyr and Zenoh

Resources

Contributing

Stars

33 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages