一、软件介绍

文末提供安装包及源码下载
       一个极其快速和简单的面向数据流的机器人框架,用于管理您的项目和运行复杂的应用程序,用 Rust 编写。面向数据流的机器人体系结构 ( dora-rs ) 是一个框架,可快速简单地创建机器人应用程序。dora-rs 实现声明式 Dataflow 范例,其中任务在作为单个进程隔离的节点之间进行拆分。每个节点都定义其输入和输出以与其他节点连接。数据流范例的优势在于创建一个抽象层,使机器人应用程序模块化且易于配置。


GitHub作者地址:https://github.com/dora-rs/dora
本文信息均来源于作者GitHub地址

二、软件特点

1、用于启动 Python 和 Rust 机器人项目的单个 CLI。
2、比 ros2 快 10-17 倍。
3、使用干净的 Python API 轻松快速地进行原型设计。
4、支持 macOS、Linux 和 Windows。
5、无需 Rust 即可通过 curl 或 powershell 安装 .
6、包括大量预打包的节点,用于快速原型设计。
7、无需编译即可构建和运行应用程序,超越您最喜欢的语言的本机编译器。
8、通过集成硬件、算法和 AI 模型来简化机器人应用程序的构建,以促进无缝通信。
9、通过支持 Python、C、C++ 和 ROS2 简化硬件和软件的集成,同时确保与零拷贝 Arrow 消息的低延迟通信。

三、安装

使用文末下载提供的独立安装程序或从 crates.io 安装 dora:
 带 pip
pip install dora-rs-cli
 带货物
cargo install dora-cli
使用 macOS 和 Linux 的 Github 版本
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/dora-rs/dora/main/install.sh | bash
使用 Windows 的 Github 版本
powershell -c "irm https://raw.githubusercontent.com/dora-rs/dora/main/install.ps1 | iex"


开始


运行一些 Python 示例(必须激活 venv):
cd dora/examples/python-dataflow
uv venv --seed
dora build dataflow.yml --uv
dora run dataflow.yml --uv
确保有网络摄像头
要停止数据流,您可以使用 ctrl + c
它提供了多种功能,例如:

TCP 通信和共享内存

节点之间的通信是在同一台机器上使用共享内存,在分布式机器上使用 TCP 来处理的。我们的共享内存实现跨进程跟踪消息,并在过时时丢弃它们。缓存共享内存槽以避免新的内存分配。
 箭头消息格式

节点与 Apache Arrow Data Format 通信。


Apache Arrow 是一种用于平面和分层数据的通用内存格式。Arrow 内存格式支持零拷贝读取,可实现闪电般快速的数据访问,而不会产生序列化开销。它定义了一个 C 数据接口,没有任何构建时或链接时依赖性要求,这意味着除了 dora-rs 你最喜欢的语言的原生编译器之外,没有其他编译步骤。


 开放遥测

dora-rs 使用 Opentelemetry 来记录您的所有日志、指标和跟踪。这意味着可以使用共享抽象链接数据和遥测数据。
Opentelemetry 是一种开源可观测性标准,它使大多数后端(如 elasticsearch、prometheus、Datadog......
Opentelemetry 独立于语言,与后端无关,可以轻松收集分布式数据,非常适合 dora-rs 应用程序。

 热重载

dora-rs 为 Python 实现了热重载,这意味着您可以在 Python 的运行时更改代码,同时保持状态不变。
使用功能标志: --attach --hot-reload ,dora-rs 会监视代码更改并重新加载已修改的节点。
ROS2 桥接器

注意:此功能被标记为不稳定。
免编译 消息传递到 ROS 2
自动转换 ROS 2 消息 <-> 箭头阵列
import pyarrow as pa
# Configuration Boilerplate...turtle_twist_writer = ...
## Arrow Based ROS2 Twist Message## which does not require ROS2 importmessage = pa.array([{
            "linear": {
                "x": 1,
            },
            "angular": {
                "z": 1
            },
        }])
turtle_twist_writer.publish(message)
你可能想用 ChatGPT 来写 Arrow Formatting: https://chat.openai.com/share/4eec1c6d-dbd2-46dc-b6cd-310d2895ba15

展示

自编码机器人:Code RAG (WIP)

通过将热重载与检索增强生成 (RAG) 相结合,您可以轻松创建自编码机器人,该 RAG 将从您的提示生成代码修改。请参阅: examples/python-operator-dataflow



Self-Coding Robot 只是机器人技术与 llm 相结合的冰山一角,我们希望能为它提供动力。我们还有很多东西还没有探索,比如:
 自调试
 记忆
 函数调用

Support Matrix

    dora-rs    Hoped for
Tier 1 Support    Python, Rust    C, C++, ROS 2
Tier 2 Support    C, C++, ROS2    
Hot-reloading    Python    Rust (https://github.com/orgs/dora-rs/discussions/360)
Message Format    Arrow    Native
Local Communication    Shared Memory    Custom Middleware, zero-copy GPU IPC, intra-process tokio::channel communication
Remote Communication    TCP    Custom Middleware, Zenoh
Metrics, Tracing, and Logging    Opentelemetry    Native logging libraries into Opentelemetry
Data archives    Parquet (dora-record)    
Visualization and annotation    OpenCV    rerun.io
Supported Platforms (x86)    Windows, macOS, Linux    
Supported Platforms (ARM)    macOS, Linux    
Configuration    YAML
    

软件下载

夸克网盘分享

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐