No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
Repository Summary
Description | safe_drive: Formally Specified Rust Bindings for ROS2 |
Checkout URI | https://github.com/tier4/safe_drive.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-03-26 |
Dev Status | UNKNOWN |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
example_msg | 0.0.0 |
README
safe_drive: Formally Specified Rust Bindings for ROS2
safe_drive
is a Rust bindings for ROS2.
This library provides formal specifications and tested the specifications by using a model checker.
Therefore, you can clearly understand how the scheduler work and the safeness of it.
Specifications
Some algorithms we adopted are formally specified and tested the safeness by using TLA+. Original ROS2’s executor (rclcpp) suffers from starvation. In contrast, the starvation freedom of our executor has been validated by not only dynamic analysis but also formal verification.
See specifications.
We specified and tested as follows.
- Single Threaded Callback Execution
- Deadlock freedom
- Starvation freedom
- Scheduling Core Algorithm
- Validate the insertion algorithm
- Termination
- Initialize Once
- Deadlock freedom
- Termination
- Initialization is performed just once
Documents
Supporting ROS2
- Jazzy, (PR #25)
- Humble
- Galactic (EOL)
Supporting DDS
- CycloneDDS
- FastDDS
Progress
- Zero copy
- Custom memory allocator
- Topic (Pub/Sub)
- Service (Client/Server)
- Asynchronous programming (async/await)
- Callback based programming
- Logging
- Signal handling
- Parameter
- Timer
- Action (service + topic)
- Rust code generation from .msg and .srv files
-
Formal Specification
- Single threaded callback based executer
- Scheduling Core Algorithm
- Initializer performed just once
CONTRIBUTING
No CONTRIBUTING.md found.
No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.