百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
R

ros2_rust

> 编程语言
开源

用于 ROS 2 的 Rust 绑定

1.5K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

用于 ROS 2 的 Rust 绑定

ROS 2 for Rust

Introduction

This is a set of projects (the rclrs client library, code generator, examples, and more) that enables developers to write ROS 2 applications in Rust.

Features and Limitations

The current set of features includes:

  • Message generation with support for all ROS message types
  • Publishers and subscriptions (including async variants)
  • Loaned messages (zero-copy messaging)
  • Dynamic message handling (runtime message introspection and manipulation)
  • Tunable QoS settings
  • Clients and services (including async variants)
  • Actions (action servers and clients with async support)
  • Timers (repeating, one-shot, and inert timers)
  • Parameters (mandatory, optional, and read-only with parameter services)
  • Logging with ROS-compliant logging utilities and rosout support
  • Graph queries (topic/node discovery, endpoint information)
  • Guard conditions and wait sets
  • Clock and time APIs (including time sources)
  • Worker pattern for managing shared state across callbacks
  • Executor pattern for coordinating node execution

Some things are still missing however, see the issue list for an overview. You are very welcome to contribute!

Since the client library is still rapidly evolving, there are no stability guarantees for the moment.

Installation

Prerequisites

First, install Rust and the required system dependencies:

# Install Rust (see https://rustup.rs/)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Install required system packages
sudo apt install -y git libclang-dev python3-pip python3-vcstool

# Install colcon plugins for Rust
pip install --break-system-packages colcon-cargo colcon-ros-cargo

Because of an issue in rclrs (https://github.com/ros2-rust/ros2_rust/issues/557), as a workaround, the following two packages need to be installed:

# Install workaround packages
sudo apt install -y ros-$ROS_DISTRO-example-interfaces
sudo apt install -y ros-$ROS_DISTRO-test-msgs

All ROS Distributions

rclrs is released on crates.io and you can add it to your project directly:

[dependencies]
rclrs = "0.7"

Due to different ROS 2 distributions having different levels of integration with rclrs, if you'd like to build and run the examples, please follow the corresponding section.

ROS 2 Lyrical Luth and Rolling

To run the examples, install the test_msgs and example_interfaces packages, clone the examples repository to your workspace, and build:

sudo apt install -y ros-rolling-example-interfaces ros-rolling-test-msgs
mkdir -p workspace/src && cd workspace
git clone https://github.com/ros2-rust/examples.git src/examples

Temporarily (as of 2025-01-21), the rosidl_rust repository which contains the code generator needs to be cloned as well:

mkdir -p workspace/src && cd workspace
git clone https://github.com/ros2-rust/rosidl_rust.git src/rosidl_rust

The above commands can be removed once an updated version of the generator is shipped with the next ROS 2 sync.

Build the workspace:

. /opt/ros/rolling/setup.sh  # Or source your ROS 2 installation
colcon build

ROS 2 Kilted Kaiju

For ROS 2 Kilted, clone the ROS 2 message packages to your workspace:

mkdir -p workspace/src && cd workspace
git clone -b kilted https://github.com/ros2/common_interfaces.git src/common_interfaces
git clone -b kilted https://github.com/ros2/example_interfaces.git src/example_interfaces
git clone -b kilted https://github.com/ros2/rcl_interfaces.git src/rcl_interfaces
git clone -b kilted https://github.com/ros2/rosidl_core.git src/rosidl_core
git clone -b kilted https://github.com/ros2/rosidl_defaults.git src/rosidl_defaults
git clone -b kilted https://github.com/ros2/unique_identifier_msgs.git src/unique_identifier_msgs

Temporarily (as of 2025-01-21), the rosidl_rust repository which contains the code generator needs to be cloned as well:

git clone https://github.com/ros2-rust/rosidl_rust.git src/rosidl_rust

The above command can be removed once an updated version of the generator is shipped with the next ROS 2 sync.

Build the workspace:

. /opt/ros/kilted/setup.sh
colcon build

ROS 2 Jazzy Jalisco

For ROS 2 Jazzy, you need to clone the code generator and message packages to your workspace:

…

Build the workspace:

. /opt/ros/jazzy/setup.sh
colcon build

ROS 2 Humble Hawksbill

For ROS 2 Humble, you need to clone the code generator and message packages to your workspace:

…

Build the workspace:

. /opt/ros/humble/setup.sh
colcon build

Running the examples

After building, source your workspace and run the examples:

# In a new terminal (or tmux window)
. ./install/setup.sh
ros2 run examples_rclrs_minimal_pub_sub minimal_publisher
# In a new terminal (or tmux window)
. ./install/setup.sh
ros2 run examples_rclrs_minimal_pub_sub minimal_subscriber

Or:

# In a new terminal (or tmux window)
. ./install/setup.sh
ros2 launch examples_rclrs_minimal_pub_sub minimal_pub_sub.launch.xml

For detailed building instructions and additional setup options, see the in-depth guide.

AI Policy

Generative tools are allowed in producing contributions to its projects, with some qualifications:

  • Any contribution may consist, in whole or in part, of the output of one or more generative tools.
  • Any use of generative tools in a contribution must be disclosed at the time of making the contribution.
  • The disclosure must be recorded in a way that ensures it has the same or greater lifetime as the contribution itself.

For source code contributions, you should add a disclosure statement in the commit message for all commits where some portion of the source code was generated.

Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]

Provide a similar disclosure statement in the PR description.

See the projects AI Policy for more details.

Further Documentation

  • Tutorial on writing your first node with rclrs
  • Contributor's guide

Issues· 103 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Rustroboticsrosros2rust

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言