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
Copy file name to clipboardexpand all lines: setup/discovery_server.md
+56-44
Original file line number
Diff line number
Diff line change
@@ -339,30 +339,49 @@ You may also need to call `ros2 topic list` twice to get a full list of topics.
339
339
340
340
## Example Configuration
341
341
342
+
### 2 Robots and 1 User Computer
343
+
344
+
#### Recommended Architecture
345
+
342
346
{% tabs discovery %}
343
347
{% tab discovery galactic %}
344
348
```warning
345
349
**ROS 2 Galactic is no longer supported.** Please consider upgrading to a newer release
346
350
```
347
351
348
352
There is currently no example for Galactic.
349
-
350
353
{% endtab %}
351
354
{% tab discovery humble %}
355
+
Each robot is always configured with its own discovery server. This allows each robot to operate independently even if the WiFi is disconnected. Since there are two robots and therefore two discovery servers in the system, the discovery servers must be assigned unique server IDs. In this case, the first robot will be assigned server ID 0 and the second robot will be assigned server ID 1. Similarly, the robots need unique namespaces in order for their topics to be distinguished from each other. In this case they will be assigned as `/robot1` and `/robot2`.
352
356
353
-
### 2 Robots and 1 User Computer
357
+
Although both robots are present in the same system, this example will not include direct inter-robot communication. Each robot's discovery server will be isolated from the other. Instead, the robots will both communicate with the user computer which can be thought of as a command center. This allows for the number of robots to be scaled up while minimizing the load on the network.
354
358
355
-
#### Recommended Architecture
359
+
The user computer will connect to both discovery servers, allowing the user computer to see all of the ROS nodes / topics from each of the robots. Each of the robots will be able to see all of the ROS nodes / topics from the user computer as well. This allows the user computer to send commands to each of the robots, coordinating the system and sharing information across the fleet as necessary.
360
+
361
+
Although one could run another discovery server on the user computer, this would add significant load on all of the robots unless done in such a way that the server was isolated from the robot servers. This is not recommended for most use cases.
362
+
{% endtab %}
363
+
{% tab discovery jazzy %}
356
364
Each robot is always configured with its own discovery server. This allows each robot to operate independently even if the WiFi is disconnected. Since there are two robots and therefore two discovery servers in the system, the discovery servers must be assigned unique server IDs. In this case, the first robot will be assigned server ID 0 and the second robot will be assigned server ID 1. Similarly, the robots need unique namespaces in order for their topics to be distinguished from each other. In this case they will be assigned as `/robot1` and `/robot2`.
357
365
358
366
Although both robots are present in the same system, this example will not include direct inter-robot communication. Each robot's discovery server will be isolated from the other. Instead, the robots will both communicate with the user computer which can be thought of as a command center. This allows for the number of robots to be scaled up while minimizing the load on the network.
359
367
360
368
The user computer will connect to both discovery servers, allowing the user computer to see all of the ROS nodes / topics from each of the robots. Each of the robots will be able to see all of the ROS nodes / topics from the user computer as well. This allows the user computer to send commands to each of the robots, coordinating the system and sharing information across the fleet as necessary.
361
369
362
370
Although one could run another discovery server on the user computer, this would add significant load on all of the robots unless done in such a way that the server was isolated from the robot servers. This is not recommended for most use cases.
371
+
{% endtab %}
372
+
{% endtabs %}
363
373
364
374
#### Example Robot Setup
365
375
376
+
{% tabs example21 %}
377
+
{% tab example21 galactic %}
378
+
```warning
379
+
**ROS 2 Galactic is no longer supported.** Please consider upgrading to a newer release
380
+
```
381
+
382
+
There is currently no example for Galactic.
383
+
{% endtab %}
384
+
{% tab example21 humble %}
366
385
<table>
367
386
<trstyle="text-align:center">
368
387
<th>Robot 1</th>
@@ -417,46 +436,8 @@ Although one could run another discovery server on the user computer, this would
417
436
</td>
418
437
</tr>
419
438
</table>
420
-
421
-
422
-
#### Example User Computer Setup
423
-
From the robot configuration the robot server IDs and the ROS Domain ID are known, and from the robots themselves or the router the IP addresses are known. It is recommended that the robot IPs be reserved on the router so that they always remain the same and this process does not need to be repeated. Running the user computer configuration script as described above, would look as follows:
424
-
425
-
```
426
-
ROS_DOMAIN_ID [0]: 0
427
-
Enter the information for the first discovery server
428
-
Discovery Server ID [0]: 0
429
-
Discovery Server IP: 192.168.131.5
430
-
Discovery Server Port [11811]:
431
-
Re-enter the last server (r), add another server (a), or done (d): a
432
-
Enter the information for the next discovery server
433
-
Discovery Server ID [0]: 1
434
-
Discovery Server IP: 192.168.131.6
435
-
Discovery Server Port [11811]:
436
-
Re-enter the last server (r), add another server (a), or done (d): d
Each robot is always configured with its own discovery server. This allows each robot to operate independently even if the WiFi is disconnected. Since there are two robots and therefore two discovery servers in the system, the discovery servers must be assigned unique server IDs. In this case, the first robot will be assigned server ID 0 and the second robot will be assigned server ID 1. Similarly, the robots need unique namespaces in order for their topics to be distinguished from each other. In this case they will be assigned as `/robot1` and `/robot2`.
451
-
452
-
Although both robots are present in the same system, this example will not include direct inter-robot communication. Each robot's discovery server will be isolated from the other. Instead, the robots will both communicate with the user computer which can be thought of as a command center. This allows for the number of robots to be scaled up while minimizing the load on the network.
453
-
454
-
The user computer will connect to both discovery servers, allowing the user computer to see all of the ROS nodes / topics from each of the robots. Each of the robots will be able to see all of the ROS nodes / topics from the user computer as well. This allows the user computer to send commands to each of the robots, coordinating the system and sharing information across the fleet as necessary.
455
-
456
-
Although one could run another discovery server on the user computer, this would add significant load on all of the robots unless done in such a way that the server was isolated from the robot servers. This is not recommended for most use cases.
457
-
458
-
#### Example Robot Setup
459
-
440
+
{% tab example21 jazzy %}
460
441
<table>
461
442
<trstyle="text-align:center">
462
443
<th>Robot 1</th>
@@ -511,9 +492,19 @@ Although one could run another discovery server on the user computer, this would
511
492
</td>
512
493
</tr>
513
494
</table>
514
-
495
+
{% endtab %}
496
+
{% endtabs %}
515
497
516
498
#### Example User Computer Setup
499
+
{% tabs computer21 %}
500
+
{% tab computer21 galactic %}
501
+
```warning
502
+
**ROS 2 Galactic is no longer supported.** Please consider upgrading to a newer release
503
+
```
504
+
505
+
There is currently no example for Galactic.
506
+
{% endtab %}
507
+
{% tab computer21 humble %}
517
508
From the robot configuration the robot server IDs and the ROS Domain ID are known, and from the robots themselves or the router the IP addresses are known. It is recommended that the robot IPs be reserved on the router so that they always remain the same and this process does not need to be repeated. Running the user computer configuration script as described above, would look as follows:
518
509
519
510
```
@@ -534,6 +525,27 @@ Configuring:
534
525
[sudo] password for cpr-1234:
535
526
Source your ~/.bashrc file to apply changes
536
527
```
528
+
{% endtab %}
529
+
{% tab computer21 jazzy %}
530
+
From the robot configuration the robot server IDs and the ROS Domain ID are known, and from the robots themselves or the router the IP addresses are known. It is recommended that the robot IPs be reserved on the router so that they always remain the same and this process does not need to be repeated. Running the user computer configuration script as described above, would look as follows:
537
531
532
+
```
533
+
ROS_DOMAIN_ID [0]: 0
534
+
Enter the information for the first discovery server
535
+
Discovery Server ID [0]: 0
536
+
Discovery Server IP: 192.168.131.5
537
+
Discovery Server Port [11811]:
538
+
Re-enter the last server (r), add another server (a), or done (d): a
539
+
Enter the information for the next discovery server
540
+
Discovery Server ID [0]: 1
541
+
Discovery Server IP: 192.168.131.6
542
+
Discovery Server Port [11811]:
543
+
Re-enter the last server (r), add another server (a), or done (d): d
Copy file name to clipboardexpand all lines: setup/simple_discovery.md
+22-27
Original file line number
Diff line number
Diff line change
@@ -18,11 +18,10 @@ To use the TurtleBot 4 with Simple Discovery, the Create® 3 should be connected
18
18
The Create® 3 can only be connected to 2.4 GHz Wi-Fi networks.
19
19
```
20
20
21
-
{% tabs wifi %}
22
-
{% tab wifi galactic %}
23
-
24
21
### Wi-Fi Setup
25
22
23
+
{% tabs wifi %}
24
+
{% tab wifi galactic %}
26
25
Access the [Create® 3 webserver](./basic.md#accessing-the-create-3-webserver), then navigate to the <b>Connect</b> tab.
27
26
Enter your Wi-Fi SSID and password, and then click 'Connect'. Wait for it to initiate the WiFi connection, and then play a "happy sound" to signal successful connection. This may take a couple minutes. Click on the <b>Connect</b> tab once again and it should now show an IP address if the connection was successful. If the light ring turns yellow during this process, it indicates an error in connection. See [the Create® 3 documentation](https://iroboteducation.github.io/create3_docs/hw/face/) to understand what the different light ring colors indicate.
28
27
@@ -34,22 +33,8 @@ If the Create® 3 is unable to connect to your 2.4 GHz WiFi network and the ligh
<figcaption>Connecting the Create® 3 to Wi-Fi</figcaption>
36
35
</figure>
37
-
38
-
### Application Configuration
39
-
40
-
Access the [Create® 3 webserver](./basic.md#accessing-the-create-3-webserver), then navigate to the <b>Application Configuration</b> tab.
41
-
Set ROS 2 Domain ID to 0, ROS 2 Namespace to an empty string, and RMW_IMPLEMENTATION to the [default](networking.md#dds) for your ROS 2 version. Additionally, make
42
-
sure that the Fast DDS discovery server is disabled.
<figcaption>Configuring the Create® 3 application for Galactic</figcaption>
47
-
</figure>
48
36
{% endtab %}
49
37
{% tab wifi humble %}
50
-
51
-
### Wi-Fi Setup
52
-
53
38
Access the [Create® 3 webserver](./basic.md#accessing-the-create-3-webserver), then navigate to the <b>Connect</b> tab.
54
39
Enter your Wi-Fi SSID and password, and then click 'Connect'. Wait for it to initiate the WiFi connection, and then play a "happy sound" to signal successful connection. This may take a couple minutes. Click on the <b>Connect</b> tab once again and it should now show an IP address if the connection was successful. If the light ring turns yellow during this process, it indicates an error in connection. See [the Create® 3 documentation](https://iroboteducation.github.io/create3_docs/hw/face/) to understand what the different light ring colors indicate.
55
40
@@ -61,9 +46,28 @@ If the Create® 3 is unable to connect to your 2.4 GHz WiFi network and the ligh
<figcaption>Connecting the Create® 3 to Wi-Fi</figcaption>
63
48
</figure>
49
+
{% endtab %}
50
+
{% tab wifi jazzy %}
51
+
The Create® 3 must _not_ be connected to Wifi when using ROS 2 Jazzy. All communication between the Raspberry Pi and the Create® 3 is done over the internal wired connection. The [`create3_republisher`](../software/create3.md#create-3-republisher) node ensures that all ROS 2 topics, services, and actions from the Create® 3 are accessible by other computers on the same wireless network.
52
+
53
+
To disconnect the Create® 3 from wi-fi, access the [Create® 3 webserver](./basic.md#accessing-the-create-3-webserver) and choose the "Forget wi-fi settings" item from the menu at the top of the screen.
54
+
{% endtab %}
55
+
{% endtabs %}
64
56
65
57
### Application Configuration
66
58
59
+
{% tabs application %}
60
+
{% tab application galactic %}
61
+
Access the [Create® 3 webserver](./basic.md#accessing-the-create-3-webserver), then navigate to the <b>Application Configuration</b> tab.
62
+
Set ROS 2 Domain ID to 0, ROS 2 Namespace to an empty string, and RMW_IMPLEMENTATION to the [default](networking.md#dds) for your ROS 2 version. Additionally, make
63
+
sure that the Fast DDS discovery server is disabled.
<figcaption>Configuring the Create® 3 application for Galactic</figcaption>
68
+
</figure>
69
+
{% endtab %}
70
+
{% tab application humble %}
67
71
Use the [`turtlebot4-setup`](../software/turtlebot4_setup.md) tool to configure the Create® 3. You can access the [Create® 3 webserver](./basic.md#accessing-the-create-3-webserver) and navigate to the <b>Application Configuration</b> tab to confirm the configuration as follows:
68
72
- ROS 2 Domain ID is `0`
69
73
- ROS 2 Namespace is empty
@@ -75,16 +79,7 @@ Use the [`turtlebot4-setup`](../software/turtlebot4_setup.md) tool to configure
75
79
<figcaption>Configuring the Create® 3 application for Humble</figcaption>
76
80
</figure>
77
81
{% endtab %}
78
-
{% tab wifi jazzy %}
79
-
80
-
### Wi-Fi Setup
81
-
82
-
The Create® 3 must _not_ be connected to Wifi when using ROS 2 Jazzy. All communication between the Raspberry Pi and the Create® 3 is done over the internal wired connection. The [`create3_republisher`](../software/create3.md#create-3-republisher) node ensures that all ROS 2 topics, services, and actions from the Create® 3 are accessible by other computers on the same wireless network.
83
-
84
-
To disconnect the Create® 3 from wi-fi, access the [Create® 3 webserver](./basic.md#accessing-the-create-3-webserver) and choose the "Forget wi-fi settings" item from the menu at the top of the screen.
85
-
86
-
### Application Configuration
87
-
82
+
{% tab application jazzy %}
88
83
Use the [`turtlebot4-setup`](../software/turtlebot4_setup.md) tool to configure the Create® 3. You can access the [Create® 3 webserver](./basic.md#accessing-the-create-3-webserver) and navigate to the <b>Application Configuration</b> tab to confirm the configuration as follows:
Copy file name to clipboardexpand all lines: software/create3.md
+23-15
Original file line number
Diff line number
Diff line change
@@ -108,21 +108,6 @@ See [irobot_create_msgs](https://github.com/iRobotEducation/irobot_create_msgs)
108
108
```note
109
109
When publishing or subscribing to topics, make sure that the [QoS](https://docs.ros.org/en/humble/Concepts/About-Quality-of-Service-Settings.html) that you use matches that of the topic.
110
110
```
111
-
112
-
## Create® 3 Republisher {#create-3-republisher}
113
-
114
-
In certain network configurations it is beneficial to isolate the Create® 3 from the remainder of the ROS 2 network traffic. The Create® 3 has limited resources and can be overwhelmed with too many topics to discover. The Create® 3 Republisher is used to achieve this. All communication to the Create® 3 is routed through the Raspberry Pi via the republished ROS 2 topics, action and services. This allows nodes to interact with the Create® 3 ROS 2 elements normally while only needing communication with the Raspberry Pi.
115
-
116
-
This is achieved by having the Create® 3 on its own unique namespace which is a combination of the robot namespace and `_do_not_use`. This results in all of its topics being hidden and indicates clearly that these topics, actions and services are not to be used directly by the user. The Create® 3 only communicates with the single Raspberry Pi that is present on the same robot. All of the Create® 3 topics, actions and services are then republished and relayed by the Raspberry Pi `create3_republisher` node with just the robot namespace so they are fully visible and available to the rest of the ROS 2 network. In order to interact with the Create® 3, any given node will interact with the topics, actions, and servers generated by the Raspberry Pi, and the republisher node on the Raspberry Pi will relay that information back to the Create® 3.
117
-
118
-
```note
119
-
The `_do_not_use` namespace, as the name suggests, should _not_ be used by any other nodes. The only place this namespace should ever be referenced is inside the configuration file for the `create3_republisher` node and within the Create® 3's application configuration.
120
-
121
-
All other ROS nodes, shell commands (e.g. `ros2 topic echo ...`) should use the republished topics, actions, and services.
122
-
```
123
-
124
-
In order to prevent overloading the system with too many topics, the number of topics, actions and services that are relayed through the republisher node are limited. The default list of topics, actions and services that are being relayed can be found in the [`create3_republisher` launch parameters](https://github.com/iRobotEducation/create3_examples/blob/humble/create3_republisher/bringup/params.yaml). To optimize the system, update this list to only include the necessary topics, actions and services that are needed.
125
-
126
111
{% endtab %}
127
112
{% tab create3 jazzy %}
128
113
@@ -174,9 +159,20 @@ See [irobot_create_msgs](https://github.com/iRobotEducation/irobot_create_msgs)
174
159
```note
175
160
When publishing or subscribing to topics, make sure that the [QoS](https://docs.ros.org/en/jazzy/Concepts/About-Quality-of-Service-Settings.html) that you use matches that of the topic.
176
161
```
162
+
{% endtab %}
163
+
{% endtabs %}
177
164
178
165
## Create® 3 Republisher {#create-3-republisher}
179
166
167
+
{% tabs republisher %}
168
+
{% tab republisher galactic %}
169
+
```warning
170
+
**ROS 2 Galactic is no longer supported.** Please consider upgrading to a newer release
171
+
```
172
+
173
+
Create® 3 Republisher is not available for ROS 2 Galactic.
174
+
{% endtab %}
175
+
{% tab republisher humble %}
180
176
By default, the Turtlebot 4 uses the `create3_republisher` node to isolate the Create® 3 from the remainder of the ROS 2 network traffic. This helps limit the network traffic that reaches the Create® 3 when it is connected to the wireless network, especially when multiple robots are connected. All ROS 2 traffic is routed via the Turtlebot 4's Raspberry Pi computer, and the `create3_republisher` node exposes the Create® 3's topics, services, and actions the robot's main namespace. This allows external workstations and other robots to interact with the robot via the Raspberry Pi's wireless connection.
181
177
182
178
The Create® 3's topics, services, and actions are all available inside a namespace called `_do_not_use`. This results in the topics being hidden, and clearly indicates that they should not be used directly by the user. The Create® 3 only communicates with the single Raspberry Pi that is present on the same robot. All of the Create® 3 topics, actions and services are then republished and relayed by the Raspberry Pi `create3_republisher` node with just the robot namespace so they are fully visible and available to the rest of the ROS 2 network. In order to interact with the Create® 3, any given node will interact with the topics, actions, and servers generated by the Raspberry Pi, and the republisher node on the Raspberry Pi will relay that information back to the Create® 3.
@@ -188,6 +184,18 @@ All other ROS nodes, shell commands (e.g. `ros2 topic echo ...`) should use the
188
184
```
189
185
190
186
In order to prevent overloading the system with too many topics, the number of topics, actions and services that are relayed through the republisher node are limited. The default list of topics, actions and services that are being relayed can be found in the [`create3_republisher` launch parameters](https://github.com/iRobotEducation/create3_examples/blob/jazzy/create3_republisher/bringup/params.yaml). To optimize the system, update this list to only include the necessary topics, actions and services that are needed.
187
+
{% endtab %}
188
+
{% tab republisher jazzy %}
189
+
In certain network configurations it is beneficial to isolate the Create® 3 from the remainder of the ROS 2 network traffic. The Create® 3 has limited resources and can be overwhelmed with too many topics to discover. The Create® 3 Republisher is used to achieve this. All communication to the Create® 3 is routed through the Raspberry Pi via the republished ROS 2 topics, action and services. This allows nodes to interact with the Create® 3 ROS 2 elements normally while only needing communication with the Raspberry Pi.
190
+
191
+
This is achieved by having the Create® 3 on its own unique namespace which is a combination of the robot namespace and `_do_not_use`. This results in all of its topics being hidden and indicates clearly that these topics, actions and services are not to be used directly by the user. The Create® 3 only communicates with the single Raspberry Pi that is present on the same robot. All of the Create® 3 topics, actions and services are then republished and relayed by the Raspberry Pi `create3_republisher` node with just the robot namespace so they are fully visible and available to the rest of the ROS 2 network. In order to interact with the Create® 3, any given node will interact with the topics, actions, and servers generated by the Raspberry Pi, and the republisher node on the Raspberry Pi will relay that information back to the Create® 3.
192
+
193
+
```note
194
+
The `_do_not_use` namespace, as the name suggests, should _not_ be used by any other nodes. The only place this namespace should ever be referenced is inside the configuration file for the `create3_republisher` node and within the Create® 3's application configuration.
191
195
196
+
All other ROS nodes, shell commands (e.g. `ros2 topic echo ...`) should use the republished topics, actions, and services.
197
+
```
198
+
199
+
In order to prevent overloading the system with too many topics, the number of topics, actions and services that are relayed through the republisher node are limited. The default list of topics, actions and services that are being relayed can be found in the [`create3_republisher` launch parameters](https://github.com/iRobotEducation/create3_examples/blob/humble/create3_republisher/bringup/params.yaml). To optimize the system, update this list to only include the necessary topics, actions and services that are needed.
0 commit comments