Repository Summary
Description | A high-performance runtime framework for modern robotics. |
Checkout URI | https://github.com/aimrt/aimrt.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-04-11 |
Dev Status | UNKNOWN |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | robotics cpp20 |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
ros2_plugin_proto | 0.1.0 |
aimrt_msgs | 0.1.0 |
example_ros2 | 0.1.0 |
README
English | 中文 |
AimRT
Full project details on aimrt.org。
Brief
- AimRT is a basic runtime framework for the field of modern robotics. It is developed based on modern C++, is lightweight and easy to deploy, and has more modern designs in resource management and control, asynchronous programming, deployment configuration, etc.
- AimRT is committed to integrating the research and development of various deployment scenarios such as robot end-side, edge end, and cloud. It serves modern AI- and cloud-based robot applications and provides modern and complete debugging and performance analysis tools, as well as good observability support.
- AimRT also provides a comprehensive plug-in development interface, which is highly scalable and compatible with ROS2, HTTP, Grpc and other traditional robot ecosystems or cloud service ecosystems, and supports progressive upgrades of your existing systems.
Document
CONTRIBUTING
English | 中文 |
How to Contribute
Thank you for your interest and support in AimRT!
We welcome and appreciate any form of contribution, including but not limited to submitting issues, providing improvement suggestions, improving documentation, fixing bugs, and adding features. This document aims to provide you with a detailed contribution guide to help you better participate in the project. Please read this guide carefully before contributing and make sure to follow the rules here. We look forward to working with you to make this project better together!
Before contributing code
The project welcomes code patches, but to make sure things are well coordinated you should discuss any significant change before starting the work. It’s recommended that you signal your intention to contribute in the issue tracker, either by claiming an existing one or by opening a new issue.
Checking the issue tracker
Whether you already know what contribution to make, or you are searching for an idea, the issue tracker is always the first place to go. Issues are triaged to categorize them and manage the workflow.
Most issues will be marked with one of the following workflow labels:
- NeedsInvestigation: The issue is not fully understood and requires analysis to understand the root cause.
- NeedsDecision: The issue is relatively well understood, but the AimRT team hasn’t yet decided the best way to address it. It would be better to wait for a decision before writing code. If you are interested in working on an issue in this state, feel free to “ping” maintainers in the issue’s comments if some time has passed without a decision.
- NeedsFix: The issue is fully understood and code can be written to fix it.
Opening an issue for any new problem
Excluding very trivial changes, all contributions should be connected to an existing issue. Feel free to open one and discuss your plans. This process gives everyone a chance to validate the design, helps prevent duplication of effort, and ensures that the idea fits inside the goals for the language and tools. It also checks that the design is sound before code is written; the code review tool is not the place for high-level discussions.
When opening an issue, make sure to answer these five questions:
- What version of AimRT are you using?
- What operating system and compiler are you using?
- What did you do?
- What did you expect to see?
- What did you see instead?
Contributing code
Follow the GitHub flow to create a GitHub pull request.
Some things to keep in mind:
- Ensure that your code conforms to the project’s code specifications.
This includes but is not limited to code style, comment specifications, etc. This helps us to maintain the cleanliness and consistency of the project.
The most basic, you can run
./format.sh
in the root directory to format the code. - Before submitting a PR, please make sure that you have tested your code locally(
./test.sh
). Ensure that the code has no obvious errors and can run normally. - To update the pull request with new code, just push it to the branch; you can either add more commits, or rebase and force-push (both styles are accepted).
- If the request is accepted, all commits will be squashed, and the final commit description will be composed by concatenating the pull request’s title and description. The individual commits’ descriptions will be discarded. See following “Write good commit messages” for some suggestions.
Writing good commit messages
Commit messages in AimRT follow a specific set of conventions, which we discuss in this section.
Here is an example of a good one:
math: improve Sin, Cos and Tan precision for very large arguments
The existing implementation has poor numerical properties for large arguments, so use the McGillicutty algorithm to improve accuracy above 1e10.
The algorithm is described at https://wikipedia.org/wiki/McGillicutty_Algorithm
Fixes #159
First line
The first line of the change description is conventionally a short one-line summary of the change, prefixed by the primary affected package.
A rule of thumb is that it should be written so to complete the sentence “This change modifies AimRT to _____.” That means it does not start with a capital letter, is not a complete sentence, and actually summarizes the result of the change.
Follow the first line by a blank line.
Main content
The rest of the description elaborates and should provide context for the change and explain what it does. Write in complete sentences with correct punctuation, just like for your comments in AimRT. Don’t use HTML, Markdown, or any other markup language. Add any relevant information, such as benchmark data if the change affects performance.
Referencing issues
The special notation “Fixes #12345” associates the change with issue 12345 in the AimRT issue tracker. When this change is eventually applied, the issue tracker will automatically mark the issue as fixed.
Copyright headers
Files in the AimRT repository don’t list author names, both to avoid clutter and to avoid having to keep the lists up to date. Instead, your name will appear in the change log.
New files that you contribute should use the standard copyright header:
// Copyright (c) 2024 The AimRT Authors.
// AimRT is licensed under Mulan PSL v2.
Files in the repository are copyrighted the year they are added. Do not update the copyright year on files that you change.