You're reading the documentation for an older, but still supported, version of ROS 2. For information on the latest version, please have a look at Kilted.
Getting Started
This guide walks you through setting up Zenbedded end-to-end.
Prerequisites
ROS 2 Jazzy (or later)
A Zephyr-supported board (ESP32-S3 reference target)
westinstalled and configured
1. Build the ROS 2 workspace
mkdir -p ~/zephyr_zenoh_ws/src
cd ~/zephyr_zenoh_ws/src
git clone git@github.com:ros-controls/zenbedded.git
cd ~/zephyr_zenoh_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build
2. Build and flash a demo firmware
The easiest route is the Docker development environment, which provides a
ready-made west workspace with the modules and zenoh-pico preloaded (see
the Docker):
cd /zephyr_ws/demos/inverted_pendulum
west build -p always -b esp32s3_devkitc/esp32s3/procpu
west flash --esp-device /dev/ttyUSB0
Note
A standalone host west workspace is not supported yet – the repository has
no root west.yml to initialize from.
3. Run the hardware interface (ROS 2 host)
The hardware interface is loaded via the ros2_control plugin system.
You can test it with the included test suite:
source ~/zephyr_zenoh_ws/install/setup.bash
colcon test --packages-select zenbedded_hardware_interface
For integration with a real MCU, the zenbedded_hardware_interface must be instantiated in a ros2_control URDF with the required parameters.
See the zenbedded_hardware_interface for parameter details.
4. Verify
# Verify the plugin is registered
ros2 control list_hardware_interfaces
# Monitor Zenoh topics (if MCU is publishing)
zenohc sub rt/robot/state