RclRust
Target | CI Status | Document |
---|---|---|
Foxy (Ubuntu 20.04) |
Introduction
This is yet another ROS2 client library written in Rust.
I have implemented it independent of the ament or colcon. By using proc-macro to generate message-type and service-type code, crate dependency resolution can now be completed in cargo
. This was inspired by rosrust.
Development environment
- OS: Ubuntu 20.04
- ROS2: Foxy
- rustc: 1.54.0 (stable)
Supporting features
- Code generation from
.msg
,.srv
,.action
- Loggers
- Publishers/Subscriptions
- Services/Clients
- Timers
- Parameters (without services)
TODO
- Parameter services/clients
- Actions
- Multithread
- Lifecycles
- More
- Unit test
- Documentation
- Examples (especially with ament)
- etc...
I'm not going to support
- Components
- Is it necessary for Rust?
Examples
Prepare
$ git clone [email protected]:rclrust/rclrust.git
$ cd rclrust
$ cargo build
Pub/Sub
Publisher:
$ cargo run --examples publisher
Subscription
$ cargo run --examples subscription
For more examples, see https://github.com/rclrust/rclrust/tree/main/rclrust/examples.
Notice
The icon of RclRust was created by combinating and modifing the following materials.
- ros.svg © ROS (Licensed under CC BY 4.0)
- Gear-icon.png (Licensed under CC0 1.0)