足式机器人(如四足机器狗)之所以能在复杂地形上奔跑、跳跃甚至抗干扰,其核心秘密武器之一就是模型预测控制(Model Predictive Control, MPC)。MPC 就像是机器人的“战术大脑”,它通过在线滚动优化的方式,实时计算出未来一段时间内每条腿该出多大的力,从而完美解决动态运动中的腿部力分配难题。
🧠 MPC的核心逻辑:走一步,看未来十步
传统的控制器(如 PID)往往是“走一步看一步”,发现身体歪了才去调整。而 MPC 的核心思想是“预判”。在每个控制周期(例如 100Hz,即每 0.01 秒),MPC 都会根据机器人当前的状态(位置、速度、姿态),快速推演未来一小段时间(预测时域,通常为 0.2~0.5 秒)内机器人的运动趋势。
它会在这个预测窗口内,通过数学优化算法,计算出一系列最优的控制指令(即每条支撑腿的足端反作用力)。算出这一连串未来的力之后,MPC 并不会全部执行,而是只提取当前时刻(即未来序列的第一步)的力作为最终指令,下发给底层控制器。到了下一个控制周期,机器人状态更新,MPC 会再次基于最新状态重新进行一轮预测和优化。这种“滚动优化”的机制,让机器人能够提前应对即将到来的地形变化或外部扰动。
📦 巧妙的模型简化:把机器人看作“单刚体”
足式机器人拥有十几个甚至几十个自由度,如果直接对完整的多体动力学进行实时优化,计算量极其庞大,根本无法满足毫秒级的控制需求。为了解决这个问题,MPC 采用了一个极其巧妙的简化:单刚体模型(Single Rigid Body Model, SRBM)。
在 MPC 的视角里,它暂时忽略了机器人复杂的腿部质量和关节运动,将整个机器人(躯干加腿)简化为一个在空中飞行的“盒子”(即单个刚体)。这个“盒子”受到两个主要外力:一个是始终向下的重力,另一个就是几条支撑腿与地面接触产生的地面反作用力(GRF)。通过牛顿第二定律(F=ma)和欧拉转动定律(M=Iα),MPC 只需要用 12 个状态变量(6个自由度的位置与速度)就能完整描述机器人的躯干动态。这种简化将计算量降低了数个数量级,使得在机载电脑上实时求解成为可能,同时又能保证极高的控制精度。
🎯 实时力分配的求解过程:凸二次规划(QP)
MPC 进行腿部力分配的过程,本质上是在求解一个带约束的凸二次规划(Convex QP)问题。它的优化目标非常明确:在满足各种物理限制的前提下,找到一组最优的足端力,让机器人的躯干能够精准跟踪期望的运动轨迹(如期望的前进速度、身体高度和姿态)。
在这个优化问题中,MPC 必须严格遵守以下物理约束:
- 摩擦锥约束:为了防止机器人脚掌打滑,足端合力必须限制在摩擦锥之内(即水平方向的力不能大于垂直压力与摩擦系数的乘积)。
- 单向接触约束:地面只能提供向上的支撑力,不能提供向下的“吸力”,因此垂直方向的反作用力必须大于等于零。
- 执行器力矩限制:计算出的足端力,通过雅可比矩阵映射回关节空间后,不能超过电机和减速器的峰值扭矩极限.
通过高效求解器(如 OSQP)实时解算这个 QP 问题,MPC 就能输出当前时刻每条腿在 X、Y、Z 三个方向上应该施加的精确力值。
🤝 上下级协同:MPC 与 WBC 的完美配合
值得注意的是,MPC 算出来的只是躯干层面的“理想足端力”,但机器人最终执行的是 12 个关节电机的扭矩。这就需要一个“执行者”——全身控制器(Whole-Body Controller, WBC)。
在实际的分层控制架构中,MPC 作为上层战略指挥官,以较低的频率(如 100Hz)运行,负责规划躯干的动态和分配足端力。而 WBC 作为前线战术指挥官,以极高的频率(如 1kHz)运行。它接收 MPC 下发的足端力指令以及摆动腿的轨迹规划,结合包含腿部质量的完整多体动力学模型,通过力雅可比矩阵将足端力精准映射为 12 个关节电机的目标扭矩。
正是通过 MPC 的前瞻性力分配与 WBC 的高频精准执行,足式机器人才能在保持高速奔跑的同时,从容应对踢撞、打滑等各种突发状况,展现出惊人的动态平衡能力。













.eb68a87.png)
.8d1291d.png)
.3808537.png)
.2fc0a9f.png)