Skip to content

Commit

Permalink
Addition of discovery server instructions (#417)
Browse files Browse the repository at this point in the history
* Create new page + images on using Fast DDS discovery server
* Add example configuration files

---------

Co-authored-by: Darya Clark <[email protected]>
Co-authored-by: kwujciak <[email protected]>
Co-authored-by: Alberto Soragna <[email protected]>
  • Loading branch information
4 people authored Jul 10, 2023
1 parent 15d99f2 commit ed79bed
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 1 deletion.
Binary file added docs/setup/data/app-config.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/setup/data/fastdds.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/setup/data/logs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
26 changes: 26 additions & 0 deletions docs/setup/data/super_client_configuration_file.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<dds>
<profiles xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles">
<participant profile_name="super_client_profile" is_default_profile="true">
<rtps>
<builtin>
<discovery_config>
<discoveryProtocol>SUPER_CLIENT</discoveryProtocol>
<discoveryServersList>
<RemoteServer prefix="44.53.00.5f.45.50.52.4f.53.49.4d.41">
<metatrafficUnicastLocatorList>
<locator>
<udpv4>
<address>VM_IP</address>
<port>11811</port>
</udpv4>
</locator>
</metatrafficUnicastLocatorList>
</RemoteServer>
</discoveryServersList>
</discovery_config>
</builtin>
</rtps>
</participant>
</profiles>
</dds>
48 changes: 48 additions & 0 deletions docs/setup/discovery-server.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Fast DDS Discovery Server

This page gives instructions on how to use a Fast DDS discovery server with the Create® 3 robot as a client.
For more information on the Fast DDS discovery server, please refer to the [eProsima documentation](https://fast-dds.docs.eprosima.com/en/latest/fastdds/ros2/discovery_server/ros2_discovery_server.html).

*We’ll use the term "computer" to refer to any SBC (single board computer), virtual machine, personal computer, etc.*

## Configure Server

1. Start the discovery server on the computer that you wish to use as your server by replacing <SERVER_IP> with the computer's IP address.

fastdds discovery -i 0 -l <SERVER_IP> -p 11811

![](./data/fastdds.png)

## Configure Create® 3 Robot as a Client
!!! important
If you have enabled the discovery server previously and wish to change the Wi-Fi network you are connected to, make sure the discovery server is disabled in the configuration settings **before** connecting it to a **new** Wi-Fi network.
The discovery server can be disabled by unchecking the "Enable Fast DDS discovery server?" checkbox in the [webserver application settings](../../webserver/application/), and then saving and restarting the application.

1. Make sure your Create® 3 robot is connected to Wi-Fi. If it isn't, follow the directions [here](../provision/).

1. Navigate to the robot’s web server via its IP address.
Go to [webserver application settings](../../webserver/application/) and enable the checkbox for the discovery server.
In the field `Address and port of Fast DDS discovery server`, enter the IP address of your server followed by `:11811` (the default port for the Fast DDS discovery server is `11811`, but it is configurable).

1. If you intend on connecting multiple robots to the same discovery server, make sure to give the Create® 3 robot a namespace.
Restart the application after saving all settings.
![](./data/app-config.png)

!!! attention
It is recommended you check the [logs](../../webserver/logs/) to confirm the discovery server has been enabled on the robot. ![](./data/logs.png)

## Configure Other Devices as Super Clients
When using a discovery server with a Create® 3 Robot, all other devices connected to the discovery server must be set up as super clients in order to communicate with the Create® 3 Robot.
Other devices could be any device that runs ROS 2 and wants to communicate with the Create® 3 Robot.

1. Before starting, stop the ROS 2 Daemon with `ros2 daemon stop`.

1. Download the .xml file found [here](data/super_client_configuration_file.xml) and replace VM_IP with your device’s IP address.

1. Navigate to your device and open terminal. If the super client and server are on the same computer, make sure to open a new terminal (separate terminal from where the server is running).

1. Assign your .xml file as your default profile by entering the following.

export FASTRTPS_DEFAULT_PROFILES_FILE=/path/to/the/xml/profile

1. Now, try looking for the Create® 3 topics list by running `ros2 topic list`.
7 changes: 6 additions & 1 deletion docs/setup/network-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,12 @@ However, multicasting is often disabled on enterprise networks, and the [creator
A complete overview of the multicast disabling process for both RMWs is outlined on the [ROS 2 Middleware Configuration](../xml-config) page.

#### Dedicated Network
In cases where multiple robots will be using a busy network (e.g., university or corporate networks) or the existing network configuration is non-functional, creating a dedicated network for your Create® 3 robot can mitigate most issues.
In cases where multiple robots will be using a busy network (e.g., university or corporate networks) or the existing network configuration is non-functional, creating a dedicated network for your Create® 3 robot can mitigate most issues.

#### Fast DDS Discovery Server
The Fast DDS Discovery Server further limits discovery traffic by routing discovery through a single server.
This can avoid known issues with scaling and multicasting.
Instructions on how to set up a discovery server are outlined [here.](../discovery-server)

## Ethernet Over USB
The Create® 3 robot has a USB-C® port that allows for ethernet network connectivity over USB.
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ nav:
- Galactic Config: setup/pi4galactic.md
- Humble Config: setup/pi4humble.md
- Network Time Protocol: setup/compute-ntp.md
- Fast DDS Discovery Server: setup/discovery-server.md
- APIs:
- ROS 2 Interface: api/ros2.md
- Docking: api/docking.md
Expand Down

0 comments on commit ed79bed

Please sign in to comment.