Skip to content

Commit

Permalink
Add new Jazzy yaml parameters to documentation (#294)
Browse files Browse the repository at this point in the history
* Add the newly-supported controllers to the yaml docs

* Add Zenoh docs to system yaml

* Add basic zenoh docs, re-insert newlines around code blocks

* Add a new page for the platform/enable_ekf feature

* Add HE2411 and HE2410 batteries

* Add observer backpack attachment

* Add a note that Zenoh only works on A200 for now

* Hopefully fix path to A200 observer backpack

* Remove ds4drv instructions; this package is no longer used in Jazzy

* Revert "Remove ds4drv instructions; this package is no longer used in Jazzy"

This reverts commit 9d85901.

* Add missing '`' characters to close code tags. Built docs locally, didn't see any of the errors from CI
  • Loading branch information
civerachb-cpr authored Jan 27, 2025
1 parent 24e4f80 commit 850f274
Show file tree
Hide file tree
Showing 9 changed files with 127 additions and 12 deletions.
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
27 changes: 23 additions & 4 deletions docs/ros/config/yaml/system.mdx
Original file line number Diff line number Diff line change
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 [ROS 2 Discovery Configuration](../../networking/ros2_discovery_config.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
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
```

0 comments on commit 850f274

Please sign in to comment.