When using ROS 2 in its default configuration, you may encounter challenges in the following scenarios:
Lossy Wi-Fi networks
Network congestion
Large data transmission (e.g., video streams, LIDAR data)
Discovery issues in large-scale deployments or environments without multicast support
We’re excited to announce ROS 2 Easy Mode, a new feature designed to optimize ROS 2 and Fast DDS for these situations with just a single configuration setting. This enhancement significantly improves performance and simplifies the out-of-the-box experience for users.
Want to try it right away? Download our ROS 2 distribution, Vulcanexus, and explore the benefits of Easy Mode today. This feature will also be included in the official ROS 2 distribution soon.
Hi @Jaime_Martin_Losa , is there already some documentation directly on ROS 2 docs.ros.org? I haven’t found it, only the Vulcanexus docs.
I’ve successfully ran ROS2_EASY_MODE on Kilted (pure ROS 2) and after 2 hours of banging it seems to more or less work.
I had the biggest problem understanding the concept of where to put which IP address. We have 2 computers connected to a switch, but they also have a direct connection (on a different LAN). We only want to connect these via the direct connection (the switch is there for communicating with other devices). The working config I found is that the master PC has ROS2_EASY_MODE pointing to its switch interface, while the other PC points the the master PC via the direct connection IP. Also, it seemed natural to me to give 0.0.0.0 to the discovery server on master PC, but that didn’t work well. It also seems to me ROS2_EASY_MODE ignore ROS_STATIC_PEERS and ROS_AUTOMATIC_DISCOVERY_RANGE variables. I haven’t found much about them in the docs of Easy mode. It talks about ROS_STATIC_PEERS somehow affecting the discover server connections, but it seemed to me the effect was never visible.
Also, what I still observe even with Easy mode is the completely nonsensical effort to send data to all network interfaces.
Say PC1 has interfaces A, B, C, and is connected to PC2 via C. When PC2 sends data to PC1, it sends the exact same packet to all addresses (A, B, C) via PC2’s C port. That is triplicating the traffic! It actually gets duplicated as many times as there are interfaces on PC1. Our temporary solution are iptables rules dropping this nonensical traffic, but I’m still terrified how can anyone use this DDS at all. Don’t tell me most users have only one network interface…