# 介绍

**`dora-rs`** （Dataflow-Oriented Robotic Architecture） 是一种旨在简化基于 **人工智能的具身智能机器人** 应用开发的中间件 。其核心理念是将复杂的机器人应用程序建模为声明式的有向图，即“数据流” 。这种范式从根本上促进了系统的模块化、可配置性和可扩展性 。

## 为什么选择`Dora-rs`

简单来说，`Dora-rs` 是一个帮你搭建复杂机器人程序的“乐高积木”框架。

想象一下，你要做一个机器人，需要它能看路、能思考、能走路。传统方法可能要把所有功能代码都写在一起，非常混乱。`Dora-rs` 改变了这种玩法：

    * 模块化（节点 `Nodes`）

        它让你把机器人的每个功能，都拆分成一个个**独立的小模块**（官方叫 **节点**）。比如，“摄像头模块”只管看，“决策模块”只管想，“轮子控制模块”只管动。大家各司其职，互不干扰。

    * 声明式数据流 (`Declarative Dataflow`)

        你不需要告诉每个模块具体怎么一步步把数据传来传去。你只需要像画一张蓝图一样，声明清楚：“摄像头模块”的数据应该流向“决策模块”，“决策模块”处理完的结果要流向“轮子控制模块”。剩下的事，`Dora-rs` 会自动帮你搞定。

    * 高速数据传输

        这些模块之间传递信息（比如图像、指令）的通道，是一条“超级高速公路”。它使用了高性能的 `Arrow` 数据格式（可以理解为一种标准化的、跑得飞快的“集装箱”），确保数据交换几乎没有延迟，这对于需要快速反应的机器人至关重要。这条“高速公路”也叫 **事件流** (`Event Stream`)。

    * 管理与协调

        守护进程 (`Daemon`)：在机器人本地，有个像“管家”一样的程序在后台运行，负责管理自己地盘上的这些功能模块（节点），确保它们正常工作。

        协调器 (`Coordinator`)：还有一个“总指挥”，它掌握着你画的那张“蓝图”，负责协调所有的“管家”，让整个系统有序地运转起来。

    * 使用与开发

        命令行 (`CLI`)：你通过一个简单的命令行工具，就能像“总指挥”下达命令一样，去启动、停止或管理整个机器人程序。

        API 接口 (`Language-API Bindings`)：如果你想自己写一个新的功能模块（比如加个“机械臂模块”），`Dora-rs` 允许你用 Rust、Python、C++ 等多种主流编程语言来开发，然后轻松地把它接入到整个“流水线”里。

## `Dora-rs`流程图

![`Dora-rs`流程图](/dora01.png)

内容编写 : **`李扬`**
