OpenLoong Dynamics Control

基于MPC与WBC的仿人机器人运动控制框架

1上海人形机器人制造业创新中心 2人形机器人(上海)有限公司

       仿人机器人是模拟人类行为和外貌的机器人,通过结合先进技术如人工智能、语音识别等,实现更真实人机交互,满足人类对更复杂互动的需求。 虽然目前有诸如Atalas、Digit等较为成熟的产品,但有关仿人机器人运动控制的开源内容依旧有限。

       本项目开发了基于MPC(Model Predictive Control,模型预测控制)和 WBC(Whole Body Control,全身控制)的开源控制框架, 完成全身31个自由度机器人的运动控制,并在Mujoco仿真平台上验证了算法的可行性,实现了机器人的行走盲踩障碍跳跃

本控制框架代码具备以下几个优势:

  • 易部署      集成了主要第三方库依赖,简化部署过程。
  • 可扩展      框架结构分层模块化设计,为二次开发提供了友好的环境。
  • 易理解      针对功能进行代码模块封装,降低代码复杂度,提高可理解性。
  • MPC+WBC算法控制框架

    该控制框架具备以下特点:

  • 基于单刚体模型对机身状况的预测产生提前的控制量,提高机器人控制的稳定性。
  • 基于全维动力学模型,应用多任务优先级控制,实现冗余自由度机器人的运动控制。
  • 控制框图如下所示:

    figure1 image.

    控制框图

    MPC在低频层级运行,基于单刚体模型通过对未来一段时间内对系统模型进行预测,并基于当前系统状态与预测优化生成足底接触力轨迹。

    机器人单刚体模型如下所示:

    MPCmodel image.

    MPC的优化过程如下所示:

    MPC image.

    WBC在高频层级运行,通过零空间映射实现机器人全身多关节对于多任务的执行,并基于全身动力学优化最终生成全身关节的位置速度力矩指令。

    机器人全维动力学模型如下所示:

    WBCmodel image.

    WBC的优化过程如下所示:

    WBC image.

    以上为本控制框架的核心算法,据此实现机器人的多种运动能力。

    示例视频

    本控制框架在Mujoco仿真平台下实现了机器人行走,并能进行盲踩及跳跃,示例代码可在开源项目仓库中下载并复现其效果。

    示例:1m/s快速行走

    示例:盲踩障碍物与10cm跳跃

    写在最后

  • 本项目基于Mujoco仿真平台进行算法可行性验证,仿真环境搭建可参考Mujoco官方文档。
  • 本项目参考了MPC与WBC相关文献,及MATLAB关于MPC的教程,用户若想进一步了解算法,可参考该文献 1, 2, 3教程