在“MIT四足机器人Cheetah 3控制方案理解笔记(1)”中,主要简单的总结了下一般情况下腿足机器人的摆动腿控制方法以及Cheetah 3的基于集中质量模型的平衡控制器。此外,MIT还在Cheetah 3以及Mini Cheetah上采用了Convex MPC平衡控制器,在其2018年论文《Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control》中,Cheetah 3通过Convex MPC平衡控制器达到了3m/s的奔跑速度:

为了将论文中的方案部署到自己的腿足机器人上,笔者此处依次从问题分析、模型简化、方程列写、QP表达形式组织等谈谈自己对这篇论文的一些理解。

1)首先是描述机器人状态的主要变量的选取。对于机器人自身运动状态的描述,姿态以及位置层面,可以使用姿态角(roll ,pitch,yaw)和质心位置(x,y,z)来描述,同时为了描述其运动层面,可以加入姿态角角速度以及机器人质心的运动速度。因此,在机器人状态描述层面,共有姿态角、质心位置、姿态角角速度、质心速度共12个量描述。在外界输入层面,现今大多腿足机器人的MPC都是规划质心轨迹,而后采用逆动力学跟随质心轨迹。但这种方法在实际工程操作中,首先是逆动力学求解难度大,其次在机器人存在空中相时,也很难保证能够跟随所规划的质心轨迹,出于力控的角度,更理想的应该是直接规划出关节力矩,亦或能够在其基础上较简单的求出各关节力矩。

2)大致确定了我们希望的状态描述量以及需要规划的量,此处之前提过的单刚体模型恰好满足这些条件,单刚体模型的运动方程如下:

其中第三项其实就是旋转矩阵的导与角速度的关系,在一般的机器人学教材中都有。

不清楚的可以看一下ETH的精简版的机器人运动学动力学讲义:

https://ethz.ch/content/dam/ethz/special-interest/mavt/robotics-n-intelligent-systems/rsl-dam/documents/RobotDynamics2017/RD_HS2017script.pdf

通过IMU获得的角速度仅是机器人相对于身体坐标系的角速度。身体坐标系中的运动变换到世界坐标系可通过左乘一个变换矩阵R,论文中是依据ZYX顺序变换,这也是目前很多论文中通用的变换方式:

当R满秩时,求逆即可得到身体坐标系的角速度与世界坐标系的角速度的关系:

且在运动中,pitch,roll角度非常小,则上式可简化为:

而此时的变换矩阵恰好是绕z轴旋转的变换矩阵,即

同时惯量*角加速度项的微分项为此处第二项是因为这个求导操作是在非惯性系下进行的,所以多了个叉乘项。机器人相对于世界坐标系的惯量表达式为:

上文已将R简化为绕z轴的旋转矩阵,此处依旧适用:

此时将上文的单刚体运动方程写成状态空间的表达方式(xdot=Ax+Bu)为:

Cheetah 3中是将最后的重力加速度项也整合到了状态矩阵A中,此处笔者为了表述更加易懂就将其先单拎出来。这是连续时间的状态方程,因为最终需要计算机编程实现,需要将其离散化。要将A、B矩阵离散化,可以将他们分别乘以控制周期dt,而后求矩阵指数即可,Eigen中:

matlab中可用expm()函数。离散化结果如下:

通过这个模型,便可以计算出系统对应的输出,可以将其组织为一个MPC问题,

即求得最优的当前输入使得系统下一时刻输出尽可能接近期望值,同时也要保证输入量尽可能小。因为在实际机器人中,机器人的力矩是有限的,我们并不希望计算出一个很大的力矩。当然这算是一个很简单的cost函数,状态变量、输入量变化率等我们都没有加入约束。有了cost函数,实际已经可以开始求解了,但我们的控制对象是对实时性要求较高的腿足机器人,若直接对这种形式求解然后用于机器人控制,是不能将MPC周期控制在几十ms内的,会严重影响控制性能。

为了提高MPC的计算速度,除了减少约束条件,缩短预测/控制时域等外,可以将MPC转为显示预测控制(Explicit Mpc),当今用于汽车ECU等对实时性要求较高的MPC大多也是Explicit Mpc形式,简单来说,Explicit Mpc是求出预测步长内的解的组合域,如下图所示,然后直接根据各个状态量查找对应的解。通过这种方案,MIT Cheetah 3上的MPC的频率大约为30hz。

关于Explicit Mpc的详细介绍,可以参考一下意大利的Bemporad大神的MPC教程,Benporad参与了MPC Toolbox和Hybrid Toolbox的开发,很多source code都是他自己亲自写的。Bemporad也有自己的公司ODSYS提供一些工业界可用的MPC算法。Bemporad教授是有一定的实际工程经验的,所以其教材在实际运用MPC方面也更有心得:http://cse.lab.imtlucca.it/~bemporad/mpc_course.html

Cheetah 3的MPC问题转化为QP的详细推导过程如下:

假设预测步长为n步,将n步内系统的状态以及输入量写成如下形式:

则上述的优化问题形式可转化为:

其中Q、R为半正定或者正定,以便保证该问题有界。同时系统的离散状态方程解为:

x(t)为系统的初始状态,则上面的X还可以写成:

写为X=Aqpx(t)+BqpU,带入上式,优化问题的表达形式变为:

至此该问题已经转化为一个标准的QP问题,每次取MPC更新后取第一步的U作为控制输入来控制机器人的支撑腿,可以通过对Q、R两个权重矩阵进行调参来改善支撑腿的性能。此处输入的R矩阵,笔者在实际调参中发现R的权重值设的越小,所生成的力就越大,通过查阅IIT的一篇MPC文献,此种现象是正常的。

MIT Cheetah3的力权重:4*10^-5,

IIT 的HyQReal :1*10^-9()

MIT四足机器人Cheetah 3控制方案理解笔记(2)——Convex Mpc身体姿态控制相关推荐

  1. MIT四足机器人Cheetah 3控制方案理解笔记(1)——摆动腿控制、单刚体模型平衡控制器

    之前一段时间在阅读MIT四足机器人Cheetah 3以及Mini Cheetah控制方案的相关论文,在此处做一些笔记.Cheetah 3与Mini Cheetah的控制方案大同小异,此处先以Cheet ...

  2. 【转载】MIT四足机器人Cheetah 3控制方案笔记

    转载:知乎 Wenboxing https://zhuanlan.zhihu.com/p/190028074 这里写自定义目录标题 MIT四足机器人Cheetah 3控制方案理解笔记(1)--摆动腿控 ...

  3. MIT四足机器人MIT Cheetah的硬件框架

    前几天小米的铁蛋,又让四足机器人火了一把.9999一台,这个价钱还挺香的.众所周知,国内的大部分四足机器狗的涌出,都是因为2019年,MIT的猎豹开源,从硬件到软件.国内四足机器人的研发也就上了一个台 ...

  4. 机器人坐标系解读及四足机器人虚拟模型控制(VMC)控制方法

    终于理清VMC控制方法了,对于很多新入门机器人的小伙伴,尤其像我这样做毕设前完全没有接触过机器人的本科生来说,坐标变换可谓是一大难,很多教材说的也是非常一本正经,非常不利于入门学习.本文对四足机器人坐 ...

  5. 四足机器人|机器狗|仿生机器人|多足机器人|Adams仿真|Simulink仿真|基于CPG的四足机器人Simulink与Adams虚拟样机|源码可直接执行|绝对干货!需要资料及指导的可以联系我!

    四足机器人|机器狗|仿生机器人|多足机器人|基于CPG的四足机器人Simulink与Adams虚拟样机|源码可直接执行|绝对干货!需要资料及指导的可以联系我!QQ:1096474659 基于CPG的四 ...

  6. 2021-09-29破解小米“铁蛋”,只需9999元,你也可以做一个四足机器人!

    https://www.eet-china.com/news/202109291008.html 2021-09-29破解小米"铁蛋",只需9999元,你也可以做一个四足机器人! ...

  7. 四足机器人技术及进展

    四足机器人技术及进展 摘  要:自然界中有许多地形无法使用传统轮式或履带式车辆到达,而哺乳动物却能够在这些地形行走自如,这充分展示出四足移动方式的优势.四足机器人已经成为当今移动机器人研究的热点,其研 ...

  8. 相对全面的四足机器人驱动规划MATLAB和Simulink实现方式(足端摆线规划,Hopf-CPG,Kimura-CPG)

    许久没更新四足机器人相关的博客文章,由于去年一整年都在干各种各样的~活,终于把硕士毕业论文给写好,才有点时间更新自己的所学和感悟.步态规划和足端规划只是为了在运动学层面获取四足机器人各关节的期望角位移 ...

  9. 四足机器人——12自由度舵机狗DIY(二)

    目录 一.四足机器人步态研究控制的现状 1.1目前的三种控制策略 <1>基于静态稳定的控制方法. <2>基于动力学模型的控制方法. <3>基于生物所具有的神经性调节 ...

最新文章

  1. 广东计算机一级考试可以用计算器吗,你考试用不用计算器?
  2. 阿里公共DNS正式发布:223.5.5.5 223.6.6.6
  3. QT中动态库和静态库使用
  4. 有限元ansys/lsdyna学习笔记-组件component与组元part_02
  5. vant 引进单个样式_vue 公共列表选择组件,引用Vant-UI的样式方式
  6. 横流式冷却塔计算风量_10T-1000T冷却塔厂家批发零售
  7. 36 岁程序员应聘被公司领导直接拒绝;字节跳动:公司暂不具备上市条件;财务软件 bug 致数百人被错误定罪|极客头条...
  8. html插入视频时不自动播放,html5中嵌入视频自动播放的问题解决
  9. Google推荐的15条军规:HTML5代码规范
  10. 大数据笔记_Hadoop基础知识
  11. 加速度传感器,磁场传感器和陀螺仪传感器案例
  12. 专用计算机的运行速度,WIN10专业版下电脑运行速度慢多个解决技巧
  13. CF1153D Serval and Rooted Tree
  14. 9139 位艺人在 Python 面前不值一提 # Python 爬虫小课 5-9
  15. Android 系统自动获取来电/短信/提示铃声
  16. 电子学会2023年3月青少年软件编程python等级考试试卷(一级)真题,含答案解析
  17. 关于公众号的运营干货与常用的工具
  18. simon手册翻译_part2
  19. 百度云盘资源搜索神器仅有400kb
  20. Ubuntu 修改用户名

热门文章

  1. ios不能保存png_在Mac上将HEIC转换为JPG / JPEG或PNG
  2. 双机位摄像机视频直播(多机位摄像机视频直播)时硬件连接示意图
  3. html doc src,HTML IFrame srcdoc用法及代码示例
  4. DDD-领域对象与领域服务
  5. 基于antd,实现有左右箭头的Tabs
  6. M0B100P0蓝牙模块AT指令
  7. mysql数据库(2)
  8. 程序员也有年龄限制?3个真实的程序员年龄故事告诉你
  9. 基于Flash CS6和AS 3.0完成的赛车游戏
  10. tcptraceroute与traceroute