You're reading the documentation for a version of ROS 2 that has reached its EOL (end-of-life), and is no longer officially supported. If you want up-to-date information, please have a look at Kilted.

zenbedded_rcl

The embedded client library for Zephyr RTOS that provides a high-level API for ROS 2 communication.

Warning

This package is work in progress.

Features

  • Agent-less: Communicates directly with ROS 2 via Zenoh, with no bridge process running on the MCU.

  • Double-buffered: Lock-free state/command buffers with ABA-prevention versioning, safe for the control thread.

  • ROS-like API: state() / command() accessors plus sync() to publish and consume buffers; an optional control thread is started via start_thread(control_freq).

  • Optimized: Designed for a low memory footprint and real-time execution within the Zephyr thread model.

Setup

zenbedded_rcl is a Zephyr module; build it as part of a demo application in a west workspace that also provides zenoh-pico (e.g. the Docker development environment mounts demos/ into a ready-made workspace):

cd demos/inverted_pendulum
west build -p always -b esp32s3_devkitc/esp32s3/procpu #your appropriate board
west flash --esp-device /dev/ttyUSB0