eclipse-zenoh/zenoh-plugin-ros2dds
A Zenoh plug-in for ROS2 with a DDS RMW. See https://discourse.ros.org/t/ros-2-alternative-middleware-report/ for the advantages of using this plugin over other DDS RMW implementations.
What it solves
This project provides a bridge that allows ROS 2 (Robot Operating System) communications to be routed over Zenoh. It addresses common issues found in standard ROS 2 DDS (Data Distribution Service) middleware, such as wireless connectivity problems, bandwidth constraints, and integration difficulties across different networks.
How it works
The bridge acts as a translation layer between the ROS 2 DDS protocol and the Zenoh protocol. It can be deployed as either a dynamic library (plugin) for a Zenoh router or as a standalone executable. It discovers ROS 2 nodes, topics, services, and actions via UDP multicast (using CycloneDDS) and maps them to Zenoh resources.
Key mechanisms include:
- Namespace Mapping: It can prefix ROS 2 names with a specific namespace at the bridge level, preventing conflicts when managing multiple robots without needing to configure each individual ROS node.
- Connectivity Modes: It supports both router and peer modes for managing how bridges connect to each other across a network.
- Admin Space: It exposes internal states (like discovered nodes and routes) via a Zenoh admin space for monitoring.
Who it’s for
Robotics developers and operators who use ROS 2 and need to transmit robotic data across unstable wireless links or integrate multiple robots into a single monitoring system.
Highlights
- ROS 2 Integration: Full support for ROS topics, services, and actions, ensuring compatibility with standard ROS 2 tooling like
ros2CLI andrviz2. - Flexible Deployment: Available as a standalone bridge or a Zenoh router plugin.
- Simplified Multi-Robot Management: Bridge-level namespace configuration simplifies the isolation of data from multiple robots.
- Efficient Discovery: More compact exchange of discovery information compared to standard DDS bridges.
Related
- Project
- Project
- Project
- Project