What VPN / networking solution do you use for ROS robots?

For anyone running ROS across more than a single machine or LAN, how are you handling networking today?

I’m particularly curious about setups where you need remote access to robots, ROS 1/ROS 2 communication across sites or subnets, or connectivity between robots and backend/fleet systems.

What do you use?

  • OpenVPN / traditional VPN
  • Tailscale
  • ZeroTier
  • Self-managed WireGuard
  • Other
  • No VPN
0 voters

Would be great to hear in the comments what your setup looks like, especially for ROS 2/DDS discovery and multi-machine communication, and whether networking constraints influenced your choice.

As you scale your fleet from 2 to 20 robots and beyond you should update your network architecture such that you don’t need a VPN. As I always say: robot should be clients :trade_mark:. Meaning nothing in your logic should require inbound connections to robots. It should always be the robots connecting out. In the Transitive framework I chose MQTT as the base communication layer: all robots connect to a broker that lives in the cloud (or on-prem server for offline deployments), and keep that connection alive – reconnecting if necessary.

Sometimes you do need shell/SSH access to your robots, yes, but even for that you don’t need a VPN. With the above topology in place you can use a web terminal, either directly over MQTT or over a webrtc connection. Web terminals are nice because you can combine SSH + SCP in one interface, e.g., drag and drop files into the terminal for upload, click files listed by ls to download, like we did in the Terminal capability you can try.

3 Likes