You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello there, I have been trying to get multiple discovery servers connected via XML configuration. I am using the fastdds discovery -x option to launch the discovery servers on each computer in the distributed system, and attempting to get them to orchestrate discovery over WiFi for the distributed system. I am not having luck. I am able to host a discovery server on computer A and connect to it via computer B without issues, which enables reliable discovery across machines.
For my use case, I need Computer A to be connected to Computer B, as well as Computer C's discovery server, and vice versa. Attached is the configuration I am trying to achieve, as well and the XML file I am using to launch the discovery servers on computer A, B, and C. Intuitively and by following examples, I think my XML files are configured correctly. Each Discovery Server XML is aware of the other Discovery Servers, but this configuration is not allowing my system to communicate via ROS. Any help would be greatly appreciated. When I launch the XML files, each Discovery Server is showing a Server ID of 0, but the GUIDs are unique. I am not sure if this is the issue. When I attempt to set a Server ID that is unique to each of the servers using the fastdds discovery -i option, the GUID is overridden by the Server ID, which is not what I want.
Computer A's XML
<?xml version="1.0" encoding="UTF-8" ?>
<profiles xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles">
<participant profile_name="DiscoveryServerA" is_default_profile="true">
<rtps>
<!-- Computer A's Unique GUID -->
<prefix>65.64.67.65.6e.6f.64.65.5f.41.5f.41</prefix>
<builtin>
<!-- Set participant as SERVER -->
<discovery_config>
<discoveryProtocol>SERVER</discoveryProtocol>
<discoveryServersList>
<!-- Discovery Server running on Computer B -->
<RemoteServer prefix="65.64.67.65.6e.6f.64.65.5f.42.5f.42">
<metatrafficUnicastLocatorList>
<locator>
<udpv4>
<address>10.223.0.7</address>
<port>7412</port>
</udpv4>
</locator>
</metatrafficUnicastLocatorList>
</RemoteServer>
<!-- Discovery Server running on Computer C -->
<RemoteServer prefix="65.64.67.65.6e.6f.64.65.5f.43.5f.42">
<metatrafficUnicastLocatorList>
<locator>
<udpv4>
<address>10.223.0.9</address>
<port>7412</port>
</udpv4>
</locator>
</metatrafficUnicastLocatorList>
</RemoteServer>
</discoveryServersList>
</discovery_config>
<!-- Discovery Server running on this computer (computer A)-->
<metatrafficUnicastLocatorList>
<udpv4>
<address>10.223.0.4</address>
<port>7412</port>
</udpv4>
</locator>
</metatrafficUnicastLocatorList>
</builtin>
</rtps>
</participant>
</profile>
Computer B's XML
<?xml version="1.0" encoding="UTF-8" ?>
<profiles xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles">
<participant profile_name="DiscoveryServerB" is_default_profile="true">
<rtps>
<!-- Computer B's Unique GUID -->
<prefix>65.64.67.65.6e.6f.64.65.5f.42.5f.42</prefix>
<builtin>
<!-- Set participant as SERVER -->
<discovery_config>
<discoveryProtocol>SERVER</discoveryProtocol>
<discoveryServersList>
<!-- Discovery Server running on Computer A -->
<RemoteServer prefix="65.64.67.65.6e.6f.64.65.5f.41.5f.41">
<metatrafficUnicastLocatorList>
<locator>
<udpv4>
<address>10.223.0.4</address>
<port>7412</port>
</udpv4>
</locator>
</metatrafficUnicastLocatorList>
</RemoteServer>
<!-- Discovery Server running on Computer C -->
<RemoteServer prefix="65.64.67.65.6e.6f.64.65.5f.43.5f.42">
<metatrafficUnicastLocatorList>
<locator>
<udpv4>
<address>10.223.0.9</address>
<port>7412</port>
</udpv4>
</locator>
</metatrafficUnicastLocatorList>
</RemoteServer>
</discoveryServersList>
</discovery_config>
<!-- Discovery Server running on this computer (computer B)-->
<metatrafficUnicastLocatorList>
<udpv4>
<address>10.223.0.7</address>
<port>7412</port>
</udpv4>
</locator>
</metatrafficUnicastLocatorList>
</builtin>
</rtps>
</participant>
</profile>
Computer C's XML
<?xml version="1.0" encoding="UTF-8" ?>
<profiles xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles">
<participant profile_name="DiscoveryServerC" is_default_profile="true">
<rtps>
<!-- Computer C's Unique GUID -->
<prefix>65.64.67.65.6e.6f.64.65.5f.43.5f.42</prefix>
<builtin>
<!-- Set participant as SERVER -->
<discovery_config>
<discoveryProtocol>SERVER</discoveryProtocol>
<discoveryServersList>
<!-- Discovery Server running on Computer A -->
<RemoteServer prefix="65.64.67.65.6e.6f.64.65.5f.41.5f.41">
<metatrafficUnicastLocatorList>
<locator>
<udpv4>
<address>10.223.0.4</address>
<port>7412</port>
</udpv4>
</locator>
</metatrafficUnicastLocatorList>
</RemoteServer>
<!-- Discovery Server running on Computer B -->
<RemoteServer prefix="65.64.67.65.6e.6f.64.65.5f.42.5f.42">
<metatrafficUnicastLocatorList>
<locator>
<udpv4>
<address>10.223.0.7</address>
<port>7412</port>
</udpv4>
</locator>
</metatrafficUnicastLocatorList>
</RemoteServer>
</discoveryServersList>
</discovery_config>
<!-- Discovery Server running on this computer (computer C)-->
<metatrafficUnicastLocatorList>
<udpv4>
<address>10.223.0.9</address>
<port>7412</port>
</udpv4>
</locator>
</metatrafficUnicastLocatorList>
</builtin>
</rtps>
</participant>
</profile>
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hello there, I have been trying to get multiple discovery servers connected via XML configuration. I am using the
fastdds discovery -x
option to launch the discovery servers on each computer in the distributed system, and attempting to get them to orchestrate discovery over WiFi for the distributed system. I am not having luck. I am able to host a discovery server on computer A and connect to it via computer B without issues, which enables reliable discovery across machines.For my use case, I need Computer A to be connected to Computer B, as well as Computer C's discovery server, and vice versa. Attached is the configuration I am trying to achieve, as well and the XML file I am using to launch the discovery servers on computer A, B, and C. Intuitively and by following examples, I think my XML files are configured correctly. Each Discovery Server XML is aware of the other Discovery Servers, but this configuration is not allowing my system to communicate via ROS. Any help would be greatly appreciated. When I launch the XML files, each Discovery Server is showing a Server ID of 0, but the GUIDs are unique. I am not sure if this is the issue. When I attempt to set a Server ID that is unique to each of the servers using the
fastdds discovery -i
option, the GUID is overridden by the Server ID, which is not what I want.Computer A's XML
Computer B's XML
Computer C's XML
Beta Was this translation helpful? Give feedback.
All reactions