三分钟看懂 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 底层执行
三者分别负责动作选择、未来规划和全身协调,从而提升机器人在平地、斜坡和台阶等场景中的运动表现。