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

Add new Jazzy yaml parameters to documentation #294

Open
wants to merge 9 commits into
base: development
Choose a base branch
from
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 36 additions & 0 deletions docs/components/yaml/attachments/a200/observer_backpack.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<table>
<tr>
<td>
<center>
<figure>
<img src={require("./img/observer_backpack.png").default} width="250"/>
</figure>
</center>
</td>
<td>

```yaml
platform:
attachments:
- name: observer_backpack
type: a200.observer_backpack
model: observer_backpack
parent: default_mount
xyz: [0.0, 0.0, 0.0]
rpy: [0.0, 0.0, 0.0]
enabled: true
```
</td>
</tr>
</table>

The `observer_backpack` has the following mounts for attaching sensors, antennas, and other
accessories:
- `${name}_center_mount
- `${name}_center_lidar_mount
- `${name}_front_lidar_mount
- `${name}_rear_lidar_mount
- `${name}_front_realsense_mount
- `${name}_rear_realsense_mount
- `${name}_left_antenna_mount
- `${name}_right_antenna_mount
6 changes: 6 additions & 0 deletions docs/ros/config/yaml/platform/attachments/a200.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import A200SensorArch510 from "/docs_versioned_docs/version-ros2humble/component
import A200TopPlateDefault from "/docs_versioned_docs/version-ros2humble/components/yaml/attachments/a200/top_plate_default.mdx";
import A200TopPlateLarge from "/docs_versioned_docs/version-ros2humble/components/yaml/attachments/a200/top_plate_large.mdx";
import A200TopPlatePACS from "/docs_versioned_docs/version-ros2humble/components/yaml/attachments/a200/top_plate_pacs.mdx";
import A200ObserverBackpack from "/docs/components/yaml/attachments/a200/observer_backpack.mdx";

## Bumper
The A200 can have bumpers of a variable length. By setting the `extension` parameter, the bumper can be extended if required.
Expand All @@ -33,6 +34,11 @@ The **large** top plate does not have a user rail and is primarily used to mount
<A200TopPlateLarge/>
<br/>

#### Observer Backpack
The Observer backpack is a large enclosure with multiple mounting locations for additional sensors. It is used by the [Husky Observer](https://docs.clearpathrobotics.com/docs/robots/solutions/husky_observer/).
<A200ObserverBackpack/>
<br/>

#### PACS
The **pacs** top plate does not have a user rail. It has an opening to access the user bay within the chassis. It comes with the grid of mounting holes of the PACS™ **80mm x 80mm** grid.
<A200TopPlatePACS/>
Expand Down
4 changes: 4 additions & 0 deletions docs/ros/config/yaml/platform/battery.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,17 @@ For systems without a BMS, the state of charge should be treated as a rough esti
|:-:|:-:|:-:|:-:|:-:|
| `ES20_12C` | Lead Acid | 12.0 | 20.0 | S2P1 |
| `HE2613` | Lithium Ion | 25.9 | 12.8 | S1P3<br/>S1P4 |
| `HE2411` | Lithium Ion | 25.3 | 11.6 | S1P3<br/>S1P4 |
| `HE2410` | Lithium Ion | 25.3 | 9.8 | S1P3<br/>S1P4 |

</TabItem>
<TabItem value="J100" label="J100">

| Battery | Chemistry | Nominal Voltage (V) | Capacity (Ah) | Configurations |
|:-:|:-:|:-:|:-:|:-:|
| `HE2613` | Lithium Ion | 25.9 | 12.8 | S1P1 |
| `HE2411` | Lithium Ion | 25.3 | 11.6 | S1P1 |
| `HE2410` | Lithium Ion | 25.3 | 9.8 | S1P1 |

</TabItem>
<TabItem value="W200" label="W200">
Expand Down
10 changes: 6 additions & 4 deletions docs/ros/config/yaml/platform/controller.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@ toc_min_heading_level: 2
toc_max_heading_level: 5
---

We support two types of controllers on all platforms:
- **ps4**: standard Playstation4 controller.
- **logitech**: Logitech F710
We support the following types of controllers on all platforms:
- **ps4**: standard Playstation4 controller (bluetooth).
- **ps5**: standard Playstation5 controller (bluetooth).
- **logitech**: Logitech F710 (USB dongle).
- **xbox**: Xbox controller (bluetooth).

Switching between each is done by setting the `controller` parameter under the `platform` tag.

```yaml
controller: ps4 # or logitech
controller: ps4 # one of ps4, ps4, logitech, xbox
```
25 changes: 25 additions & 0 deletions docs/ros/config/yaml/platform/ekf.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: Enable/Disable EKF
sidebar_label: Enable EKF
sidebar_position: 5
toc_min_heading_level: 2
toc_max_heading_level: 5
---

import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";

By default, all Clearpath platforms launch an [EKF node](https://index.ros.org/p/robot_localization)
as part of its localization stack. Some applications may want to use their own localization node,
in which case the default EKF node can be disabled.

| Key | Value / Datatype | Description |
|:---:| :--------------: | ----------- |
| enable_ekf | boolean | Enables or disables the default EKF node. Default: `true` |

For example, to disable the EKF node:

```yaml
platform:
enable_ekf: false
```
2 changes: 1 addition & 1 deletion docs/ros/config/yaml/platform/extras.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Extras
sidebar_label: Extras
sidebar_position: 5
sidebar_position: 6
toc_min_heading_level: 2
toc_max_heading_level: 5
---
Expand Down
29 changes: 24 additions & 5 deletions docs/ros/config/yaml/system.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ services must be reinstalled as directed in the [software installation instructi

The **hosts** section serves as a way to match hostnames to IP addresses. By default, Clearpath robots use the serial number as
the hostname and have a default IP of `192.168.131.1`. This section must define ip addresses for all hostnames that appear in
the remainder of the `robot.yaml` file.
the remainder of the `robot.yaml` file.

For example:

Expand Down Expand Up @@ -57,12 +57,20 @@ ros2:
The **middleware** section defines the which RMW Implementation to use and any related settings. To choose
which implementation and discovery method is right for your project see [networking](../../networking/ros2-networking.mdx).

:::note

All platforms can use `rmw_fastrtps_cpp`.

Currently only the Husky A200 can use `rmw_zenoh_cpp`. Attempting to use Zenoh on any other platform will result in an error when processing `robot.yaml`.

:::

| Key | Value / Datatype | Description |
|:---:| :--------------: | ----------- |
| **implementation** | `rmw_fastrtps_cpp` | Declares the RMW Implementation to use. Currently only supports `rmw_fastrtps_cpp`. |
| **discovery** | `simple` or `server` | Select `simple` for simple discovery and `server` for discovery server. (Defaults to `simple`) |
| **profile** | string | Advanced feature, allows an optional custom XML profile to be provided - RMW Implementation / vendor specific. |
| **servers** | list | Provides a list of all discovery servers in the system and whether or not the robot should connect to them. |
| **implementation** | `rmw_fastrtps_cpp` | Declares the RMW Implementation to use. Currently only supports `rmw_fastrtps_cpp` and `rmw_zenoh_cpp`. |
| **discovery** | `simple` or `server` | Select `simple` for simple discovery and `server` for discovery server. (Defaults to `simple`. Ignored if `implementation` is not `rmw_fastrtps_cpp`.) |
| **profile** | string | Advanced feature, allows an optional custom profile to be provided - RMW Implementation / vendor specific. |
| **servers** | list | Provides a list of all discovery servers in the system and whether or not the robot should connect to them. Ignored if `implementation` is not `rmw_fastrtps_cpp`.|

For example:

Expand All @@ -75,6 +83,17 @@ middleware:
- hostname: cpr-a200-0000
```

Second example, using Zenoh:

```yaml
middleware:
implementation: rmw_zenoh_cpp
profile: /path/to/router_configuration.json5

servers: # This section is described further below
- hostname: cpr-a200-0000
```

#### Servers

This section is only used with eProsima Fast DDS Discovery Server (`implementation: rmw_fastrtps_cpp` and `discovery: server`).
Expand Down
18 changes: 0 additions & 18 deletions docs/ros/installation/controller.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -20,24 +20,6 @@ If your robot comes with a PS4 controller, it will be paired already. Simply tur

To re-pair the PS4 controller or pair a new PS4 controller:

1. Install the python3-ds4drv package if it is not installed already. In terminal, run:

```
sudo apt-get install python3-ds4drv
```

2. Put the controller in pairing mode. Press and hold the PS and Share buttons on your controller until
the LED begins rapidly flashing white.
3. Run the `ds4drv-pair` script to pair the controller to the computer. In terminal, run:

```
sudo ds4drv-pair
```

This script will scan for nearby Bluetooth devices, and pair automatically to the controller.

Alternatively, if ds4drv-pair fails to detect the controller, you can pair the controller using `bluetoothctl`:

1. Install the `bluez` package if it is not installed already. In terminal, run:

```
Expand Down
29 changes: 26 additions & 3 deletions docs/ros/networking/ros2-networking.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ There are multiple different ways to configure discovery server depending on whi
This section will go over some basic configurations and is generalized for use as an introduction. It does not
describe all possible configurations. The `ROS_DISCOVERY_SERVER` environment variable, shown in the various diagrams,
indicates which discovery servers a given robot is connected to. Additionally, communication will be referred to
in terms of seeing ROS 2 topics although this is representative of all nodes, topics, action servers, and so on.
in terms of seeing ROS 2 topics although this is representative of all nodes, topics, action servers, and so on.

:::note

Expand Down Expand Up @@ -231,12 +231,35 @@ the discovery servers and all of the ones that the offboard computer should be c
To generate the launch script:

```
source /opt/ros/humble/setup.bash
source /opt/ros/jazzy/setup.bash
ros2 run clearpath_generator_common generate_discovery_server -s ~/clearpath
```

To launch the server

```
bash -e ~/clearpath/discovery-server-start
bash -e ~/clearpath/discovery-server-start
```


## Zenoh Router

In early 2025 a new ROS middleware implementation called **Zenoh** was released. For a
detailed description of Zenoh, please refer to [Zenoh's design document](https://github.com/ros2/rmw_zenoh/blob/rolling/docs/design.md).

Zenoh is only available on ROS 2 Jazzy and later; it cannot be used on ROS 2 Humble.

### Starting the Zenoh Router

To manually launch the Zenoh router run

```bash
bash -e ~/clearpath/zenoh-router-start
```

This process can also be daemonized and launched via the `systemctl` command:

```bash
source /opt/ros/jazzy/setup.bash
sudo systemctl start clearpath-zenoh-router
```
Loading