# 介绍 **`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) 内容编写 : **`李扬`**