更新于

「AMR ↔ 机器狗」自建中间件最小架构图:unitree_sdk2/ROS2 ↔ 调度编排 ↔ docking(PoC 技术起点·待核实草案)

机器狗AMR子母车中间件架构unitree_sdk2ROS2DDSVDA5050docking调度PoC大冢商会

⚠️ 这是一张架构设计草案,不是产品规格。 目的是把姊妹篇反复出现的「子母车集成只能自建中间件」这句结论,落成一张能照着搭的最小图。所列接口/协议(unitree_sdk2 的 DDS、VDA5050 的 MQTT/JSON)均以各 SDK/标准官方文档与真实 PoC 验证为准;本篇外链 curl 200 可达。「最小」= PoC 阶段范围,刻意只画跑通一条闭环所必需的模块,不含量产级冗余/安全认证/多机调度扩展(那些在阶段 2/3 再加)。

🌐 这篇要回答什么

两篇姊妹篇都指向同一句话:GO2 选型·集成 说「GO2 无现成 AMR 方案,集成必然自建——而这正是差异化」;SEER M4 落地路径 说「即便不与 SEER 合作,也可把它当 benchmark 自建」。那『自建』到底建什么? 本篇把它画成一张最小架构图 + 一条作业时序,作为 PoC 阶段 1 的技术起点。

子母车的概念/案例见 子母车研究;三种融合形态见 融合篇;买现成路径见 SEER M4 落地路径。

🧱 一、为什么是「自建中间件」(一句话接上结论)

  • 机器狗(GO2/B2 等)没有现成的 AMR 对接产品,也不支持 VDA5050(VDA5050 只面向 2D 轮式 AMR)——见 GO2 选型·集成。
  • 所以「AMR 驮狗、狗爬楼」这条闭环里,母车与子车之间的编排、对接、协同,没有现成协议可套,必须自己写一层中间件。
  • 这层中间件就是事业企划书里「软件 × 硬件」的护城河:硬件(AMR、机器狗)都买现成,协同编排是自社的。SEER 把这件事做成了产品(见 SEER 篇);自建则是「自己做一个 mini 版、且完全自主可控」。

🗺️ 二、最小架构图(一张图三层)

╔══════════════════════════════════════════════════════════════════╗
║         自社中间件 / 调度编排层  (核心差异化 · 全是自社的)            ║
║                                                                    ║
║   ┌───────────────┐  ┌───────────────┐  ┌────────────────────┐   ║
║   │ 任务状态机     │  │ 地图 / 定位融合 │  │ Docking 协同控制     │   ║
║   │ Orchestrator  │  │ Map / Localize │  │ 对接握手协议(handshake)│  ║
║   │ (无死锁流程)   │  │ (母车↔狗坐标对齐)│  │ (上/下车·复位)       │   ║
║   └───────┬───────┘  └───────────────┘  └─────────┬──────────┘   ║
║           │              监控 / HMI / 日志 / 告警            │       ║
╚═══════════╪═══════════════════════════════════════════════╪═══════╝
            │                                               │
   ① 母车接口 │ VDA5050 (MQTT/JSON) 或厂商私有 API      ② 子车接口 │ DDS / ROS2 / WebRTC
            │                                               │
   ┌────────▼─────────┐      ═══ docking ═══       ┌────────▼──────────┐
   │   母车  AMR        │      物理对接面 +          │  子车  机器狗       │
   │  (现成 · 轮式)     │◄──── 充电/复位/锁止 ────►│ (GO2 EDU 起步)     │
   │  搬运重货·平地长程  │                          │ 爬楼·最后一百米     │
   └──────────────────┘                          └───────────────────┘
        既有 AGV 可复用                          unitree_sdk2 / unitree_ros2

读图三个要点:

  • 左右两条接口是异构的:母车用工业 AMR 那一套(VDA5050 或厂商 API),子车用宇树那一套(DDS/ROS2)——中间件的第一份工作就是把这两套翻译成统一的内部任务语言。
  • 中间最值钱的是「调度编排层」:它不生产硬件能力,它生产「什么时候、让谁、做什么、怎么交接」——这正是自社软件。
  • docking 是物理 + 协议双层:既有机械对接面(上/下车、锁止、可选充电),也有软件握手(确认狗已固定/已离车才允许母车动)——安全闭锁在这层。

🔌 三、逐层接口清单(自建实际要对接什么)

层 模块 用什么对接 来源 / 说明
子车通信 运动指令 / 读传感器 unitree_sdk2(CycloneDDS 底层) 1
子车通信 ROS2 生态桥接 unitree_ros2 2
子车通信 Python 快速原型 unitree_sdk2_python 3
子车通信 Wi-Fi/以太双通道(社区参考) go2_ros2_sdk(WebRTC+DDS,无 fleet) 4
母车通信 标准调度协议 VDA5050(MQTT/JSON;母车支持才可用) 5
母车通信 fleet manager 参考实现 openTCS VDA5050 适配器 6
编排层 任务状态机 / 无死锁流程 自社(参考 marsupial 文献 Petri-net 编排) 见 子母车研究
编排层 docking 握手 / 安全闭锁 自社(物理+协议双层) 本篇
对照 买现成同等能力 SEER M4(四足+VDA5050 同系统协同) 7

EDU 才有低层控制:要写自定义步态/精细对接,子车必须是 GO2 EDU(含低层 rt/lowcmd,Air/Pro 锁死)——见 GO2 选型·集成。

⏱️ 四、作业时序(一条无死锁闭环)

把「AMR 驮狗、狗爬楼」拆成一条状态机,每步都有进入/退出条件,按 marsupial 文献做成无死锁流程(子母车研究):

[IDLE]
  │ 收到任务(目标楼层/点位)
  ▼
[AMR_DRIVE] 母车载狗平地行驶到楼梯口 ──(到位)──►
[ARRIVE] 母车停稳·定位对齐 ──(校验 OK)──►
[WAKE_DOG] 中间件唤醒狗·下发任务坐标 ──►
[DOG_DISMOUNT] docking 解锁·狗下车 ──(确认离车)──►
[DOG_TASK] 狗爬楼/最后一百米/搬运·识别 ──(任务完成)──►
[DOG_RETURN] 狗自主返回到母车对接面 ──►
[DOCK] docking 握手·锁止·(可选充电) ──(确认固定)──►
[AMR_DEPART] 母车载狗驶向下一点 / 返航 ──► [IDLE]

异常分支(任一步失败)→[SAFE_HOLD] 停止·告警·人工介入·不允许母车带未固定的狗移动

安全第一条铁律:[AMR_DEPART] 的前置条件是 docking 握手确认「狗已固定」——这条闭锁防止母车拖着没坐稳的狗跑,是 PoC 也必须有的最小安全。

⚖️ 五、自建 vs 买 SEER(同一张图的两种实现)

维度 自建中间件(本篇) 买 SEER(SEER 篇)
调度编排层 自社从零写(state machine + docking 握手) M4 现成(四足+VDA5050 同系统)7
子车运动控制 unitree_sdk2/ROS2 自接 SRC 控制器现成
接既有 AGV 自写 VDA5050/厂商 API 桥接 M4 走 VDA5050 桥接
自主可控 ✅ 完全自主 ⚠️ 依赖 SEER(且日本无代理)
起步成本/周期 ⚠️ 高(要自己写) ✅ 低(买现成)
差异化护城河 ✅ 编排是自社 IP ⚠️ 编排是 SEER 的
建议 GO2 PoC 阶段先自建一个 mini 版(最低成本验证闭环 + 攒自社 IP) 规模化/接重载异构时,再评估 M4 当统一 RCS

两条不是互斥:先自建 mini 版把闭环和自社 IP 攒出来,规模化时如果 SEER 更划算,自建的编排经验也能无缝迁到「用 M4 + 自社上层业务」。

🪜 六、PoC 三阶段映射(这张图怎么分期搭)

  • 阶段 1(单台·最小闭环):GO2 EDU + 一台现成 AMR + 本图的「编排层最小子集」(状态机 + docking 握手),跑通「行驶→下车→爬楼→返回→对接→出发」一条线。失败成本最低。
  • 阶段 2(厂内雏形):加地图/定位融合 + 监控 HMI,对标 驭势×国网「车狗一体」 做厂内真实路线。
  • 阶段 3(接既有车队/升级重载):货重确认后重载段换 B2/B2-W,母车接大冢既有 AGV(VDA5050 桥接),或评估整体上 SEER M4——阶段 1/2 的编排软件栈平移复用。

⚠️ 待你核实 / 待补充

  1. 要不要我把这张图导出成 SVG/PNG,放进给大冢的客户提案(docx/ppt)里做技术页。
  2. 母车选型:阶段 1 用哪台现成 AMR(大冢既有车 or 采购一台轻型 AMR 做 PoC)——给我型号我把母车接口那一栏(VDA5050 还是厂商 API)落实。
  3. docking 机构:物理对接面要不要我单独起一篇「上/下车机构 + 安全闭锁」的设计草案(含充电对接选项)。
  4. 真实路线/货重:拿到后我把状态机各步的超时/重试参数、以及何时必须从 GO2 升 B2 的临界点算清。