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)拉取到數據流中的套件管理器。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案