Zenoh Multi-Protocol Bridge¶
๐ฏ Overview¶
The Zenoh Multi-Protocol Bridge Project is a comprehensive solution designed to enable seamless data transfer between different communication protocols commonly used in IoT, robotics, and distributed systems. This project bridges Zenoh, MQTT, and ROS2 protocols, allowing them to work together in modern IoT and robotics ecosystems.
โจ Key Features¶
- ๐ Multi-Protocol Translation: Seamless data transfer between MQTT, Zenoh, and ROS2 protocols
- โก Real-Time Communication: Instant processing of sensor and robotics data
- ๐ Scalable Architecture: Docker-based microservices structure
- ๐ Monitoring and Control: Visual flow control with Node-RED
- ๐ค Robotics Integration: ROS2 DDS bridge for robotics applications
- ๐งช Testing Environment: Comprehensive testable system with multiple protocol support
๐ฏ Project Objectives¶
This project serves multiple purposes in modern distributed systems:
- Multi-Protocol Translation: Enable data transfer between MQTT, Zenoh, and ROS2 protocols
- Real-Time Communication: Provide instant processing of sensor and robotics data
- Scalable Architecture: Offer a Docker-based microservices structure
- Monitoring and Control: Include visual flow control with Node-RED
- Robotics Integration: Support ROS2 DDS bridge for robotics applications
- Testing Environment: Provide a comprehensive testable system with multiple protocol support
๐ Quick Start¶
Get started with the Zenoh Multi-Protocol Bridge in just a few steps:
# Clone the repository
git clone https://github.com/harunkurtdev/zenoh-multi-bridge.git
cd zenoh-multi-bridge
# Start all services
docker-compose up -d
# Follow logs for all services
docker-compose logs -f
Visit the web interfaces:
- Node-RED Dashboard: http://localhost:1880
- Zenoh REST API: http://localhost:8000
- MQTT Bridge API: http://localhost:8001
- ROS2 Bridge API: http://localhost:8002
- Foxglove Studio: http://localhost:8765
๐ System Components¶
The system consists of several interconnected components:
| Component | Description | Port(s) |
|---|---|---|
| Zenoh Router | Central router for Zenoh network | 7447, 8000 |
| MQTT Broker | Eclipse Mosquitto message broker | 1883, 9001 |
| Zenoh-MQTT Bridge | Protocol bridge between MQTT and Zenoh | 8001, 1884 |
| ROS2 Humble | ROS2 robotics framework | 8765 |
| Zenoh-ROS2DDS Bridge | Protocol bridge between ROS2 DDS and Zenoh | 8002, 7449 |
| Node-RED | Visual flow editor and automation | 1880 |
๐ Data Flow¶
graph LR
A[MQTT Publisher] -->|MQTT| B[Zenoh-MQTT Bridge]
B -->|Zenoh| C[Zenoh Router]
C -->|Zenoh| D[Zenoh-ROS2DDS Bridge]
D -->|DDS| E[ROS2 Humble]
C -->|Zenoh| F[Zenoh Subscriber]
B -->|MQTT| G[MQTT Broker]
G -->|MQTT| H[MQTT Subscriber]
C -->|Monitor| I[Node-RED]
๐ฏ Use Cases¶
IoT-Robotics Integration¶
Connect sensor data from IoT devices (MQTT) to robot control systems (ROS2) for real-time environmental data processing in autonomous robots.
Hybrid Communication Systems¶
Integrate legacy MQTT infrastructure with modern Zenoh protocol adoption and ROS2 robotics ecosystem connectivity.
Research and Development¶
Provide a multi-protocol testing environment for performance comparison and development sandbox for distributed systems.
Industrial Automation¶
Enable communication between SCADA systems (MQTT) and robot controllers (ROS2) with real-time monitoring capabilities.
Smart City Applications¶
Facilitate communication between IoT sensors and autonomous vehicles for traffic management and environmental monitoring.
๐ Documentation Structure¶
- Getting Started: Installation, prerequisites, and quick start guides
- Architecture: System architecture, components, and data flow
- Components: Detailed documentation for each system component
- Configuration: Configuration guides for bridges and services
- Usage: Testing procedures and monitoring guides
- Use Cases: Real-world application examples
- API Reference: REST API endpoints and documentation
๐ค Contributing¶
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
๐ License¶
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
๐ Acknowledgments¶
- Eclipse Zenoh - Zero Overhead Pub/Sub, Store/Query and Compute
- Eclipse Mosquitto - An open source MQTT broker
- ROS2 - Robot Operating System 2
- Node-RED - Low-code programming for event-driven applications
๐ Support¶
For questions and support, please open an issue on the GitHub repository.