You're reading the documentation for a development version. For the latest released version, please have a look at Kilted.
Architecture
The integration provides two architecture variants.
No-CDR architecture
No intermediate serialization. zenbedded_transport defines the wire format,
zenbedded_hardware_interface runs on the host, zenbedded_rcl runs on
the MCU — all sharing the same packed struct layout.
CDR architecture
Uses standard CDR serialization. topic_based_hardware_interface on the host
communicates with zenbedded_transport on the MCU over Zenoh topics.
Package responsibilities
- zenbedded_hardware_interface [stable]
A
ros2_controlSystemInterfacethat connects to remote MCUs over Zenoh. It reads sensor state from a Zenoh subscriber and writes joint commands to a Zenoh publisher. Configuration (endpoint, topics, interface schema) is done via ROS 2 parameters. Usesrealtime_tools::RealtimeBufferfor lock-free state access.- zenbedded_transport [stable]
A YAML-driven schema parser and C/C++ header generator that produces packed binary struct descriptions. Both the hardware interface (host-side) and the firmware (MCU-side) use the same schema to ensure wire-format compatibility. Has no ROS dependencies – builds standalone or with
colcon.- zenbedded_transport [WIP]
Zephyr module infrastructure for shared transport logic between the MCU and the ROS 2 host. Implements MicroCDR-style
JointStateandJointCommandserialization (thezcdr_*API inserialization.h). Azenoh_transportwrapper, shared.msgdefinitions, and ROS name-to-Zenoh resource key mapping are planned.- zenbedded_rcl [WIP]
An embedded client library for Zephyr RTOS that provides a high-level, ROS-like API for hardware components running on the MCU. The
ZenbeddedClient(double-buffered state/command buffers with ABA-prevention versioning, Zenoh publish/subscribe, optional control thread) is implemented and ready for use. AHardwareComponentbase class (lifecycle-managed sensor/actuator) andComponentManagerare planned but not yet implemented. Communicates directly with the host over Zenoh without any intermediate agent.