• 简体中文
  • 1.2 为什么是 DORA:和 ROS2 比一比

    上一节说到,DORA 是一套"数据流中间件"。其实它并不是第一个——机器人领域最有名的老前辈叫 ROS / ROS2。这一节我们把它俩放一起比一比,你就明白 DORA 好在哪了。

    说在前面

    本节不假设你懂 ROS2,也不是要贬低它。ROS2 是了不起的老牌框架。我们只是借它当"参照物",帮你更快理解 DORA 为什么这样设计。

    一个贯穿全节的画面:黑板 vs 传纸条

    • DORA 的教室:墙上有一块大黑板,谁想让别人知道什么,直接写上去;需要的人抬头看一眼就行。
    • ROS2 的教室没有黑板,同学之间只能传纸条——写好、折起来、递过去、对方拆开、誊抄到自己本子上,才能用。

    就这么一个差别,几乎解释了后面所有的不同。

    核心三问

    问题一:快不快?

    我们把"传一条消息"这件事拆开看:

    ROS2(传纸条)要 8 步:

    1. 把内容写在纸条上
    2. 把纸条折好
    3. 递给对方
    4. 对方接过纸条
    5. 拆开纸条
    6. 读一遍
    7. 誊抄到自己的本子上
    8. 要回信?再折、再传、再拆……

    DORA(黑板)只要 2 步:

    1. 在黑板上写下来
    2. 需要的人抬头看一眼

    那"折、拆、誊抄"在软件里叫什么?叫 序列化 / 反序列化——把数据打包再拆包。数据越大(比如一整张图片),这套折腾就越费时。DORA 直接省掉了它。

    官方数据:同机传递下,DORA 延迟约 500 微秒,而 ROS2 约 1–10 毫秒;在 Python 场景下 DORA 可比 ROS2 快 10–17 倍。(数据来自官方,随版本可能变化。)

    问题二:好不好学?

    • DORA:用一份 YAML 文件,像写"值日表"一样声明"谁写黑板、谁看黑板",改完直接 dora run 就跑起来。
    • ROS2:往往需要先"编译生成"一堆代码、配置较多,改一次要折腾一轮。

    对零基础的我们来说,DORA 的"值日表"方式显然更友好。

    问题三:懂不懂 AI?

    • DORA:天生亲和 Python 和 AI 模型,黑板上用统一格式写数据,视觉、语音、大模型都能直接接上。
    • ROS2:更偏传统机器人,接现代 AI 模型时常常要额外费功夫。

    一张总表看全貌

    维度DORA(黑板教室)ROS2(传纸条教室)
    同机延迟约 500 微秒,共享内存零拷贝1–10 毫秒,需打包拆包
    怎么描述一份 YAML,改完即跑常需编译生成代码
    怎么启动一条 dora run步骤较多
    数据格式统一(Apache Arrow),多语言零翻译需消息定义/转换
    支持语言Python / Rust / C / C++ 自由混用多语言(偏 C++/Python)
    接 AI原生友好(视觉/语音/大模型)偏传统机器人
    生态成熟度年轻,成长中庞大成熟(导航/驱动/社区)

    诚实地说一句

    ROS2 并不"差"。打个比方:

    • ROS2 像一所运营多年的老牌名校——资源多、什么都有、规矩也多;
    • DORA 像一所新式学校——轻快、专注 AI、上手快。

    选谁要看场景。而且好消息是:你在本课学会的"黑板思想",日后理解 ROS2 也会更容易;DORA 还提供了和 ROS2 互通的桥接,两者能协作。

    进阶延伸(可跳过)

    ROS2 底层用 DDS 中间件,消息按 CDR 格式序列化,并有一套 QoS(服务质量)策略来权衡可靠性与延迟。这些机制很强大,但也带来了配置复杂、在普通网络下偶发多播问题等成本。零基础阶段完全不必深究,知道"它更重、更全"即可。

    打个比方:DDS 就像一辆运钞车——装箱、加密、派车、押运、签收,一整套流程。押运真正贵重的东西时它很值;可要只是"送一杯咖啡"(机器人本地那些高频、普通的数据),就显得又重又慢了。DORA 更像把咖啡直接放到公共吧台(共享内存 + 零拷贝),谁要谁拿,省掉了装箱押运。

    需要说明的是:运钞车并不"差",只是用在了过轻的场景。当你真的需要强安全、强可靠、跨厂商互通时,DDS 那套"押运装备"反而是优势。

    动手练习(思考题)

    用你自己的话,向一个完全不懂技术的朋友解释:"为什么在黑板上写字,比互相传纸条更快?" 试着不用任何专业词。

    参考答案

    因为传纸条要一遍遍地写、折、递、拆、抄,人越多、内容越多就越慢;而黑板只要写一次,所有人抬头就能同时看到,不用重复抄写。DORA 就是给机器人配了这样一块"大家都看得见的黑板"。

    小结

    • 一句话记住:DORA = 给机器人配了一块共享黑板;ROS2 更像互相传纸条。
    • DORA 的优势:更快(省去打包拆包)、更简单(YAML + 一条命令)、更懂 AI(原生亲和 Python 与模型)。
    • ROS2 更成熟、生态更大;两者定位不同,可按场景选择。

    下一节,我们正式认识黑板教室里的几位"主角"——节点、数据流、共享内存和 Arrow。