How to change Fast-DDS XML configuration to communicate over network via wlp58s0 (different network interface)

asked 2023-05-23 03:20:30 -0500

ljaniec gravatar image

updated 2023-05-30 08:39:27 -0500

Hello,

I am working on upgrading TurtleBot2 from ROS 2 Galactic with Cyclone DDS to ROS 2 Humble with Fast-DDS as middleware. My problem is configuring Fast-DDS to communicate over the network via wlp58s0, rather than trying to communicate over an RJ-45 cable (this is what the lidar on the robot is connected to). In ROS 2 Galactic there was another middleware, Cyclone DDS, and there it was easier, with an example straight from the documentation (below).

<?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>
            <NetworkInterfaceAddress>wlp58s0</NetworkInterfaceAddress>
        </General>
    </Domain>
</CycloneDDS>

In ROS 2 Humble the default is Fast-DDS, which did not have such clear documentation for us. Unfortunately, I don't really know what would be the equivalent of an analogous change. When I read the Fast-DDS documentation, I don't really know how to do it in this case; I found some links regarding ROS 2 in the documentation:

Should I do this using whitelists?

Do I need to create a profile (separate for TCP and UDP, I think) with a whitelist of IP addresses assigned to those interfaces over which Fast DDS can communicate? Presumably 127.0.0.1 and the IP address of the Wi-Fi interface? What would the XML of such a configuration look like?

Best regards,

Łukasz Janiec

edit retag flag offensive close merge delete