1. WBC 在 MIT Cheetah 的实现分析
四足机器人控制系统中,全身控制(Whole Body Control, WBC)是最核心的底层控制器之一。作为MIT Cheetah系列机器人的关键技术创新点,其WBC实现融合了优先级任务分解和力矩优化算法,在1kHz的高频控制周期下稳定运行。本文将深入解析这套系统的架构设计、实现细节和工程考量。
1.1 WBC的核心定位与功能
WBC在MIT Cheetah的控制架构中扮演着"执行层"的角色。它接收来自上层MPC(模型预测控制)的机体运动指令和足端力分配方案,通过求解优化问题计算出12个关节的精确力矩命令。与传统的串联式控制不同,WBC能够同时协调机体姿态、足端位置和接触力等多重目标,其核心能力体现在:
- 多目标协同:同时处理机体位置/姿态跟踪、足端轨迹跟踪、接触力控制等相互耦合的控制目标
- 动态优先级管理:通过零空间投影技术实现任务优先级划分,确保关键约束(如接触稳定性)不被违反
- 实时优化计算:在1ms的控制周期内完成包含数十个变量的二次规划问题求解
实际调试中发现,当机器人以3m/s速度奔跑时,WBC的力矩计算耗时需严格控制在0.3ms以内,这对算法实现和矩阵运算优化提出了极高要求。
1.2 系统运行特征
| 指标 | 规格要求 | 实现值 |
|---|---|---|
| 控制频率 | 1kHz | 1kHz(严格保证) |
| MPC频率 | 30-33Hz | 33Hz(每30个WBC周期) |
| 计算延迟 | <0.5ms | 0.1-0.3ms |
| 力矩输出精度 | ±0.1Nm | ±0.05Nm |
这种高性能的实现依赖于几个关键设计:
- 采用Eigen库进行高度优化的矩阵运算
- 使用专门改造的QP求解器处理优化问题
- 精心设计的任务管理系统减少冗余计算
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. WBC系统架构解析
2.1 整体数据流
MIT Cheetah的WBC采用模块化设计,其数据处理流程可分为四个阶段:
code复制[MPC输出] → [模型更新] → [任务/接触更新] → [优化求解] → [关节命令输出]
-
模型更新阶段:
- 获取最新状态估计(机体位姿、关节角度/速度)
- 计算质量矩阵、科里奥利力和重力项
- 更新接触雅可比矩阵
-
任务更新阶段:
- 根据接触状态分类处理支撑腿和摆动腿
- 为每个任务计算雅可比矩阵和期望加速度
- 构建任务优先级列表
-
优化求解阶段:
- 通过KinWBC计算期望关节运动
- 使用WBIC求解满足接触约束的最优力矩
- 处理摩擦锥等力约束条件
-
命令输出阶段:
- 施加关节防翻转保护
- 配置PD增益参数
- 输出最终的力矩和前馈命令
2.2 关键数据结构
WBC的核心运算围绕以下几个矩阵展开:
- 质量矩阵A:
- 18×18矩阵(6维浮基+12维关节)
