-
Notifications
You must be signed in to change notification settings - Fork 110
Description
I have a multi-network setup involving two edge devices (A and B) and one laptop (C):
Device A and B are connected via a wired Ethernet network.
Device B has two network interfaces:
eth0: connected to A (wired LAN)
wlan0: connected to a Wi-Fi network
Laptop C connects to B through Wi-Fi.
Device A runs all sensor drivers and publishes ROS 2 topics (sensor data) over the wired interface.
Device B and C should be able to access those topics.
However, since the wired and wireless networks are on different subnets, ROS 2 (using CycloneDDS) cannot automatically discover or communicate across them.
Goal
Enable device C (connected via Wi-Fi) to receive ROS 2 topics that originate from device A, even though A and C are on different networks bridged by B.
Question
What is the correct or recommended way to configure CycloneDDS to support communication across multiple network interfaces (wired + wireless) in this kind of topology?
Should I configure CycloneDDS Peers to explicitly connect A ↔ B ↔ C?
Or is there a better way (e.g., bridging, routing, or DDS relay) to forward ROS 2 data between the two networks?
Environment
ROS 2 distribution: [Humble / foxy]
DDS implementation: CycloneDDS
OS: Ubuntu 20.04 / 22.04
Network: Mixed (Ethernet + Wi-Fi)