Contributing
The Clearpath Community Demos repository is community-driven — we welcome new demos, improvements, bug fixes, and documentation updates from anyone using a Clearpath platform.
How to contribute a new demo
- Fork the repository.
- Add your demo source code under
demos/<your_demo_name>/as a self-contained ROS 2 package (or set of packages). - Include an example
robot.yaml— provide a working Clearpath robot configuration that the demo was tested against underdemos/<your_demo_name>/config/robot.yaml. This is theclearpath_configfile describing the platform, sensors, and any payloads the demo expects. Reviewers and other users need this to reproduce your setup. Document any parts that must be edited (serial numbers, IPs, namespaces) in a comment at the top of the file. - Add a documentation page under
demos_docs/<your_demo_name>.mdfollowing the pattern of the existing demos. Include:- A short description.
- Supported platform(s).
- Prerequisites.
- How to launch and what to expect.
- A link to the example
robot.yamland any required edits.
- Open a pull request against
main.
Code style
This repository uses pre-commit to run style and lint checks both locally and in CI. Install the hooks before committing:
python3 -m venv venv
. venv/bin/activate
pip install pre-commit
pre-commit install # in the top-level dir of the repo
The configured hooks include:
- Python —
rufffor linting and formatting (config in.ruff.toml). - C / C++ —
clang-format(config in.clang-format). Demos using C++ should useament_cmakeand enableament_lint_autoin theirCMakeLists.txt, mirroring thehello_clearpathexample. - Spell checking —
cspell; add new project-specific words to.cspell.jsonwhen needed. - GitHub Actions —
actionlintvalidates the workflow files. - Generic — trailing whitespace, end-of-file newlines, merge-conflict markers, leaked credentials, and similar checks.
Other guidelines:
- Follow the ROS 2 Developer Guide conventions.
- Python demos use
ament_python; C++ demos useament_cmake. Keep packages self-contained — avoid cross-dependencies between demos. - Pin or document the ROS 2 distribution(s) and Clearpath software version(s) you tested against.
License
By contributing, you agree that your contributions will be licensed under the Apache License 2.0 that covers this repository.
Disclaimer
Demos in this repository are provided as-is by the community. They are not officially supported by Clearpath Robotics, by Rockwell Automation. Always review code before running it on hardware, and be mindful of safety when operating real robots.