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パイプラインを有向グラフとして構成する宣言的な手法を提供することで、ロボティクスミドルウェア(ROS2など)で一般的なレイテンシとスループットのボトルネックを解決します。

仕組み

ノード(スタンドアロンプロセス)とオペレーター(軽量なインプロセス関数)が入力と出力を通じて通信する、データフロー指向のアーキテクチャを採用しています。

  • データプレーン: RustとZenohに基づいて構築されており、共有メモリ(SHM)を利用して大きなメッセージ(>4KB)のゼロコピー転送を実現し、レイテンシを大幅に削減します。
  • メモリフォーマット: Apache Arrowをネイティブに使用してカラム型メモリを実現し、異なる言語バインディング間でのシリアル化のオーバーヘッドを排除します。
  • オーケストレーション: 中央のCoordinatorが複数のDaemon(ホストごとに1つ)にわたるデータフローのライフサイクルを管理し、シームレスなローカルおよび分散デプロイを可能にします。
  • 設定: パイプラインは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)をデータフローに直接取り込むためのパッケージマネージャー。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト