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
A Zephyr module providing the shared wire format between the MCU and the ROS 2 host. It implements MicroCDR-style
JointStateandJointCommandserialization for Tier 1, and includes the schema-coupled payload generator for Tier 2.- 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.