Cannot see topics published from ROS2 Foxy on Windows 10 to other machines

Windows is running Husarnet on the host machine, topics are published and can be read locally on Windows but I cannot see those topics on other machines. Additionally, my other machines’ (Linux) topics cannot be found on the Windows machine.

I’m using FastRTPS on all machines. Between two Linux machines, I have no issue, I can successfully publish and subscribe to topics with Husarnet. My FastRTPS profile is almost an exact copy from the one in the tutorial, Using Husarnet & ROS 2 | Husarnet with only changes to the IPs to match my system. I can even run the profile I use on Windows successfully on my Linux machines so I don’t think it’s an issue there.

Command used on Windows to set the custom dds file:

set FASTRTPS_DEFAULT_PROFILES_FILE=(path-to-xml)

Any help would be appreciated, I’m forced to use Windows due to some proprietary software so switching to Linux is currently out of the question. Hopefully that’s enough information for someone who’s more knowledgeable to help!

Below I’ve just included the xml from the tutorial as it is almost an exact copy of what I use, aside from changing IP addresses/hostnames. And, this profile works on my Linux machines.

<?xml version="1.0" encoding="UTF-8" ?>
<profiles xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles">
    <transport_descriptors>
        <transport_descriptor>
            <transport_id>HusarnetTransport</transport_id>
            <type>UDPv6</type>
        </transport_descriptor>
    </transport_descriptors>

    <participant profile_name="CustomHusarnetParticipant" is_default_profile="true">
        <rtps>
            <userTransports>
                <transport_id>HusarnetTransport</transport_id>
            </userTransports>
            <useBuiltinTransports>true</useBuiltinTransports>
            <builtin>
                <initialPeersList>
                <!-- Repeat this part for each husernet peer -->
                    <locator>
                        <udpv6>
                            <address>husarnet-IPv6-address</address> <!-- or <address>husarnet-hostname</address> -->
                        </udpv6>
                    </locator>
                <!-- End repeat -->
                </initialPeersList>
            </builtin>
        </rtps>
    </participant>
</profiles>```

Hello @CamRW

Sorry for the late reply.

There are couple of things to try.

First of all, we have recently developed helper program called husarnet-dds (Find it here: GitHub - husarnet/husarnet-dds: Automatically generate the ROS2 DDS configuration for Husarnet. ), which generates proper DDS config based on the data that Husarnet daemon on your machine provides. I’d suggest you give it a try; maybe see what XML husarnet-dds generated and compare with hand-crafted?

If you find that husarnet-dds is not helping, we will need more diagnostic information.

  1. are Windows devices visible as “Online” in Husarnet Dashboard?
  2. can you provide husarnet status output and logs from the Windows machine? Hint: logs on Windows are in %PROGRAMDATA%/Husarnet/husarnet.log

Thank you!
Szymon

Hi Szymon,

Sorry for my late reply as well. I’ll try out what you suggested next week and see if I can get it working. The profiles created from the husarnet-dds tool are different than mine and it seems to work with the new profiles between two Linux machines. I’ll have to test it on Windows (fingers crossed).

Sincerely,
Cameron