Since v1.9.0, eProsima Fast DDS features an alternative to the DDS Simple Discovery Protocol (SDP) mechanism: Discovery Server. Designed for large deployments with many nodes, Discovery Server reduces the discovery related network traffic while avoiding typical issues of heterogeneous networks such as package lossover Wifi, or multicast drops in network equipment. It does so by replacing the standard peer to peer discovery by one or several Discovery Servers to which the Clients connect. eProsima Fast DDS v2.0.2 further reduces the discovery related traffic when using the Discovery Server by only connecting those Clients which have something to say to each other. This strategy has reduced the network traffic by up to 93% when compared to the standard SDP, and by up to 83% when compared to the previous implementation of the Discovery Server.
Note: Network related discovery traffic generated by RMF Clinic Demo when using Fast DDS Simple Discovery Protocol (SDP), Discovery Server v1.0 (DS 1.0), and Discovery Server v2 (DS 2.0). Both SDP and DS 2.0 experiments are performed using Fast DDS v2.0.2; DS 1.0 is performed using Fast DDS v2.0.1.
MAIN ADVANTAGES:
|
When to use the Discovery Server?
- Large scale: High number of nodes.
- Heterogeneous networks: No multicast available.
- Scarce network resources: The massive reduction of traffic enables the deployments of large systems in network constrained environments.
Standard Discovery vs Discovery Server
How to use the Discovery Server?
Since Fast DDS v2.0.2, the Discovery Server protocol can be configured by running one executable for bringing up the Server, and setting an environment variable to configure the Clients. This brings the easy-to-use ways of ROS 1 master to ROS 2, without the problems that `roscore` imposed in terms of single point of failure.
- Open a new terminal and source your ROS installation. Then launch a Server with:
fastdds discovery -i 0
This command launches a server with ID 0 in 127.0.0.1:11811.
2. Open another terminal and source your ROS installation. Then, configure the Clients (all your nodes) with:
export ROS_DISCOVERY_SERVER=127.0.0.1:11811
ros2 run <package_name> <application>
Note that Fast DDS v2.0.2 is currently only available when compiling ROS 2 Foxy from sources. However, it will be part of the upcoming Foxy sync release. Furthermore, since Fast DDS features the Discovery Server since v1.9.0, the protocol can also be used in ROS 2 Eloquent. Instructions on how to configure it using XML files can be found in Fast DDS documentation.
Available Documentation:
Release Notes | Manuals | White Papers |
More information about the eProsima Discovery Server:
For any questions please contact