待补充
manumerous/wb_humanoid_mpc
机器人
3/5
🧩 软硬件结合
已发布
项目简介
Whole-Body Nonlinear MPC for Realtime Humanoid Loco-Manipulation Planning and Control
这是一个名为 Whole-Body Humanoid MPC 的开源项目,专注于实现人形机器人的全身运动与操作控制。其核心是一个全身非线性模型预测控制器(NMPC),能够实时优化完整的扭矩级动力学,从而生成丰富多样的人形机器人行为。项目基于扩展和更新后的 ocs2 库构建,提供了两种硬件平台无关的 MPC 公式:质心动力学 MPC 和全身动力学 MPC。质心动力学 MPC 优化全身运动学和质心动力学,支持单刚体模型或完整质心动力学,并泛化了六自由度接触的成本与约束;全身动力学 MPC 则优化接触力和关节加速度,并可计算每个规划步的关节扭矩。项目解决了人形机器人在复杂环境中实现动态行走、操作和全身协调控制的难题,特别适用于需要实时、高动态响应的场景,如双足行走、物体搬运和交互式操作。技术栈包括 ROS2、ocs2 优化库、自动微分以及 Docker 容器化部署。目前支持 Unitree G1 机器人示例,1X Neo 即将推出。用户可通过 Xbox 手柄或终端界面交互式控制机器人的基座速度和高度,Rviz 提供可视化反馈。项目提供了详细的 Docker 和本地安装指南,首次构建时自动生成代码需 5-15 分钟,建议至少 16 GiB 内存。
标签
项目特点
**双模式 MPC 框架**:同时提供质心动力学 MPC 和全身动力学 MPC 两种方案,适应不同控制需求
**实时扭矩级优化**:能够实时优化完整的扭矩级动力学,生成动态行走、操作等复杂行为
**硬件平台无关**:设计上不绑定特定硬件,可以移植到不同的人形机器人平台
**基于 ocs2 库**:构建在扩展和更新后的 ocs2 库之上,保证了控制器的稳定性和效率
**六自由度接触泛化**:质心动力学 MPC 泛化了六自由度接触的成本与约束,支持多种接触模式
**完整动力学支持**:支持单刚体模型或完整质心动力学,覆盖从简化到精确的多种建模需求
技术规格
| 控制器类型 | 非线性模型预测控制器(NMPC) |
|---|---|
| 优化层级 | 全身扭矩级动力学 |
| MPC 模式 | 质心动力学 MPC / 全身动力学 MPC |
| 基础库 | ocs2(扩展更新版) |
| 接触自由度 | 支持六自由度接触 |
| 动力学模型 | 单刚体模型 / 完整质心动力学 |
| 输出类型 | 关节扭矩、接触力、关节加速度 |
| 编程语言 | C++(基于 ocs2 库) |
| 硬件要求 | 无特定硬件绑定 |
项目资源
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| ocs2 库 | 1 | — | 扩展更新版本 |
| C++ 编译器 | 1 | — | 支持 C++11 及以上 |
| CMake | 1 | — | 构建系统 |
| Eigen | 1 | — | 线性代数库 |
| ROS(可选) | 1 | — | 用于机器人通信 |
3D 模型
能力画像
**记忆与知识检索**:2/5 — 项目本身不涉及知识检索功能,但需要查阅 ocs2 文档和 MPC 理论资料
**动手与操作**:3/5 — 需要搭建机器人硬件平台或使用仿真环境进行调试
**编程与算法**:5/5 — 核心是 C++ 实现的非线性 MPC 算法,涉及优化、动力学建模等高级编程
**设计与建模**:4/5 — 需要设计机器人动力学模型、接触模型和成本函数
**实验与调试**:4/5 — 需要大量仿真和实物实验来调优 MPC 参数
**协作与分享**:2/5 — 项目为个人开源,社区协作程度一般
**学习与研究**:5/5 — 涉及最优控制、机器人动力学、模型预测控制等前沿研究领域
**系统集成**:4/5 — 需要将 MPC 控制器与机器人底层驱动、传感器、执行器集成
项目图库
视频
所需技能
C++ 编程能力
机器人运动学与动力学基础
最优控制理论(特别是 MPC)
非线性优化算法
CMake 构建系统使用
人形机器人控制经验
仿真环境使用(如 Gazebo、MuJoCo)
ROS 基础(可选)
适用场景
人形机器人动态行走控制
人形机器人全身操作任务(如搬运、抓取)
复杂地形下的机器人运动规划
多接触点平衡控制
机器人全身协同运动研究
学术研究中的 MPC 算法验证
机器人竞赛中的高级控制策略开发