Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
3b11c66
Bump prettier from 3.9.4 to 3.9.5 (#652)
dependabot[bot] Jul 15, 2026
cb7841b
Bump actions/setup-node from 6 to 7 (#648)
dependabot[bot] Jul 15, 2026
e6daa74
Bump websocket-driver from 0.7.4 to 0.7.5 (#658)
dependabot[bot] Jul 16, 2026
5f10128
Bump js-yaml from 3.14.2 to 3.15.0 (#657)
dependabot[bot] Jul 16, 2026
6f5a572
Bump prettier from 3.9.5 to 3.9.6 (#661)
dependabot[bot] Jul 22, 2026
1fcc476
Bump svgo from 3.3.3 to 3.3.4 (#666)
dependabot[bot] Jul 22, 2026
a3d0b0b
Bump shell-quote from 1.8.4 to 1.10.0 (#663)
dependabot[bot] Jul 22, 2026
172efbe
Bump dompurify from 3.4.11 to 3.4.12 (#667)
dependabot[bot] Jul 23, 2026
3321216
Bump fast-uri from 3.1.2 to 3.1.4 (#664)
dependabot[bot] Jul 23, 2026
1ffe8e5
Bump webpack-dev-server from 5.2.5 to 5.2.6 (#662)
dependabot[bot] Jul 23, 2026
221b5f4
Bump body-parser from 1.20.5 to 1.20.6 (#665)
dependabot[bot] Jul 23, 2026
aa8f2da
Added support for A300 witn indoor tires. (#659)
tonybaltovski Jul 24, 2026
0ca2e16
Added the Flir PTU-5 as a supported sensor. (#668)
tonybaltovski Jul 30, 2026
5e866c8
Fixed broken links to Overview. (#670)
tonybaltovski Jul 30, 2026
54d70a3
Bump postcss from 8.5.15 to 8.5.25 (#671)
dependabot[bot] Aug 4, 2026
ce1ef36
Bump brace-expansion from 1.1.13 to 1.1.18 (#672)
dependabot[bot] Aug 4, 2026
fe3a5f0
Bump fast-uri from 3.1.4 to 3.1.5 (#673)
dependabot[bot] Aug 4, 2026
02a649b
Updated EKF note to explain additional sensors. (#675)
tonybaltovski Aug 7, 2026
f0f8771
Bump mermaid from 11.15.0 to 11.16.1 (#679)
dependabot[bot] Aug 10, 2026
db40208
Bump dompurify from 3.4.12 to 3.4.13 (#680)
dependabot[bot] Aug 10, 2026
ee7e65e
Bump js-yaml from 3.15.0 to 3.15.1 (#681)
dependabot[bot] Aug 10, 2026
4573867
Added devcontainer. (#676)
tonybaltovski Aug 12, 2026
5321583
Added Mark to the codeowners. (#678)
tonybaltovski Aug 12, 2026
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
36 changes: 36 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
// Display name shown in the VS Code "Reopen in Container" UI.
"name": "cpr-documentation",
// Prebuilt Microsoft dev container image with Node.js 22 and common tooling.
"image": "mcr.microsoft.com/devcontainers/javascript-node:22",
// Expose the Docusaurus dev/serve port to the host.
"forwardPorts": [3000],
"portsAttributes": {
"3000": {
// Friendly name and auto-open a preview when the port becomes available.
"label": "Docusaurus site",
"onAutoForward": "openPreview"
}
},
// node_modules/build are created as root by the base image before the
// container user is added; hand ownership back to `node` before installing.
"onCreateCommand": "sudo chown -R node:node /workspaces/cpr-documentation",
// Install dependencies from the lockfile and produce a production build.
"postCreateCommand": "npm ci && npm run build",
// Re-assert ownership on each start in case a volume reset root ownership.
"postStartCommand": "sudo chown -R node:node /workspaces/cpr-documentation",
// runs in VS Code's integrated terminal, which stays open for the container's lifetime, keeping the server alive
"postAttachCommand": "npm run serve -- --host 0.0.0.0",
// Run as the non-root `node` user provided by the base image.
"remoteUser": "node",
"customizations": {
"vscode": {
// Extensions auto-installed in the container for a consistent dev setup.
"extensions": [
"esbenp.prettier-vscode", // Prettier code formatter
"streetsidesoftware.code-spell-checker", // Spell checking for docs
"dbaeumer.vscode-eslint" // ESLint integration
]
}
}
}
2 changes: 1 addition & 1 deletion .github/workflows/node.js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
steps:
- uses: actions/checkout@v7
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6
uses: actions/setup-node@v7
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
Expand Down
2 changes: 1 addition & 1 deletion CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# Default all changes will request review from:
* @jmastrangelo-cpr @jhiggins-cpr @tonybaltovski @luis-camero
* @jmastrangelo-cpr @jhiggins-cpr @tonybaltovski @luis-camero @mibrahim-cpr
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,23 @@ The source files in this repository are built and deployed as docs.clearpathrobo
4. _Full list detailed in the file `./package.json` as dependencies and devDependencies_


<br/>

## Run locally with a Dev Container (recommended)

This repository provides a [Dev Container](https://containers.dev/) for a fully configured, reproducible development environment.

1. Install [Docker](https://www.docker.com/) and the _Dev Containers_ VS Code extension.
2. Clone this repository,

git clone https://github.com/clearpathrobotics/cpr-documentation.git

3. Open the folder in VS Code and select **Reopen in Container**.

The container automatically provisions Node.js, the recommended extensions, and all project dependencies, then serves the site on port 3000.
When using the Dev Container, you can skip the manual setup below.


<br/>

## Steps to run this on your computer locally:
Expand Down
12 changes: 12 additions & 0 deletions components/supported_sensors.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,12 @@ Debian drivers are automatically installed on robots as part of the
| [Luxonis OAK-D](/docs_robots/accessories/sensors/cameras/luxonis_oakd) | Debian | Debian | [depthai-ros](https://github.com/luxonis/depthai-ros.git) |
| [Stereolabs Zed 2](/docs_robots/accessories/sensors/cameras/stereolabs_zed_2) | Source | Source | [zed-ros2-wrapper](https://github.com/stereolabs/zed-ros2-wrapper.git) |

### Pan-Tilt Units

| Sensor | `amd64` | `arm64` | Source |
|:------------------------------------------------------------------------------------ |:--------|:--------|:----------------------------------------------------- |
| [FLIR PTU-5](/docs/ros/config/yaml/sensors/ptu#flir-ptu) | Debian | Debian | [flir_ptu](https://github.com/ros-drivers/flir_ptu) |

</TabItem>
<TabItem value="jazzy" label="ROS 2 Jazzy">

Expand Down Expand Up @@ -153,5 +159,11 @@ Debian drivers are automatically installed on robots as part of the
| [Luxonis OAK-D](/docs_robots/accessories/sensors/cameras/luxonis_oakd) | Debian | Debian | [depthai-ros](https://github.com/luxonis/depthai-ros.git) |
| [Stereolabs Zed 2](/docs_robots/accessories/sensors/cameras/stereolabs_zed_2) | Source | Source | [zed-ros2-wrapper](https://github.com/stereolabs/zed-ros2-wrapper.git) |

### Pan-Tilt Units

| Sensor | `amd64` | `arm64` | Source |
|:------------------------------------------------------------------------------------ |:--------|:--------|:----------------------------------------------------- |
| [FLIR PTU-5](/docs/ros/config/yaml/sensors/ptu#flir-ptu) | Debian | Debian | [flir_ptu](https://github.com/ros-drivers/flir_ptu) |

</TabItem>
</Tabs>
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ to the entire robot system, allowing robot builders and users to quickly and eas

The `robot.yaml` is composed of five major sections:
1. [**system**](./system.mdx) level information such as the robot's hostname, IP, and ROS middleware implementation.
2. [**platform**](./platform/overview) level configurations such as robot specific mounting structures and parameters.
2. [**platform**](./platform/overview.mdx) level configurations such as robot specific mounting structures and parameters.
3. [**links**](./links.mdx) of standard URDF primitives such as boxes, cylinders, and meshes.
4. [**mounts**](./mounts.mdx) are predefined, generic, sensor mounting structures.
5. [**sensors**](./sensors/overview) are selected from an inventory of Clearpath supported sensors.
5. [**sensors**](./sensors/overview.mdx) are selected from an inventory of Clearpath supported sensors.

Additionally, there are two other, required parameters:

Expand All @@ -53,10 +53,10 @@ You can also skip to each section to get an explanation of each part of the samp

1. [**Serial Number Sample**](./serial.mdx#sample)
2. [**System Sample**](./system.mdx#sample)
3. [**Platform Sample**](./platform/overview#sample)
3. [**Platform Sample**](./platform/overview.mdx#sample)
4. [**Links Sample**](./links.mdx#sample)
5. [**Mounts Sample**](./mounts.mdx#sample)
6. [**Sensors Sample**](./sensors/overview#sample)
6. [**Sensors Sample**](./sensors/overview.mdx#sample)

<details>
<summary>Sample A200 YAML</summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ drivetrain:
control: diff_rwd
wheels:
front: caster
rear: outdoor
rear: indoor
```
</TabItem>
</Tabs>
Expand All @@ -83,7 +83,7 @@ Not all configurations are valid. For example, an `omni_4wd` controller must be
| Platform | Control | Front Wheels | Rear Wheels |
| :------: | :-------------------------------------------------------------: | :----------------------------------------: | :----------------------------------------: |
| A200 | [`diff_4wd`] | [`outdoor`] <br/> `indoor` | [`outdoor`] <br/> `indoor` |
| A300 | [`diff_4wd`] <br/> `diff_fwd` <br/> `diff_rwd` <br/> `omni_4wd` | [`outdoor`] <br/> `mecanum` <br/> `caster` | [`outdoor`] <br/> `mecanum` <br/> `caster` |
| A300 | [`diff_4wd`] <br/> `diff_fwd` <br/> `diff_rwd` <br/> `omni_4wd` | [`outdoor`] <br/> `indoor` <br/> `mecanum` <br/> `caster` | [`outdoor`] <br/> `indoor` <br/> `mecanum` <br/> `caster` |
| J100 | [`diff_4wd`] | [`outdoor`] | [`outdoor`] |
| W200 | [`diff_4wd`] | [`outdoor`] <br/> `tracks` | [`outdoor`] <br/> `tracks` |
| DD100 | [`diff_fwd`] | [`indoor`] | [`caster`] |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,55 @@ For example, to disable the EKF node:
```yaml
platform:
enable_ekf: false
```

## Adding Sensors to the EKF

By default, the EKF node (`ekf_node`) automatically fuses the platform's wheel odometry with any
IMU or GPS-with-IMU sensor defined under [`sensors`](../sensors/overview.mdx). Rather than disabling this, additional
sources can be added, such as an extra odometry or pose topic, use the
[`extras.ros_parameters`](extras#ros-parameters) field in `robot.yaml` to pass in
[`robot_localization`](https://index.ros.org/p/robot_localization) parameters directly to the
`ekf_node`.

:::caution

Setting `extras.ros_parameters.ekf_node` completely replaces the automatically generated fusion
parameters, it does not merge with them. If you add your own `ekf_node` entry, you must also
re-declare the `odom0`/`imu0`/`pose0` inputs for any Clearpath-managed sensors you still want fused.

:::

For example, to additionally fuse an external pose source published on `external_pose/data`:

```yaml
platform:
extras:
ros_parameters:
ekf_node:
odom0: platform/odom
odom0_config: [true, true, false,
false, false, true,
true, true, false,
false, false, true,
false, false, false]
odom0_differential: false
odom0_queue_size: 10
imu0: sensors/imu_0/data
imu0_config: [false, false, false,
false, false, false,
false, false, false,
true, true, true,
true, false, false]
imu0_differential: false
imu0_queue_size: 10
imu0_remove_gravitational_acceleration: true
pose0: external_pose/data
pose0_config: [true, true, true,
true, true, true,
false, false, false,
false, false, false,
false, false, false]
pose0_differential: false
pose0_queue_size: 10
```
Loading