技术博客
推理优化其他原理

三分钟看懂 WBC 与 QP:机器人底盘如何协调全身运动

LSST2026-08-06 09:37
三分钟看懂 WBC 与 QP:机器人底盘如何协调全身运动

三分钟看懂 WBC 与 QP:机器人底盘如何协调全身运动

在普通轮式机器人中,底盘控制通常比较直接:根据期望速度计算左右轮转速,再由电机完成跟踪。

但对于轮足机器人、双足机器人和四足机器人来说,事情要复杂得多。

机器人向前运动时,不仅要控制轮子或足端,还要同时调整机身姿态、腿部关节、身体高度和地面作用力。如果这些部分分别独立运行,可能出现机身倾斜、载荷分配不均或动作不连贯等现象。

WBC 与 QP,就是用于协调这些任务的一类方法。


一、什么是 WBC?

WBC 的英文全称是 Whole-Body Control,通常翻译为全身控制。

它的核心思想是:

不把轮子、腿部和机身完全分开处理,而是将机器人看成一个整体,统一计算各个关节和接触点应该如何运动。

对于轮足机器人,WBC 通常需要同时考虑:

  • 机身高度;

  • 前进速度;

  • 转向速度;

  • 俯仰和横滚姿态;

  • 左右轮的地面作用力;

  • 髋关节和膝关节的运动;

  • 电机允许的输出范围;

  • 轮地接触状态。

因此,WBC 可以理解为机器人底层运动系统中的“全身协调器”。


二、为什么普通轮速控制还不够?

对于差速轮式底盘,左右轮速度可以简单表示为:

左轮速度 = 前进速度 - 转向修正量
右轮速度 = 前进速度 + 转向修正量

这种方式适合结构固定、主要在平面行驶的移动机器人。

轮足机器人的底盘高度和腿部姿态会不断变化。当机器人加速、减速、爬坡或经过台阶时,可能出现:

  • 机身向前或向后倾斜;

  • 左右轮承受的重量不同;

  • 某一侧轮子附着能力下降;

  • 腿部关节输出变化较快;

  • 身体高度出现波动;

  • 上台阶时姿态调整不及时。

因此,轮足机器人不能只关注轮速,还需要同时协调身体和腿部。


三、什么是 QP?

QP 的英文全称是 Quadratic Programming,即二次规划。

它是一种数学优化方法,可以在多个候选控制结果中,寻找综合表现更合适的一组输出。

一个简化的 QP 可以理解为:

寻找一组控制变量

使得:
姿态误差尽量小
速度误差尽量小
关节输出尽量平滑
接触力变化尽量平缓

同时满足:
机器人动力学关系
电机输出范围
关节活动范围
轮地接触条件

WBC 描述的是整体控制思路,QP 则是实现这一思路的常用计算工具。


四、WBC 一般计算什么?

不同的机器人会采用不同设计,WBC 常见的计算结果包括以下几类。

1. 关节加速度

控制器先计算每个关节下一时刻应该具有多大的加速度,再通过动力学模型换算成电机输出。

2. 关节力矩

控制器直接计算髋关节、膝关节和轮子电机所需的力矩。

3. 地面作用力

控制器计算左右轮或多个足端应该承担多少支撑力。

4. 多种变量联合计算

部分系统会同时计算:

关节加速度
地面作用力
关节力矩

这种方式能够更完整地描述机器人运动,但计算规模也会更大。


五、WBC 中的机器人动力学

机器人运动可以用一个简化关系描述:

惯性产生的作用
+ 运动过程中的耦合作用
+ 重力作用
=
关节电机输出
+ 地面接触作用

这表示机器人当前的运动,不仅由电机决定,也与身体质量、关节姿态和地面接触有关。

在 WBC 中,动力学关系通常作为必须满足的基本条件。

控制器不能随意给出一组关节输出,而是需要保证这组输出与机器人的物理模型相符。


六、WBC 可以同时完成哪些任务?

1. 机身姿态跟踪

控制器可以让机身尽量保持期望的俯仰角、横滚角和偏航方向。

例如,机器人加速时,WBC 可以调整腿部和轮子输出,减小机身后倾。

上台阶时,也可以根据期望姿态提前调整身体角度。


2. 质心速度跟踪

机器人的前进、侧向移动和高度变化,都可以通过质心任务进行描述。

控制器会比较:

当前质心速度
期望质心速度

然后计算合适的加速度和关节输出,使机器人逐渐接近期望运动状态。


3. 身体高度调节

轮足机器人通常可以通过腿部伸缩改变机身高度。

WBC 可以在保持姿态的同时调节髋关节和膝关节,使机器人完成:

  • 站高;

  • 下蹲;

  • 保持固定高度;

  • 根据地形调整高度。


4. 左右载荷分配

双轮足机器人通常有左右两个主要接触区域。

控制器可以根据机器人姿态和质心位置,调整左右两侧承担的重量,避免长期明显偏向一侧。

这对于直线行驶、转向和爬坡都很重要。


5. 默认腿部姿态

除了机身和速度任务,控制器还可以给腿部设置一个参考姿态。

例如:

  • 膝关节保持适当弯曲;

  • 左右腿尽量对称;

  • 关节远离活动边界;

  • 没有特殊动作时回到自然站姿。


6. 输出平滑

如果相邻控制周期的关节力矩或接触力变化过快,机器人可能出现明显抖动。

因此,QP 中通常会加入平滑项:

当前输出尽量接近上一周期输出

这样可以让机器人运动更加连续。


七、QP 中常见的边界条件

1. 电机输出范围

每个电机都有允许的最大输出。

QP 会限制计算结果,避免给出设备无法执行的数值。


2. 关节位置范围

髋关节和膝关节都有一定的活动区域。

控制器可以预测下一时刻的关节位置,并在接近边界时提前减小运动趋势。


3. 关节速度范围

关节转动速度也需要保持在合理范围内。

速度过高不仅难以执行,还可能使机器人动作不够平稳。


4. 地面附着条件

轮子能够提供的水平作用力,与地面材质和法向支撑力有关。

如果控制器要求的水平作用过大,轮子可能发生滑动。

QP 可以根据预设的地面参数,对水平和竖直方向的作用力进行限制。


5. 法向支撑力

轮子或足端只能在接触地面时提供有效支撑。

因此,法向作用力通常需要保持为非负值,并设置合理的上下范围。


八、多个控制目标如何排序?

机器人可能同时希望完成以下任务:

  • 保持身体水平;

  • 跟踪前进速度;

  • 保持适当高度;

  • 减小电机输出;

  • 维持自然腿部姿态。

这些目标不一定能够同时达到最佳状态,因此需要设置优先程度。

方法一:加权 QP

为不同任务设置不同权重。

例如:

机身姿态:较高权重
速度跟踪:较高权重
身体高度:中等权重
腿部姿态:较低权重
输出平滑:辅助权重

权重越大,控制器越重视对应任务。

这种方法结构简单,适合实时控制,但权重需要经过多次调节。


方法二:分层 QP

分层 QP 也称为 HQP。

它会按照优先顺序依次处理任务,例如:

第一层:动力学和接触条件
第二层:机身平衡与姿态
第三层:速度和高度跟踪
第四层:腿部姿态与输出优化

后面的任务只能在不明显影响前面任务的情况下继续优化。

这种方式的任务关系更加清晰,但实现复杂度也会更高。


九、轮足机器人的滚动关系

点足机器人的支撑脚通常被近似为固定接触点。

轮足机器人则不同。轮子需要沿滚动方向运动,同时尽量减少侧向滑动。

轮地接触通常需要考虑三个方向:

法向方向:轮子不能进入地面
侧向方向:尽量减少横向滑动
滚动方向:接触速度与轮子转速对应

其中,滚动方向的基本关系可以写成:

底盘滚动速度 = 轮子半径 × 轮子角速度

如果直接把轮子当成完全固定的足端,可能使轮子转动和腿部控制相互影响,导致求解结果不够自然。

因此,轮足机器人的 WBC 需要单独建立滚动模型。


十、轮足机器人的 WBC 控制结构

一个常见的轮足机器人控制系统可以分成三层。

上层:运动指令

输入可以来自遥控器、导航系统或上层策略,包括:

期望前进速度
期望转向速度
期望机身高度
期望身体姿态

中层:状态估计和目标生成

状态估计器提供:

  • 机身姿态;

  • 机身角速度;

  • 机身线速度;

  • 关节角度;

  • 关节速度;

  • 轮地接触状态;

  • 左右载荷情况。

目标生成模块根据运动指令,计算下一时刻希望达到的状态。


下层:WBC 与 QP

WBC 根据动力学模型和当前状态计算:

  • 髋关节输出;

  • 膝关节输出;

  • 左右轮驱动力矩;

  • 左右接触作用力;

  • 关节期望加速度。

最终结果再发送给电机控制器。

实际系统中,WBC 输出通常还会与局部 PD 调节结合:

最终电机输出
=
WBC 动力学前馈
+
关节位置反馈
+
关节速度反馈

这样既能利用动力学模型,也能修正实际运行中的小误差。


十一、WBC 与 MPC 有什么区别?

MPC 是模型预测控制,主要关注未来一段时间内的运动趋势。

WBC 更关注当前控制周期内,全身各个部分应该如何配合。

可以简单理解为:

MPC:规划接下来怎样运动
WBC:计算当前时刻怎样协调全身

常见组合方式为:

速度指令
→ MPC 生成质心轨迹和作用力参考
→ WBC 计算关节输出
→ 电机执行

MPC 可以提供未来的运动参考,WBC 则把参考目标转换成当前可执行的关节指令。


十二、WBC 与强化学习有什么区别?

强化学习通过大量训练,让策略根据机器人观测直接生成动作。

WBC 则依靠明确的动力学模型和在线计算生成控制结果。

WBC 的特点

  • 控制过程容易分析;

  • 可以直接设置电机和关节范围;

  • 适合规则运动任务;

  • 不需要大量训练样本;

  • 对模型参数精度有一定要求。

强化学习的特点

  • 能够学习较复杂的动作模式;

  • 对非线性任务具有较强表达能力;

  • 适合台阶、越障和复杂地形;

  • 训练过程需要较多计算资源;

  • 控制边界通常需要额外设计。

两种方法并不是互相替代的关系,也可以组合使用。


十三、强化学习如何与 WBC 结合?

一种常见结构是:

强化学习策略
→ 生成身体姿态或足端目标
→ WBC 与 QP
→ 计算关节输出

强化学习可以负责决定:

  • 什么时候抬腿;

  • 抬腿高度;

  • 身体前倾程度;

  • 期望机身高度;

  • 左右腿动作节奏;

  • 不同 WBC 任务的权重。

WBC 则负责把这些目标转换成符合动力学关系的关节指令。

这种组合可以让学习策略负责高层动作选择,让 WBC 负责底层协调。


十四、WBC 能直接完成无视觉爬楼吗?

仅依靠传统 WBC 完成无视觉爬楼,通常比较困难。

因为 WBC 本身主要解决“如何执行”的问题,并不直接判断:

  • 前方是否出现台阶;

  • 台阶高度是多少;

  • 应该何时抬腿;

  • 应该先抬哪一侧;

  • 轮子是否已经接触台阶边缘。

因此,可以增加一个上层判断模块:

接触力和关节状态
→ 台阶判断模块或强化学习策略
→ 生成抬腿轨迹
→ WBC 协调机身和关节

在这种结构中:

  • 上层模块负责判断动作时机;

  • 轨迹模块负责生成抬腿过程;

  • WBC 负责保持姿态并分配关节输出。


十五、WBC 实现中常见的问题

1. 模型参数不准确

机器人质量、质心、惯量和电机参数如果存在较大误差,动力学前馈效果会下降。

实际系统通常需要保留位置和速度反馈进行修正。


2. 接触状态判断不准确

如果控制器对轮子是否接触地面的判断与实际情况不一致,计算出的接触作用力也会出现偏差。

可以使用连续多帧确认、接触力滤波和状态缓冲等方法提高稳定性。


3. 地面参数设置不合适

地面附着参数设置过高,控制器可能给出实际地面难以提供的水平作用。

设置过低,则会限制机器人加速和爬坡能力。


4. 任务权重差距过大

不同任务的数值尺度差别过大,可能影响 QP 的计算效果。

因此,通常需要先对误差量进行归一化,再设置合理权重。


5. 接触切换过快

机器人从双侧支撑切换到单侧支撑时,如果参数瞬间改变,输出也可能突然变化。

可以使用:

  • 权重渐变;

  • 接触力渐变;

  • 状态缓冲;

  • 轨迹平滑;

  • 多帧接触确认。


6. 控制频率不足

WBC 通常需要较高的运行频率。

一个常见的系统配置是:

状态估计:500 至 1000 Hz
WBC 或 QP:200 至 1000 Hz
上层 MPC:20 至 100 Hz
路径规划:1 至 20 Hz

具体频率需要根据机器人自由度、处理器性能和求解规模确定。


十六、常见的 QP 求解工具

机器人项目中常见的 QP 求解工具包括:

  • OSQP;

  • qpOASES;

  • ProxQP;

  • HPIPM;

  • Clarabel;

  • eiquadprog。

选择求解工具时,通常需要关注:

  • 单次计算时间;

  • 连续求解能力;

  • 是否支持热启动;

  • 数值稳定性;

  • 稀疏矩阵支持;

  • 求解失败时的处理方式。

对于高频底盘控制,通常优先考虑轻量、稳定并支持热启动的求解器。


十七、总结

WBC 的核心,是把机器人机身、腿部、轮子和地面接触统一放入一个动力学框架中。

它可以同时协调:

  • 质心运动;

  • 机身姿态;

  • 身体高度;

  • 腿部关节;

  • 轮子转动;

  • 左右载荷;

  • 地面作用力。

QP 则负责在多个目标和边界条件之间寻找较合适的控制结果。

对于轮足机器人,可以把三种方法理解为:

强化学习:学习复杂动作策略
MPC:规划未来运动趋势
WBC 与 QP:完成当前时刻的全身协调

一个较完整的机器人运动系统可以采用:

强化学习行为策略
+
MPC 轨迹规划
+
WBC 与 QP 底层执行

三者分别负责动作选择、未来规划和全身协调,从而提升机器人在平地、斜坡和台阶等场景中的运动表现。

点赞收藏
// 评论0
0 / 500
还没有评论,快来抢沙发