dora-rs/dora

DORA (Dataflow-Oriented Robotic Architecture) is middleware designed to streamline and simplify the creation of AI-based robotic applications. It offers low latency, composable, and distributed dataflow capabilities. Applications are modeled as directed graphs, also referred to as pipelines.

它解决了什么问题

Dora 提供了一个高性能框架,用于构建实时机器人和 AI 应用程序。它通过使用基于 Rust 的核心和零拷贝共享内存通信,解决了传统机器人框架(如 ROS2 Python)中常见的延迟和吞吐量瓶颈,使其适用于数据密集型 AI 流水线。

它如何工作

Dora 采用数据流导向的架构,应用程序在 YAML 文件中定义为有向图。节点(独立进程)或算子(轻量级进程内函数)通过类型化的输入和输出连接。

技术上,它使用了:

  • Zenoh SHM 数据平面:允许节点直接通过共享内存发布数据,绕过守护进程以降低延迟。
  • Apache Arrow:端到端使用列式内存格式,消除序列化开销。
  • 分布式编排:协调器管理跨多个守护进程(每台主机一个)的数据流生命周期,实现无缝的本地和跨机器通信。

适合谁

专为需要构建复杂、实时系统(例如处理摄像头画面或大语言模型输出)且要求高吞吐量,并支持多种语言(Rust、Python、C、C++)的机器人和 AI 工程师设计。

特色亮点

  • 极致性能:与 ROS2 Python 相比,零拷贝共享内存下处理大负载时快 10-17 倍。
  • 多语言支持:原生支持 Rust、Python、C 和 C++ 的 API,可实现混合语言数据流。
  • 生产就绪工具:包含容错能力(重启策略)、分布式集群管理以及 OpenTelemetry 集成,用于追踪和指标收集。
  • 可观测性:内置 TUI 用于资源监控(dora top)、主题检查,以及用于回归测试的录制/回放功能。
  • 节点中心:一个包管理器,可将可复用、带版本的节点(如 YOLO、LLMs)拉取到项目中。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目