DaaS-ROS Bridge: Connecting ROS2 and DaaS-IoT Mesh Networking
A new open-source package that lets ROS2 nodes communicate over a DaaS-IoT overlay mesh network, opening new possibilities for distributed robotics and industrial automation.
The robotics and IoT worlds have long evolved in parallel: ROS2 on one side, a de-facto standard for robotic applications; DaaS-IoT on the other, a mesh networking technology for distributed heterogeneous devices. Today the two can finally talk to each other.
DaaS-ROS Bridge is an open-source ROS2 package developed by Sebyone that makes it possible to use a DaaS-IoT overlay mesh network as a transparent transport layer for ROS2 messages.
Why bridge ROS2 and DaaS-IoT?
ROS2 is widely used in robotics, autonomous vehicles, industrial automation, and research. Its publish-subscribe model based on topics is simple and powerful within a local system. However, when robots or devices need to communicate across heterogeneous networks — different physical links, varying transports, or non-standard environments — the limitations of a purely local bus become apparent.
DaaS-IoT solves exactly this problem. As an overlay mesh network, it builds a common logical layer on top of any physical transport: Ethernet, Wi-Fi, Bluetooth, serial links, and more. Devices become nodes of a distributed network regardless of how they are physically connected.
By combining the two, a ROS2 node can send a message over a DaaS-IoT mesh as naturally as it would publish to a local topic.
How it works
The bridge consists of two independent ROS2 nodes:
daas_ros_sender — listens to a ROS2 topic and forwards each incoming message as a DDO (DaaS Data Object) to a remote DIN (Device Identification Number) on the DaaS-IoT network.
daas_ros_receiver — listens for incoming DDOs from the DaaS-IoT network, extracts the payload, and publishes it on a local ROS2 topic.
The resulting flow looks like this:
ROS2 /daas_ros/out
→ daas_ros_sender
→ DDO over DaaS-IoT Network
→ daas_ros_receiver
→ ROS2 /daas_ros/in This separation keeps the design clean: no ambiguity between inbound and outbound, no risk of feedback loops, and each side can be independently tested or replaced.
A practical example
Start the receiver on one machine (or terminal):
ros2 run daas_ros_bridge daas_ros_receiver Then start the sender on another:
ros2 run daas_ros_bridge daas_ros_sender Publish a message from ROS2:
ros2 topic pub /daas_ros/out std_msgs/String "{data: 'Hello from ROS2'}" Read it on the other side:
ros2 topic echo /daas_ros/in
# data: Hello from ROS2 The message traveled through a DaaS-IoT mesh network, completely transparently to the ROS2 application.
What this enables
The bridge opens up several interesting scenarios:
- Distributed multi-robot systems where robots communicate via DaaS-IoT’s overlay network, with all the benefits of automatic routing, driver failover, and mesh topology.
- Edge-to-robot integration, connecting ROS2 nodes on an embedded device with analytics or coordination services running on a remote machine or cloud gateway.
- Heterogeneous network traversal, allowing a robot on Wi-Fi to exchange messages with an industrial machine on Ethernet — transparently, through the DaaS-IoT overlay.
- Resilient communication, leveraging DaaS-IoT’s multi-driver capabilities to keep message exchange alive even when a network link fails.
Open source and ready to use
The DaaS-ROS Bridge is available as a standard ROS2 Python package. It uses the pydaasiot Python binding to interact with the DaaS-IoT network, and follows standard ROS2 conventions for parameters, topics, and lifecycle.
All connection parameters — local DIN, remote DIN, URIs, topics, buffer sizes — are exposed as ROS2 parameters and can be set at launch time, making the bridge easy to integrate into any existing ROS2 workspace.
This is another step in Sebyone’s ongoing work to open the DaaS-IoT ecosystem to the wider developer community, making distributed mesh networking accessible to anyone building with ROS2.