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 应用的高性能框架。它通过提供零拷贝数据平面和一种以有向图方式组合复杂 AI 流水线(pipeline)的声明式方法,解决了机器人中间件(如 ROS2)中常见的延迟和吞吐量瓶颈。
工作原理
它采用数据流导向的架构,其中节点(独立进程)和算子(轻量级进程内函数)通过输入和输出进行通信。
- 数据平面:基于 Rust 和 Zenoh 构建,利用共享内存 (SHM) 进行大于 4KB 大消息的零拷贝传输,显著降低了延迟。
- 内存格式:原生使用 Apache Arrow 进行列式存储,消除了不同语言绑定之间的序列化开销。
- 编排:中央协调器 (Coordinator) 管理跨多个守护进程 (Daemon,每个主机一个) 的数据流生命周期,实现无缝的本地和分布式部署。
- 配置:流水线通过 YAML 文件定义,允许开发人员连接节点并指定类型、环境变量和重启策略。
适用对象
- 机器人工程师:需要用于传感器融合和控制的低延迟、实时 ROS2 替代方案的人员。
- AI 研究人员:构建需要在 Python 和 Rust 之间进行高吞吐量数据移动的多模态 AI 智能体或感知流水线的开发人员。
- 系统架构师:在机器集群中部署分布式 AI 应用的工程师。
亮点
- 极致性能:对于高达 4MB 的有效载荷,延迟表现平稳,比 ROS2 Python 快 10-17 倍。
- 多语言支持:提供 Rust、Python、C 和 C++ 的原生 API,允许在单个数据流中混合使用不同语言的节点。
- 默认分布式:通过 Zenoh 实现自动化的跨机器通信,并支持基于 SSH 的集群管理。
- 开发工具:包含用于实时监控 (
dora top)、主题检查以及用于回归测试的记录/回放功能的全面 CLI。 - Node Hub:一个用于直接将可重用的版本化 AI 节点(例如 YOLO、LLMs)拉取到数据流中的包管理器。
相关
- 项目
- 项目
- 项目
- 项目
- 项目