tailscale / tailscale

The easiest, most secure way to use WireGuard and 2FA.
https://tailscale.com
BSD 3-Clause "New" or "Revised" License
18.83k stars 1.46k forks source link

FR: Add support for ROS2 #11972

Open DrewSBAI opened 5 months ago

DrewSBAI commented 5 months ago

What are you trying to do?

We're trying to use ROS2 to connect multiple robots using Tailscale. Unfortunately, ROS2 uses DDS for node discovery (which relies on multicast). Subsequent node-to-node communication in ROS2 can be unicast, but the Node and Topic lookups rely on multicast (DDS discovery). Tailscale is incompatible with ROS2 for this reason.

How should we solve this?

Allow multicast for the ROS2 DDS discovery.

What is the impact of not solving this?

No robotics companies will use Tailscale for deployments.

Anything else?

No response

joonas-fi commented 5 months ago

Duplicate of:

11134

1013

ROS2 is just one of the use cases for multicast.

ahelten commented 2 months ago

+1 for ROS2/DDS

TS folks keep stalling on implementing the multicast feature by asking for use cases... I would argue ROS2, and more generally DDS, is more than just "one of" the use cases for multicast -- it could be one of the biggest!

It's a common scenario with robotics where a remote node (the robot) has limited wifi/4G/radio network connectivity. Using multicast for all ROS2/DDS communications (not just discovery) would significantly reduce network load between control stations and robots and even more so for robot-to-robot. Consider that it would reduce the number of packets from "N" UDP p-to-p packets to "1" multicast packet when publishing a message to "N" subscribers.