I have two PC in my setup. PC A [ROS Foxy] is connected to the router via Ethernet while PC B [ROS Humble] is connected to the router via WIFI.
When I run ros2 topic list on PC B, I can see all the topics from PC A however no all the topic can be echo with command ros2 topic echo. For example I had IMU and 3D LiDAR running on PC A but I can only ros2 topic echo /imu/data on PC B. If I connect the PC B to the router via Ethernet and change the interface in cycloneDDS.xml then I can echo the /points topic on PC B.
I found the following link saying about the issue was linked to the size of the message but I wrote a simple node to subscribe the topic and the callback is not triggered as well. Link: Can see topic when using ros2 topic list, but can't echo it over the network?
Some people said it might due to different DDS middleware running on both PC but I have double checked the DDS implementation on both PC and both are running cycloneDDS. Link: Can see topic when using ros2 topic list, but can't echo it over the network?
---- Update ----
And yes the CYCLONEDDS_URI has been set correctly.
PC_A
PC_A@ubuntu:~$ cat cyclonedds_config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<CycloneDDS xmlns="https://cdds.io/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd">
<Domain Id="any">
<General>
<DontRoute>false</DontRoute>
<AllowMulticast>spdp</AllowMulticast>
<NetworkInterfaceAddress>eth0</NetworkInterfaceAddress>
</General>
<Discovery>
<ParticipantIndex>auto</ParticipantIndex>
<MaxAutoParticipantIndex>100</MaxAutoParticipantIndex>
<Peers>
<Peer address="10.252.252.151"/>
</Peers>
</Discovery>
<Internal>
<MinimumSocketReceiveBufferSize>10MB</MinimumSocketReceiveBufferSize>
</Internal>
<Tracing>
<Verbosity>config</Verbosity>
<OutputFile>stdout</OutputFile>
</Tracing>
</Domain>
</CycloneDDS>
PC_B
PC_B@ubuntu:~$ cat cyclonedds_config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<CycloneDDS xmlns="https://cdds.io/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd">
<Domain Id="any">
<General>
<Interfaces>
<NetworkInterface name="wlp0s20f3" multicast="true" />
</Interfaces>
<AllowMulticast>true</AllowMulticast>
<MaxMessageSize>65500B</MaxMessageSize>
</General>
<Discovery>
<ParticipantIndex>auto</ParticipantIndex>
<MaxAutoParticipantIndex>100</MaxAutoParticipantIndex>
<Peers>
<Peer Address="10.252.252.100"/>
</Peers>
</Discovery>
<Internal>
<SocketReceiveBufferSize min="10MB"/>
<Watermarks>
<WhcHigh>500kB</WhcHigh>
</Watermarks>
</Internal>
<Tracing>
<Verbosity>config</Verbosity>
<OutputFile>stdout</OutputFile>
</Tracing>
</Domain>
</CycloneDDS>
rostopic echothose messages from PC A? – Chuck Aug 04 '23 at 13:27ros2 topic echo /pointsfrom PC A but no message appear when I echo from PC B [connect to the router via WIFI]. However if I establish the Wired connection to the router then I canros2 topic echo /pointson PC B. – Chun Jye Beh Aug 04 '23 at 17:44cycloneddsxml configurations for both PC, and make sure that the environment variableCYCLONEDDS_URIis correctly set on both PC ? (i.e. points toward the .xml configuration file) – TheotimeBlg Aug 06 '23 at 09:48