7 releases
0.1.0 | Mar 31, 2023 |
---|---|
0.0.7 | Dec 9, 2022 |
0.0.6 | Jul 1, 2021 |
0.0.5 | Mar 29, 2021 |
0.0.3 | Feb 19, 2021 |
#73 in Robotics
375KB
8K
SLoC
openrr: Open Rust Robotics
For developers and future users
OpenRR (pronounced like "opener") is Open Rust Robotics platform.
It's heavily under development.
Supported Platforms
OS | Core | GUI | ROS | ROS2 |
---|---|---|---|---|
Linux (Ubuntu) | ✔ | ✔ | ✔ | ✔ |
MacOS | ✔ | ✔ | ✔ | |
Windows | ✔ | ✔ |
- You can use ROS without ROS installation on Linux/MacOS.
- ROS2 Support is experimental. See arci-ros2 for details.
Dependencies
Linux
sudo apt install cmake build-essential libudev-dev xorg-dev libglu1-mesa-dev libasound2-dev libxkbcommon-dev
- cmake build-essential (openrr-planner (assimp-sys))
- libudev-dev (arci-gamepad-gilrs)
- xorg-dev libglu1-mesa-dev libxkbcommon-dev (openrr-gui (egui))
- libasound2-dev (arci-speak-audio)
Architecture
arci
is a hardware abstraction layer for openrr.
Currently ROS1 and urdf-viz (as a static simulator (actually it's just a viewer)) are implemented.
You can write platform/hardware independent code if you use arci
traits.
What is OpenRR?
OpenRR contains..
- abstract robot interfaces (
arci
) - concrete implementation of the interfaces (
arci-ros
,arci-urdf-viz
, ...) - library which uses the interfaces (
openrr-client
, ...) - tools (
openrr-apps
) - pure libraries nothing to do with
arci
(openrr-planner
, ...)
Tools
Currently we have some tools to control real/sim robots.
See openrr-apps for details.
joint_trajectory_sender
Inspired by joint_state_publisher_gui
You can use this GUI not only for ROS but anything if you implement arci::JointTrajectoryClient
and write a small binary main function.
robot_command
General CLI to access arci
robot clients. It supports not only sending joint trajectory directly but it supports inverse kinematics with self-collision check, and navigation.
Format
To format use nightly rustfmt,
cargo +nightly fmt
License
Licensed under the Apache License, Version 2.0.
Related openrr repositories
- k : kinematics library
- ros-nalgebra : rosrust nalgebra converter generator
- rrt : RRT-dual-connect path planner
- trajectory : trajectory interpolator
- urdf-rs : URDF parser
- urdf-viz: URDF visualizer
gear: (deprecated) motion planning library, but it is openrr-planner now.
Why OpenRR?
We strongly believe that Rust is the future of robotics. OpenRR is the world first robotics platform which is made by Rust, made for Rust. It can be a reference, a base for the future robotic people, like us.
Contribution
We appreciate for your any contributions! Create an issue at first!
Here is a discord server.
Using OpenRR
You can read the tutorial books at the following links.
Dependencies
~30–72MB
~1.5M SLoC