#ros #operating-system #rosrust #roscore

bin+lib ros-core-rs

Robot Operating System (ROS) 核心的纯 Rust 实现

5 个版本

0.2.3 2024年8月13日
0.2.2 2023年5月13日
0.2.1 2023年4月22日
0.2.0 2023年4月22日
0.1.0 2023年4月21日

#32机器人

Download history 4/week @ 2024-07-01 117/week @ 2024-08-12

每月117 次下载

MIT 许可协议

71KB
1K SLoC

Rust 的 ROS 核心实现

Rust License Rust CI

这个 Rust 库提供了 ROS (Robot Operating System) 核心的独立实现。它允许你在没有依赖外部 ROS 安装的情况下运行 ROS 主节点并与其他 ROS 节点进行通信。你可以使用这个库在 Rust 中构建 ROS 节点,包括发布者和订阅者,而无需使用任何其他 ROS 依赖。

示例

独立 ROS 核心节点

要启动 ROS 核心节点,运行以下命令

# start the ros-core
RUST_LOG=debug cargo run

然后运行你的任何 ROS 堆栈,例如,Python chatter 示例

说话者/听者

这个示例创建了一个包含以下内容的单个可执行文件

  • ROS 核心节点
  • ROS 发布者
  • ROS 订阅者

要运行说话者/听者示例,执行以下命令

RUST_LOG=info ROSRUST_MSG_PATH=`realpath examples/chatter/msgs` cargo run --example chatter --release

此示例创建了一个包含独立 ROS 核心节点实现、ROS 发布者和 ROS 订阅者的单个可执行文件。此实现受到 ROS Wiki 中的官方 chatter Python 示例的启发,该示例演示了使用 ROS 消息在两个节点之间进行简单通信。

使用官方 ROS Docker 镜像进行调试

为了展示此 ROS 核心实现可以与官方 ROS 发布者和订阅者(Python)一起使用,我们提供了一个调试脚本,用于启动 ROS Docker 镜像并运行说话者和听者示例。要运行脚本,执行以下命令

# change directory to debugging folder
cd debugging
# make the script executable
chmod +x run.sh
# execute the script
./run.sh

此脚本将下载官方 ROS Docker 镜像并启动一个带有 ROS 环境的容器。然后,它将运行一个 Python 脚本,该脚本使用 ROS 说话者和听者节点与来自此存储库的独立 ROS 核心实现进行通信。这旨在作为一个示例,说明如何将独立 ROS 核心(ros-core-rs)实现与其他 ROS 节点一起使用,但使用此脚本并非必需,以便单独使用独立实现。

贡献

我们欢迎对这个项目的贡献!如果你发现了一个错误或有一个功能请求,请在此 GitHub 仓库中创建一个问题。如果你想贡献代码,请随时提交一个 pull request。

交叉编译到 arm64

apt install libssl-dev:arm64
export AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR=/usr/lib/aarch64-linux-gnu/
export AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR=/usr/include/aarch64-linux-gnu/
cargo build --target aarch64-unknown-linux-gnu --release

依赖

~13–26MB
~413K SLoC