四足开发实战(一):需求与总体方案——先定需求,再买电机

在确定需求之前,不应贸然采购 12 个关节模组。实际开发中常见的一类失误是照搬某个开源项目的采购清单,先行购入 12 个电机,随后在结构尚未画完时就发现模组尺寸大于预期、腿部无法容纳;勉强装配后实测扭矩仍不足,最终整套方案推倒重来,一万余元的投入变成难以转售的零件。问题出在第一步:需求尚未确定,电机已经先买了。这正是本系列第一篇只讨论“需求”的原因。

网络上的四足机器人资料大多处于两个极端:一端只讨论理论(雅可比、MPC、PPO),阅读后仍不清楚第一颗螺丝应安装在何处;另一端只提供代码,某个仓库可以运行,更换机器后却难以复用。本系列取中间路径:按照“制作一台能够行走的教学四足”的真实流程,从需求、机械、选型、电子、固件、建模、控制,一直写到联调测试,每篇对应一个阶段,读完即可照做。这套文章是作者对一年半开发过程的复盘:项目从零推进到 trot 步态约耗时一年半,实际遇到的问题远多于文中呈现的部分,因此每篇都按“目标、前置输入、操作步骤、验收标准、常见问题”的顺序组织。理论部分只保留结论与一句理由,推导放到《机器狗访谈》系列(四足机器人控制理论(公式推导汇总)),本篇专注于实现方法。

为使后续各篇拥有统一的参照,整个系列围绕一套 Go1 级参考设计展开:12 自由度、12 kg、站高 0.40 m。这套参数属于【示例值】,并非标准答案,但前后自洽:扭矩、电池、总线、结构均按此核算,照此执行即可走通;修改其中任意一个数值,后续章节都会说明哪些部分需要同步调整。这些数字彼此关联:12 kg 决定关节扭矩需求位于 20 N·m 级(选型篇将完整核算),0.40 m 站高决定 0.22 m 的腿长(机械篇),6S 电池决定电机转速上限(电源篇),达妙 DM-MC02 加两条 RS485 决定 1 kHz 的指令节奏(电子篇与固件篇)。

项目 参考值
整机质量 12 kg(含电池)
站立高度 0.40 m
机身 0.42 × 0.20 × 0.12 m
大腿 / 小腿 0.22 m / 0.22 m
自由度 12(髋 roll + 髋 pitch + 膝)
关节 宇树 GO-M8010-6(对比 IM6014)
电池 6S 22.2 V 8000 mAh 25C
主控 达妙 DM-MC02(STM32H723)
总线 RS485 ×2,4 Mbps,每路 6 关节,1 kHz
上位机 x86 迷你主机(i7 + RTX 4060)
仿真 MuJoCo 3.x

目标性能随参考设计确定:平地步速 1.0~1.5 m/s,续航 40~60 分钟,能够通过 10°~15° 的坡道与 0.10~0.12 m 的台阶。1.5 m/s 这一数值并非随意选取:trot 步频为 2~3 Hz 时,对应步长在 0.5~0.75 m,0.22 m 的腿长完全够用;继续提升至 3 m/s 时,步频需超过 3 Hz、步长接近极限,冲击与电机转速同时逼近上限,一旦失稳即可能整机受损。全套(不含上位机)成本约为 1.5~2.5 万元(以实际采购为准),其中 12 个模组占 1.1~1.8 万元,为主要部分,这也是选型须放在采购电机之前而非之后的原因。

工期方面同样应给出预期,以避免第一周就期望整机运行。按每周 10~15 小时的投入估算:需求与方案 1~2 周,机械 3~6 周,电机与电源 1~2 周,电子 2~3 周,固件 4~8 周,建模与仿真 2~4 周,控制 6~12 周,联调测试 4~8 周,合计 9~18 个月。本系列即按此顺序组织:先求稳定,再求速度,顺序本身也是经验的一部分。

flowchart LR
P0["P0 需求与总体方案<br/>第 1 篇(本篇)"] --> P1["P1 机械<br/>第 2 篇"]
P0 --> P2["P2 选型与电源<br/>第 3、4 篇"]
P1 --> P3["P3 电子<br/>第 5 篇"]
P2 --> P3 --> P4["P4 固件<br/>第 6 篇"]
P1 --> P5["P5 建模与仿真<br/>第 7、9 篇"]
P4 --> P6["P6 步态控制<br/>第 8 篇"]
P5 --> P6
P6 --> P7["P7 强化学习(可选)<br/>第 10 篇"]
P6 --> P8["P8 联调、测试与迭代<br/>第 10 篇"]

六项指标如何确定,放大后代价如何

需求书有一条明确的验收标准:表中每个数值都应当能够回答“为什么是这个值”与“改大会怎样”,无法回答即为缺少依据。四足机器人的核心指标共六项,每项均存在下限(低于该值则无意义)与上限(高于该值则代价陡增):

指标 参考值 低于这个没意义 高于这个代价陡增 主要代价
整机质量(含电池) 12 kg 8 kg 20 kg 关节扭矩、成本、安全性
站立高度 0.40 m 0.30 m 0.55 m 腿长、惯量、刚度
最大速度(trot) 1.5 m/s 1.0 m/s 3.0 m/s 步频、冲击、电机转速
续航(1 m/s 匀速) 45 min 30 min 90 min 电池质量、发热
越障(台阶 / 坡度) 0.12 m / 15° 0.08 m / 10° 0.20 m / 25° 腿长、功率、控制
额定负载 1.5 kg 0.5 kg 5 kg 扭矩、结构强度

以下逐项说明取值依据。质量选 12 kg,是因为教学机优先保证“稳定行走、跌落损失可控”;8 kg 级更安全,但负载与越障能力均需压缩;15~20 kg 级可搭载激光雷达与算力,但电机需提升一档,成本非线性上升,12 kg 属于较均衡的区间。站高 0.40 m 由 0.12 m 的越障需求反推,机械篇将详述。续航 45 分钟对应明确的调试节奏:运行 20 分钟暴露问题,剩余 25 分钟用于回传日志、更换电池、复现一次,恰好支撑一个完整的“发现—记录—复现”循环;更长的续航只会增加电池质量。负载 1.5 kg 可覆盖大部分传感器与机械臂任务,5 kg 级别则需要重新评估整条动力链。此外还有两项软性指标:噪声低于 75 dB(距机 1 m 处测量)、整机预算约 2 万元。噪声并非难以解释,它直接由减速器与步态决定,选型篇会将其作为硬约束使用。

六项指标中最具决定性的是质量,因为它可直接推导出关节扭矩。下面给出两分钟的粗略估算,选型篇会将其精确到每一牛米:12 kg 的机器在 trot 对角支撑下,单腿承重约为体重的一半,F = 12 × 9.8 / 2 ≈ 59 N;当足端落点在髋关节前方 0.03 m 处时,髋关节静态扭矩约为 1.8 N·m、膝关节约为 3 N·m,数值较小。真正的需求全部来自动态过程:落地冲击将静态值放大 3~5 倍,15° 上坡再为膝关节增加 5~8 N·m,摆动腿加速所需的惯量还需髋关节额外提供 6 N·m,合并后膝关节的峰值需求落在 20 N·m 级。这就是参考设计中“峰值需求 20 N·m 级”的来源,它对应 GO-M8010-6 的 23.7 N·m,预留约 20% 余量;而 14 kg 会将需求推至 23 N·m 级,恰好贴近上限。质量增加两公斤,电机即需提升一档;反之,电机该档位的价格决定了整机质量的上限。

指标之间的耦合关系

初次接触时最容易被忽略的是指标之间的耦合,以下三条关系链分别对应一类常见问题。

第一条是质量决定扭矩,扭矩决定成本。关节峰值扭矩大致正比于“整机质量 × 腿长 × 动态系数”:质量从 12 kg 增加到 14 kg,静态扭矩需求上升 17%,但影响并未结束,惯量增大还会加剧落地冲击,实际需要预留 25%~30% 的余量,这些余量最终转化为更贵的电机与更重的减速器,反过来又增加质量。以参考设计核算:12 kg 对应的峰值需求在 20 N·m 级,增加到 14 kg 即推至 23 N·m 级,恰好压在 GO-M8010-6 峰值 23.7 N·m 的边界上。因此 12 kg 并非凭空设定,而是贴近 23.7 N·m 这一数值;增加两公斤质量,实际上是把方案推向更高的成本区间。

第二条是速度决定带宽。速度等于步长乘以步频,步频提高后,关节转速、总线帧率、控制带宽均需同步提高;达到一定程度后,4 Mbps 的 RS485 总线会先达到承载上限(电子篇会核算这一笔账)。速度并非只是“跑快一点”,它会连带影响整个通信架构。

第三条是续航决定电池,电池决定质量。续航约等于电池能量除以平均功率;电池容量增加 30%,质量增加 0.3~0.5 kg,扭矩需求随之上升。教学机不应追求过长续航,45 分钟已足够,需要的不是更大的电池,而是更快的换电池速度。

三条关系链归结为一条经验:先确定质量与站高,其余指标都是这两个量的函数。确定这两个值后,后续选型才能得到唯一解。

从需求到整机架构

需求确定后,整机的基本形态即可明确。自上而下分为三层:上位机、主控、关节模组。上位机是机身内的 x86 迷你主机(i7 + RTX 4060),运行感知、路径规划与 RL 策略推理,10~50 Hz 即可满足,因为决策环节对频率要求不高;主控是达妙 DM-MC02(STM32H723VGT6,550 MHz,双精度 FPU),运行状态估计、步态相位、MPC/WBC 与保护判断,1 kHz 的周期不可缺失;12 个关节模组内部自带 FOC 电流环,在 20 kHz 下自行闭环,主控仅负责下发指令与接收反馈。

层 频率 跑什么
关节模组内部 20 kHz FOC 电流环、编码器采样、过流保护
主控控制环 1 kHz 状态估计、步态相位、MPC/WBC、保护判断
关节指令 1 kHz RS485 下发指令帧、收反馈帧
上位机 10~50 Hz 感知、路径、RL 策略推理
flowchart TB
subgraph HOST["上位机(x86,i7 + RTX 4060)"]
PER["感知 / 规划 / RL 推理<br/>10~50 Hz"]
end
subgraph MCU["主控(达妙 DM-MC02,STM32H723)"]
EST["状态估计 200~500 Hz"]
GAIT["步态 / MPC / WBC 1 kHz"]
COM["RS485 调度 1 kHz"]
end
subgraph BUS["RS485 ×2,4 Mbps"]
R1["总线 1:关节 1~6"]
R2["总线 2:关节 7~12"]
end
subgraph JOINT["关节模组 ×12(GO-M8010-6)"]
J["FOC 电流环 20 kHz"]
end
PER <-->|"USB / 串口"| MCU
MCU --> R1 --> JOINT
MCU --> R2 --> JOINT
JOINT -->|"反馈帧"| MCU
IMU["IMU(SPI)"] --> EST
BAT["6S 22.2 V"] --> JOINT
BAT -->|"DCDC 5 V / 3.3 V"| MCU
ESTOP["硬件急停"] -.->|"切断使能"| JOINT

上述频率口径全文统一,后续不再更改:控制环 1 kHz,状态估计 200~500 Hz,电池 6S 全程 19.8~25.2 V。主控不直接承担 FOC 的原因在于:12 路 20 kHz 电流环集中在一个 MCU 上,功率线与编码器线均需拉回主控,布线、EMI、实时性都会显著恶化。宇树模组已将 FOC 集成在关节内部,主控仅下发“力矩、速度、位置、kp、kd”五个量,这是本系列默认的架构,也是整机能在半年内运行起来的原因。

这里有一处流传较广的易错点,需要在此澄清:宇树电机采用 RS485,而非 CAN。网络上所说的“CAN 8 字节 MIT 帧”是达妙、CubeMars 等驱动器的做法;宇树官方电机协议为 4 Mbps 的 RS485 串行帧(17 字节命令 + 16 字节反馈,CRC16-CCITT),所谓“CAN 转 485 模块”仅完成物理层转接。因此本方案采用两条 RS485、每路 6 个关节、1 kHz 下发,负载约 50%,余量充足;12 个关节共用一条总线时负载会达到 99%,并非合理选择。为何不用 CAN、带宽如何计算,选型篇与电子篇会详细说明。

其余为五个关键决策,每个均给出“何时需要调整”的判据:执行器采用准直驱 QDD 路线(6.33:1 行星减速,力控带宽高、背驱性好,仅在重载高精度场景下改为高减速比谐波);关节电机在 GO-M8010-6 与 IM6014 之间二选一,第三篇将以参数为依据;主控选择 DM-MC02 而非自行搭建 H743 开发板,因其板载两路 10 Mbps RS485 与三路 FDCAN,已解决最繁重的部分;控制采用传统控制与强化学习双主线,先用可解释的 MPC/WBC 走稳,再引入 RL 实现上层策略;最后是结构与仿真:机身碳板加腿部 3D 打印,在“刚度与迭代速度”之间取得平衡,仿真选用 MuJoCo,因其轻量、快速且足以验真,强化学习训练再转用 Isaac,第九、十篇会详细说明。每个决策背后的完整理由,均会在对应篇章中展开。

上位机选用 x86 迷你主机而非 Jetson,原因如下:本方案采用的雷神迷你主机为 i7 + RTX 4060,显存 8 GB(TODO(实测确认))。该配置足以满足感知与 RL 推理,但不足以运行 Isaac Sim 训练;训练应由另一台 16 GB 显存的机器或云端完成,部署机仅负责推理。判据只有一条:推理依赖低延迟,训练依赖显存,两台机器分工比一台全能机更经济。这一判断在第十篇 RL 部分会再次出现,届时将发现它几乎决定了是否应当购置独立显卡。

采购之前,先完成四项低成本实验

在批量采购 12 个电机之前,应先以数百元成本完成四项实验,全部通过后再进行批量采购:

  1. 单电机台架:通过 USB 转 485 发送位置与力矩阶跃,测量温升,通过标准为位置跟踪误差小于 2°、连续 10 分钟温升小于 40 K;
  2. 单腿样件:打印一条腿并手动加载,用千分表测量末端位移,额定负载下变形小于 2 mm、回差小于 1° 方为合格;
  3. 单腿仿真:在 MuJoCo 中导入 URDF 并与实测足端位置对比,三组姿态误差小于 5 mm;
  4. 电源台架:以限流电源加电子负载测量 12 关节堵转电流,母线压降小于 1 V、线缆温升小于 30 K。

实验之外,风险清单应提前明确。电机供货与涨价属于概率中等、影响最高的风险,对策是锁定两家货源、先采购一个进行验证再批量采购;烧毁主控与关节可通过限流电源、防反接、TVS 与“上电前测短路”降低概率;结构断裂可通过打印件加筋、关键件采用碳板,并增加一次软垫跌落测试提前暴露;调试摔损几乎必然发生,因此备件中应常备一条小腿、四个足端、一个模组;伤人的概率虽低但后果不可接受,急停、限速、场地隔离缺一不可。最后是进度拖延,属于最普遍也最隐蔽的风险,对策只有一条:每周固定进行 demo,以可见的进展对冲难以察觉的心态消耗。

这四项实验分别验证电机、结构、模型、电源四个方面,任何一项未通过,批量采购的费用即可节省。工具方面需准备万用表、0~30 V 限流电源、USB 转 RS485 模块(需 4 Mbps 级)、压线钳与电子秤;场地需 3 × 3 m 平整地面加 1 m 缓冲,防护绳与急停开关自第一次通电起就应置于手边。安全方面需强调:12 kg 的机器在 1 m/s 速度下撞击人体足以造成骨折,第一次上电必须限流,第一次落地必须使用防护绳,锂电池不穿刺、不短路、充电时须有人值守。

本篇的产出是一张 12 行的需求书:质量、站高、腿长、速度、续航、越障、负载、关节峰值扭矩、关节最大转速、电池规格、总线拓扑、预算。可将该表复制下来,逐格填写数值与依据,找不到出处的内容标注 TODO(实测),不应虚构。

项 你的值 依据
整机质量 ___ kg 负载 + 电池 + 结构估算
站立高度 ___ m 越障需求反推
大腿 / 小腿 ___ / ___ m 工作空间
最大速度 ___ m/s 使用场景
续航 ___ min 电池容量
越障 ___ m / ___ ° 使用场景
负载 ___ kg 使用场景
关节峰值扭矩需求 ___ N·m 第 3 篇公式
关节最大转速需求 ___ rad/s 第 3 篇公式
电池 ___ S / ___ mAh / ___ C 第 4 篇公式
总线拓扑 ___ 路 / ___ Hz 带宽计算
预算 ___ 元 采购表

需求书并非完成后即固定不变的文档,而是持续更新的文档:后续每章算出一个新数值就回填一格,出现不符时应先修改需求再修改硬件。缺乏依据的指标有一种典型后果:站高定为 0.5 m、腿长取到上限、电机提升一档、预算翻倍,而实际使用场景仅需通过 5 cm 的门槛。这张表会一直沿用至第十二篇,后续每章都在为它补充数值。需求确定后,下一篇才进入机械设计。下一篇将讨论机械部分:一条腿的三个长度如何确定、方盒模组如何安装,以及一道决定腿部软硬程度的悬臂梁计算,见四足开发实战(二):机械篇——一条腿的设计与刚度。