步态控制与全身控制

进阶 运动与控制 kp-204 步态ZMP全身控制足式

一句话定义

步态控制解决足式机器人"何时落足、如何摆腿"的稳定性问题;全身控制(WBC)把躯干任务与四肢约束统一为一个多目标优化,让高自由度身体在接触中协调运动。

为什么重要

  • 足式(尤其双足人形)是控制难度最高的主流形态,其方法栈(ZMP → MPC → RL/WBC)是理解 kp-503 人形机器人的必修课。
  • WBC 是"高自由度身体 + 多接触任务"的通用求解框架,人形上半身操作、四足开门都靠它。
  • 2022 年后 RL 逐步接管步态层,但理解经典方法才能看懂 RL 策略在"学什么"、失败在"哪一层"。

前置知识

kp-201、kp-105(状态估计)、刚体力学直觉。

核心概念

ZMP(零力矩点):地面反力的等效作用点。动态平衡条件:ZMP 落在支撑多边形内。走路 = 让 ZMP 始终在"当前+未来支撑"多边形内的落足点序列问题。

LIPM(线性倒立摆模型):把身体压缩成"质点+无质量腿",解析给出质心轨迹与落足点的关系,是 ZMP 步态生成的经典模型(Kajita 2001)。

捕获点(Capture Point):使机器人能停住的那一步落点。超出可捕获范围 = 必摔。它给出比 ZMP 更直观的扰动裕度(推一下,还能救吗?)。

MPC 步态(MIT Mini Cheetah, 2018):在短时域内优化质心轨迹 + 落足时序,生成地面反力分配——四足的主流方案。

WBC(全身控制):把躯干运动、摆腿轨迹、接触力约束、关节限位等写成层级化 QP(task-priority),以极高频率(0.5~1 kHz)求各关节力矩。理论基础是 Khatib 的操作空间方法(1987)。

接触动力学:足-地接触的摩擦锥(切向力 ≤ μ·法向力)是非光滑约束,是足式与操作(kp-203)共同的数学难点。

原理与机制

经典栈(ZMP 时代,ASIMO 为代表):

足型规划(何时何地落脚)─► 质心轨迹生成(LIPM,保证ZMP在支撑内)
   ─► 逆运动学摆腿 ─► 关节跟踪 + 姿态平衡反馈

优点:理论清晰、可证明稳定;缺点:跛行式直膝步态、抗扰差。

现代栈(模型预测 + WBC,或 RL):

指令速度 ─► MPC(0.02~0.1s时域,优化质心+落足+反力)
   ─► WBC(1kHz QP:分配关节力矩,尊重摩擦锥/限位/自碰)
   ─► 关节电流环

MPC 管"想",WBC 管"做":MPC 输出的粗轨迹被 WBC 以全身一致性精修——双系统架构在控制层的原型(对应 kp-003 的分层闭环)。

RL 接管(详见 kp-206):GPU 并行仿真中训练速度跟踪/复杂地形策略,直接输出关节目标;真机再叠加安全滤波。优点是步态自然、抗扰强;缺点是可解释性与形式化稳定性弱。

公式与图示

LIPM 的质心动力学(高度恒定 $z_c$):

$$\ddot{x} = \frac{g}{z_c}(x - p_x)$$

$p_x$ 为 ZMP 位置——质心加速度正比于质心与 ZMP 的偏离,"把支点甩到身体外侧"就是走路。

WBC 的层级 QP 骨架:

$$\min_{\boldsymbol{\tau}, \mathbf{f}} \sum_i w_i \|\mathbf{J}_i \ddot{\mathbf{q}} + \dot{\mathbf{J}}_i\dot{\mathbf{q}} - \ddot{\mathbf{x}}_i^{des}\|^2 \quad \text{s.t. } \mathbf{M}\ddot{\mathbf{q}} + \mathbf{h} = \mathbf{S}^\top\boldsymbol{\tau} + \mathbf{J}_c^\top\mathbf{f},\ \mathbf{f} \in \mathcal{C}_{friction}$$

接触力 $\mathbf{f}$ 必须在摩擦锥 $\mathcal{C}_{friction}$ 内——非光滑约束通常线性化为多面体。

    推一下 ─► 质心偏离 ─► 捕获点落在支撑外?
                 │                     │
                 │否:WBC/MPC 调整 ────┘ 恢复
                 ▼是
             触发恢复步/跨步(capture step)─► 重新建立支撑

直观类比

  • 走独木桥:你不断把重心投影挪回脚下窄条(ZMP 控制);要摔时迈一步"自救"(捕获步)。
  • 推不倒翁:底部配重让它总能摆回来;足式机器人没有配重,只能用"迈步"制造动态恢复——这就是为什么轻微推搡下机器人会"踉跄两步",那不是 bug,是控制律在救场。

实例与案例

  • MIT Mini Cheetah(2018):MPC 步态开源后成为全球四足实验室标配方案;宇树早期产品同样路线。
  • Boston Dynamics Atlas(液压版):跑酷视频背后的经典栈是 MPC+WBC 混合;2024 电动版转向更依赖学习式方法。
  • ETH ANYmal:从 MPC(Science Robotics 2019 之前的经典)全面转向 RL(2019-2023 系列论文),展示了该领域的范式迁移全过程。
  • 人形上身操作:Figure、宇树 demo 中"走路+搬箱"由 WBC 或 RL-WBC 混合实现,躯干稳定性与手臂任务冲突时由层级优先级仲裁。

常见误区

  • 误区一:ZMP = 质心投影。ZMP 由加速度决定,静止时才等于质心投影;跑步时 ZMP 可以在支撑面外(飞行相)。
  • 误区二:RL 步态不需要模型。训练奖励、地形课程、观测空间的设计全是模型知识(kp-206);RL 只是换了"求解器",没换"物理"。
  • 误区三:WBC 稳定=系统稳定。WBC 是 1kHz 内环,其上游 MPC 或 RL 给出烂目标照样摔;排查足式问题必须分层看。

自测题

  1. 用 LIPM 解释"为什么走路时身体会前后摆动"。
  2. 捕获点与 ZMP 的关系是什么?"被推之后还能不能救回来"由什么量决定?
  3. 描述 MPC+WBC 分工,并说明 RL 步态如何替换其中一层。

与其他知识点的关系

延伸阅读

  • Kajita et al., ZMP-based Locomotion(Springer Handbook of Robotics 章节)。
  • Di Carlo et al., Dynamic Locomotion in the MIT Cheetah 3, IROS 2018。
  • Wensing, Posa, Hu, Escande, Mansard, Del Prete, Optimization-Based Control for Dynamic Legged Robots, T-RO 2023(WBC 最佳综述)。

本节引用来源

  • Vukobratović & Stepanenko, ZMP, 1972
  • Di Carlo et al., MIT Cheetah MPC, IROS 2018