Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove nested section titles #29

Merged
merged 3 commits into from
Jan 16, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 56 additions & 44 deletions setup/discovery_server.md
Original file line number Diff line number Diff line change
Expand Up @@ -339,30 +339,49 @@ You may also need to call `ros2 topic list` twice to get a full list of topics.

## Example Configuration

### 2 Robots and 1 User Computer

#### Recommended Architecture

{% tabs discovery %}
{% tab discovery galactic %}
```warning
**ROS 2 Galactic is no longer supported.** Please consider upgrading to a newer release
```

There is currently no example for Galactic.

{% endtab %}
{% tab discovery humble %}
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`.

### 2 Robots and 1 User Computer
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.

#### Recommended Architecture
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.

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.
{% endtab %}
{% tab discovery jazzy %}
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`.

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.

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.

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.
{% endtab %}
{% endtabs %}

#### Example Robot Setup

{% tabs example21 %}
{% tab example21 galactic %}
```warning
**ROS 2 Galactic is no longer supported.** Please consider upgrading to a newer release
```

There is currently no example for Galactic.
{% endtab %}
{% tab example21 humble %}
<table>
<tr style="text-align:center">
<th>Robot 1</th>
Expand Down Expand Up @@ -417,46 +436,8 @@ Although one could run another discovery server on the user computer, this would
</td>
</tr>
</table>


#### Example User Computer Setup
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:

```
ROS_DOMAIN_ID [0]: 0
Enter the information for the first discovery server
Discovery Server ID [0]: 0
Discovery Server IP: 192.168.131.5
Discovery Server Port [11811]:
Re-enter the last server (r), add another server (a), or done (d): a
Enter the information for the next discovery server
Discovery Server ID [0]: 1
Discovery Server IP: 192.168.131.6
Discovery Server Port [11811]:
Re-enter the last server (r), add another server (a), or done (d): d
Configuring:
ROS_DOMAIN_ID=0
ROS_DISCOVERY_SERVER="192.168.131.5:11811;192.168.131.6:11811;"
[sudo] password for cpr-1234:
Source your ~/.bashrc file to apply changes
```

{% endtab %}
{% tab discovery jazzy %}

### 2 Robots and 1 User Computer

#### Recommended Architecture
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`.

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.

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.

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.

#### Example Robot Setup

{% tab example21 jazzy %}
<table>
<tr style="text-align:center">
<th>Robot 1</th>
Expand Down Expand Up @@ -511,9 +492,19 @@ Although one could run another discovery server on the user computer, this would
</td>
</tr>
</table>

{% endtab %}
{% endtabs %}

#### Example User Computer Setup
{% tabs computer21 %}
{% tab computer21 galactic %}
```warning
**ROS 2 Galactic is no longer supported.** Please consider upgrading to a newer release
```

There is currently no example for Galactic.
{% endtab %}
{% tab computer21 humble %}
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:

```
Expand All @@ -534,6 +525,27 @@ Configuring:
[sudo] password for cpr-1234:
Source your ~/.bashrc file to apply changes
```
{% endtab %}
{% tab computer21 jazzy %}
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:

```
ROS_DOMAIN_ID [0]: 0
Enter the information for the first discovery server
Discovery Server ID [0]: 0
Discovery Server IP: 192.168.131.5
Discovery Server Port [11811]:
Re-enter the last server (r), add another server (a), or done (d): a
Enter the information for the next discovery server
Discovery Server ID [0]: 1
Discovery Server IP: 192.168.131.6
Discovery Server Port [11811]:
Re-enter the last server (r), add another server (a), or done (d): d
Configuring:
ROS_DOMAIN_ID=0
ROS_DISCOVERY_SERVER="192.168.131.5:11811;192.168.131.6:11811;"
[sudo] password for cpr-1234:
Source your ~/.bashrc file to apply changes
```
{% endtab %}
{% endtabs %}
{% endtabs %}
49 changes: 22 additions & 27 deletions setup/simple_discovery.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,10 @@ To use the TurtleBot 4 with Simple Discovery, the Create® 3 should be connected
The Create® 3 can only be connected to 2.4 GHz Wi-Fi networks.
```

{% tabs wifi %}
{% tab wifi galactic %}

### Wi-Fi Setup

{% tabs wifi %}
{% tab wifi galactic %}
Access the [Create® 3 webserver](./basic.md#accessing-the-create-3-webserver), then navigate to the <b>Connect</b> tab.
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.

Expand All @@ -34,22 +33,8 @@ If the Create® 3 is unable to connect to your 2.4 GHz WiFi network and the ligh
<img src="media/create3_connect.png" alt="Create® 3 connect" style="width: 100%"/>
<figcaption>Connecting the Create® 3 to Wi-Fi</figcaption>
</figure>

### Application Configuration

Access the [Create® 3 webserver](./basic.md#accessing-the-create-3-webserver), then navigate to the <b>Application Configuration</b> tab.
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
sure that the Fast DDS discovery server is disabled.

<figure class="aligncenter">
<img src="media/webserver_config.png" alt="Create® 3 config" style="width: 80%"/>
<figcaption>Configuring the Create® 3 application for Galactic</figcaption>
</figure>
{% endtab %}
{% tab wifi humble %}

### Wi-Fi Setup

Access the [Create® 3 webserver](./basic.md#accessing-the-create-3-webserver), then navigate to the <b>Connect</b> tab.
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.

Expand All @@ -61,9 +46,28 @@ If the Create® 3 is unable to connect to your 2.4 GHz WiFi network and the ligh
<img src="media/create3_connect.png" alt="Create® 3 connect" style="width: 100%"/>
<figcaption>Connecting the Create® 3 to Wi-Fi</figcaption>
</figure>
{% endtab %}
{% tab wifi jazzy %}
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.

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.
{% endtab %}
{% endtabs %}

### Application Configuration

{% tabs application %}
{% tab application galactic %}
Access the [Create® 3 webserver](./basic.md#accessing-the-create-3-webserver), then navigate to the <b>Application Configuration</b> tab.
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
sure that the Fast DDS discovery server is disabled.

<figure class="aligncenter">
<img src="media/webserver_config.png" alt="Create® 3 config" style="width: 80%"/>
<figcaption>Configuring the Create® 3 application for Galactic</figcaption>
</figure>
{% endtab %}
{% tab application humble %}
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:
- ROS 2 Domain ID is `0`
- ROS 2 Namespace is empty
Expand All @@ -75,16 +79,7 @@ Use the [`turtlebot4-setup`](../software/turtlebot4_setup.md) tool to configure
<figcaption>Configuring the Create® 3 application for Humble</figcaption>
</figure>
{% endtab %}
{% tab wifi jazzy %}

### Wi-Fi Setup

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.

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.

### Application Configuration

{% tab application jazzy %}
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:
- ROS 2 Domain ID is `0`
- ROS 2 Namespace is `/_do_not_use`
Expand Down
Loading