Thank you for your time in contributing to our autonomous racer. Please take a minute to review this contributing guide before you start.
We generally recommend these steps as prerequisites before you start to contribute to the project.
- ROS2 development experience or completion of the qualification task,
- Modern C++ and/or Python,
- Source control (git),
- Linux (Ubuntu) and Docker.
Read the README for the basic info of the project.
Set up an X86 workstation with Ubuntu 20.04 (or VM), or WSL2 (with Docker Windows Desktop).
Install the following packages:
- ROS2 Galactic,
- Docker,
- Your favourite code editor (Visual Studio Code / CLion / Atom / Vim).
src: all source files;docs: general usage documentations (package specific docs are stored in each package);tools: runtime and post-runtime utilities for data parsing, analyzing and visualization;docker: scripts and docker files for development and deployment.
main branch is protected by one peer code review in the pull request.
To develop a new package, or work on a bug fix:
- If you are a Triton AI member, ask to be added to the GitHub team and clone the repository. If not, fork it.
- Checkout a new branch with naming convention like
tom/feature/new_pkgorjerry/bugfix/old_pkg. - Work on your code. When you finish, rebase your code onto
mainto catch up with the changes. - Submit a pull request (PR). Assign your self to the PR and request review from one of your peer developers.
- Communicate over the PR and LGTM.
- Think twice before reinventing the wheel.
- Create your package under the appropriate subfolder under
src. - Use
paraminstead ofconfigfolder for storing param files. - Have a
design.mdor adesignfolder that contains documentation explaining- Purpose of your package,
- Publishers and subscribers,
- Configurable params,
- Services and actions,
- Inner-working, algorithm, etc.
- Use
ament_cmake_autoinstead ofament_cmaketo manage dependencies inCMakeList.txt. - Prioritize C++ over Python especially in production and real-time safety-critical nodes.