All Projects → ros2-rust → Ros2_rust

ros2-rust / Ros2_rust

Licence: apache-2.0
Rust bindings for ROS2

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Ros2 rust

Se2clam
SE(2)-Constrained Localization and Mapping by Fusing Odometry and Vision (IEEE Transactions on Cybernetics 2019)
Stars: ✭ 116 (-37.97%)
Mutual labels:  robotics, ros
Ros Control Center
A web-based control center for ROS robots.
Stars: ✭ 180 (-3.74%)
Mutual labels:  robotics, ros
Ros2learn
ROS 2 enabled Machine Learning algorithms
Stars: ✭ 119 (-36.36%)
Mutual labels:  robotics, ros
Awesome Robotic Tooling
Tooling for professional robotic development in C++ and Python with a touch of ROS, autonomous driving and aerospace.
Stars: ✭ 1,876 (+903.21%)
Mutual labels:  robotics, ros
Rosnodejs
Client library for writing ROS nodes in JavaScript with nodejs
Stars: ✭ 145 (-22.46%)
Mutual labels:  robotics, ros
Stereo dense reconstruction
Dense 3D reconstruction from stereo (using LIBELAS)
Stars: ✭ 113 (-39.57%)
Mutual labels:  robotics, ros
Rclnodejs
Node.js version of ROS 2.0 client
Stars: ✭ 126 (-32.62%)
Mutual labels:  robotics, ros
Grl
Robotics tools in C++11. Implements soft real time arm drivers for Kuka LBR iiwa plus V-REP, ROS, Constrained Optimization based planning, Hand Eye Calibration and Inverse Kinematics integration.
Stars: ✭ 105 (-43.85%)
Mutual labels:  robotics, ros
Weloveinterns
中科院软件所智能软件中心实习生社区
Stars: ✭ 143 (-23.53%)
Mutual labels:  robotics, ros
Aikido
Artificial Intelligence for Kinematics, Dynamics, and Optimization
Stars: ✭ 133 (-28.88%)
Mutual labels:  robotics, ros
Xpp
Visualization of Motions for Legged Robots in ros-rviz
Stars: ✭ 177 (-5.35%)
Mutual labels:  robotics, ros
Urdf Viz
visualize URDF/XACRO file, URDF Viewer works on Windows/MacOS/Linux
Stars: ✭ 149 (-20.32%)
Mutual labels:  robotics, ros
Robotics setup
Setup Ubuntu 18.04, 16.04 and 14.04 with machine learning and robotics software plus user configuration. Includes ceres tensorflow ros caffe vrep eigen cudnn and cuda plus many more.
Stars: ✭ 110 (-41.18%)
Mutual labels:  robotics, ros
Dolly
🤖🐑 It's a sheep, it's a dolly, it's a following robot. Dolly was born to be cloned.
Stars: ✭ 113 (-39.57%)
Mutual labels:  robotics, ros
Robotics Coursework
🤖 Places where you can learn robotics (and stuff like that) online 🤖
Stars: ✭ 1,810 (+867.91%)
Mutual labels:  robotics, ros
Cleanit
Open-source Autonomy Software in Rust-lang with gRPC for the Roomba series robot vacuum cleaners. Under development.
Stars: ✭ 125 (-33.16%)
Mutual labels:  robotics, ros
Evo
Python package for the evaluation of odometry and SLAM
Stars: ✭ 1,373 (+634.22%)
Mutual labels:  robotics, ros
Flexbe behavior engine
Contains the behavior engine FlexBE.
Stars: ✭ 101 (-45.99%)
Mutual labels:  robotics, ros
Urdf Loaders
URDF Loaders for Unity and THREE.js with example ATHLETE URDF Files
Stars: ✭ 129 (-31.02%)
Mutual labels:  robotics, ros
Roslibpy
Python ROS Bridge library
Stars: ✭ 146 (-21.93%)
Mutual labels:  robotics, ros

ROS2 for Rust

Build status

Target Status
Ubuntu 18.04 Build Status

Introduction

This is a set of projects (bindings, code generator, examples and more) that enables developers to write ROS2 applications in Rust.

Features

The current set of features include:

  • Generation of all builtin ROS types
  • Support for publishers and subscriptions
  • Tunable QoS settings

What's missing?

Lots of things!

  • An ament build type for Cargo. The current examples use CMake to install and build the binaries... and it's really ugly.
  • Component nodes
  • Clients and services
  • Tests
  • Documentation

Limitations

  • messages are deep-copied and this can be terribly inefficient for big messages like images; the current solution leverages C typesupport implementations and might benefits from a direct serialization/deserialization
  • the current solution for crates export with CMake is not very robust
  • rclrs interface is very limited for now and might not be so much idiomatic yet, any help and suggestion on the interface would be greatly appreciated
  • due to the current ROS2 support of non-default clients, packages containing definitions of messages used in Rust crates must be present in the current workspace; otherwise message crates generation won't be triggered

Sounds great, how can I try this out?

You can build and run the example using the included Dockerfile:

git clone https://github.com/ros2-rust/ros2_rust.git
docker build --tag ros2:rust .
docker run -it --rm ros2:rust
ros2 run rclrs_examples rclrs_publisher &
ros2 run rclrs_examples rclrs_subscriber

Or do so manually as summarized in the steps below:

The following steps were last tested on Ubuntu 20.04.

# first, install vcstool from PyPI or apt:
# sudo apt install ros-foxy-desktop python3-vcstool libclang-dev clang
# pip install vcstool

mkdir -p ~/ros2_rust_ws/src/ros2-rust
cd ~/ros2_rust_ws/src/ros2-rust
git clone https://github.com/ros2-rust/ros2_rust.git
cd ../../
vcs import src < src/ros2-rust/ros2_rust/ros2_rust.repos
source /opt/ros/foxy/setup.sh
colcon build

Now you can just run a bunch of examples.

Publisher and subscriber

Publisher:

. ./install/setup.sh

ros2 run rclrs_examples rclrs_publisher

Subscriber:

. ./install/setup.sh

ros2 run rclrs_examples rclrs_subscriber

Enjoy!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].