CycloneDDS + micro_ros_agent fails with hnet0 (Transport=udp6): rmw_create_node failed to create domain

Hi Husarnet community!

We are working on a robotics project where we connect an ESP32 to a Raspberry Pi wirelessly using micro-ROS (UDP transport), and then the Raspberry Pi connects to a remote node via Husarnet for teleoperation. The Raspberry Pi runs a Docker container with ROS 2 Humble and micro_ros_agent as the bridge between the ESP32 and the ROS 2 ecosystem.

Problem: We cannot simultaneously reach Husarnet peers (hnet0, IPv6) and have micro_ros_agent work correctly with CycloneDDS.

  • Without <Transport> tag: CycloneDDS defaults to IPv4, ignores hnet0 → micro_ros_agent works locally but Husarnet peers are unreachable

  • <Transport>udp6</Transport> (needed for hnet0): micro_ros_agent fails with rmw_create_node: failed to create domain

  • Explicit <NetworkInterface name="hnet0"/> without Transport: CycloneDDS reports hnet0: does not match an available interface (IPv4/IPv6 address family mismatch)

  • <NetworkInterface name="hnet0" multicast="false"/> + <AllowMulticast>spdp</AllowMulticast>: same failure

Question: Is there a CycloneDDS XML configuration that allows using hnet0 (IPv6/Husarnet) for remote peers while keeping IPv4 working locally — without breaking micro_ros_agent? FastDDS achieves this via multiple transport descriptors (UDPv4 + UDPv6 in the same profile), but CycloneDDS only accepts a single <Transport> value.

ROS 2 Humble, Docker (network_mode: host), Raspberry Pi 5, Husarnet hnet0

Hello @Frenzi,
Thanks for posting.
I am not really an expert on ROS/DDSes so I will need to ask around a bit, but have you tried specifying remote Husarnet address(es) statically in Peers section (Domain/Discovery/Peers), like so?

<Peers>
  <Peer address="fc94:..."/>
</Peers>

As you discovered, setting transport to udp6 will break micro_ros_agent so this is no go, but I’m pretty sure we can find some sort of workaround for Husarnet here.

Is Husarnet running inside Docker too in this setup? Or is it simply installed on RPi?

PS. Also might be interesting to check out solutions like Husarnet ROS2Router