系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
TODO:写完再整理

文章目录

  • 系列文章目录
  • 前言
  • 一、跳跃高度控制(Hopping Heigh)
  • 二、水平速度控制(Control Forward Speed)
    • 计算落足点位置
    • 控制落足点
    • 水平速度的状态估计
  • 三、姿态控制(Control Body Attitude)
  • 总结

前言

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!

本文先对虚拟模型控制Virtual model control做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章


提示:以下是本篇文章正文内容

一、跳跃高度控制(Hopping Heigh)

在每个支撑期间,控制系统通过腿提供垂直推力来维持振荡并调节其振幅。每一跳所损耗的一些能量被前一跳的腿部弹簧所补充。跳跃要考虑高度和频率,通过调整腿部推力,激励跳行运动并调整振幅

弹簧倒立摆模型将腿部模拟成一个弹簧,本文采用阻抗控制的方法,通过检测虚拟弹簧的压缩量,来计算滑动关节上直线电机的力

上式中,r0和 r 分别为弹簧原长和弹簧实际长度, k0是弹簧刚度,弹簧刚度决定了机器人弹跳的频率。
跳跃机器人有节奏的上下跳动,在弹簧腿的作用下,【防盗标记–盒子君hzj】可以认为是机器人物理系统的势能和动能在能量层面的相互转换。在能量转换过程中,必然因阻尼、摩擦、碰撞等因素导致能量损失,结果系统总能量越来越少,弹跳高度越来越低,最终系统失稳。
因此,必须在弹簧腿的伸长阶段(THRUST相),【防盗标记–盒子君hzj】为机身额外提供一个推力从而补充能量损失:

理论上,可以通过下式来计算推力:
推力=(达到所需跳跃高度所需的能量-当前系统总能量)/ 弹簧伸长量

或者下式:

推力=每个周期系统能量损耗 / 弹簧伸长量

但这里使用了一种更简单的方法。直观理解,系统的能量损失应该是随着跳跃高度的增加而增加的,因此能量损失与跳跃高度是单调函数关系,所以对于每个固定的推力大小存在唯一的稳定跳跃高度,并且推力越大跳跃高度越大。实际上,推力和跳跃高度之间的关系非常复杂,无法直接理论求解【防盗标记–盒子君hzj】。Marc Raibert采用了实验标定的方法,然后从中挑选一个比较稳定的推力大小。


如上图,图中thrust为推力,z为高度。最上面曲线是质心高度,中间是足底高度,最下面曲线是推力大小。每隔5s改变一次推力的大小,可见机身高度与推力成正相关关系。【防盗标记–盒子君hzj】

.
.

二、水平速度控制(Control Forward Speed)

这是通过在飞行相移动腿到一个合适的落脚点来实现的。为了计算出合适的落脚点,控制系统考虑了实际的前进速度、期望速度和腿系统动力学,并构建了一个简单的模型。一个运行的系统只有在腾空阶段腿部卸载时才能移动枢轴点。通过将腿前伸到某一特定位置以提供加速度,稳定前行速度,对每一个前行速度,都存在一个特定的足端位置,使得净前行加速度为0,我们称之为中性点(neutral point),对原地跳跃,中性点就在身体的正下方;而对于前行跳行,中性点在前行方向上。前行越快,中性点离身体越远

核心思想:足底在飞行相结束时第一次接触地面时的位置(落地点)决定了随后支撑相的加速度。作者提出了三个概念:

水平速度(Forward Speed):机身水平方向的前进速度。

净加速度(net forward acceleration):支撑相开始到支撑相结束这段时间机身水平速度增量。注意:在飞行相,忽略空气阻力,仅受重力时,机身水平速度不会改变。【防盗标记–盒子君hzj】

中性点(neutral point):对于每个水平速度,都有一个唯一的落地点,在此落地点上净加速度为0。
(a)当落地点在落在比中性点远的位置时,一部分动能转化为势能,系统在支撑相阶段减速,净加速度>0。
(b)当落地点在落在中性点时,一部分动能转化为势能,净加速度=0。【防盗标记–盒子君hzj】
(c)当落地点在落在比中性点近的位置时,一部分势能转化为动能,系统在支撑相阶段加速,净加速度<0
因此,落地点决定了支撑相的净加速度,通过净加速度可以调整水平速度。

计算落足点位置

落足点的计算包含两个因素:一个是通过估计水平速度,来估计中性点的位置;第二个是水平速度的误差用于计算净加速度,从而计算为了实现这个净加速度,落足点相对于中性点的偏移量。两者直接相加,得到落足点。

首先计算中性点:

上式中, X为水平速度的状态估计,其算法在后续小节中详细介绍。【防盗标记–盒子君hzj】 Ts为上一个支撑相的持续时间,即足底传感器触地到足底传感器离地的时间。

为了使机器变速,控制系统引入了不对称性。需要加速来稳定水平速度,以防止误差和外部干扰,并从一个水平速度改变到另一个水平速度。为了主动地给机器人变速,控制系统主动在落地点和中性点之间增加一个偏移量,使用水平速度误差的线性函数来确定该偏移量:

结合上式可得:

控制落足点

定义三个坐标系{W}、{H}和{B}。坐标系{W}是在实验室固定的世界坐标系。坐标系{H}的原点随髋部移动,但其方向与{W}的方向保持平行。对于{W}和{H},y与重力矢量对齐并向上为正。【防盗标记–盒子君hzj】{B}固定在机身上,原点与{H}相同。参考webots惯性单元,可得旋转变换:

X轴电机和Z轴电机虽然在同一空间位置上,但其转动顺序对运动学解有影响。参考webots的hinge2jiont模型,可见Axis2(对应Z轴电机)在Parent节点上,Axis1(对应X轴电机)在End point节点上,因此逆运动学为:

.
.

水平速度的状态估计

在飞行阶段,不考虑空气阻力,仅受垂直方向的重力,水平速度不变。因此水平速度的状态估计是在支撑相实现的,正运动学:

步骤一:使用腿部运动学转换,已知髋部执行器的长度、机腿长度以及陀螺仪角度(或者每个电机反馈的关节角度),得到腿相对于躯干的位置

步骤二:通过对上式中得到的机腿位置作数值差分,得到

步骤三:因为机腿在支撑期相对于地面不会移动,我们可以从测得的机腿相对于髋部的运动中,推导髋部相对于地面的运动速度,进而得到躯干前进速度估计

.
.

三、姿态控制(Control Body Attitude)

用于稳定机身的俯仰角,使机身保持直立。前提是脚和地面之间有较大的摩擦力。通过对髋关节(hip)的伺服控制,使身体在站立时保持直立状态。

控制系统通过在支撑相对臀部关节施加扭矩来保持身体姿态。【防盗标记–盒子君hzj】由于角动量在飞行过程中是守恒的,所以只有支撑相才能改变系统的角动量。在支撑相,脚和地面之间的摩擦允许向身体施加扭矩,而不会引起腿部较大的加速度。控制系统通过一个线性伺服来实现

注意,尽管陀螺仪的正方向和关节电机传感器的正方向相同,但是关节电机的扭矩作用在腿部和作用在身体上的方向是相反的,因此这里多了一个负号


总结

VMC的核心思想:探究复杂动态动力学问题的简单控制方法,简化对复杂地形的处理

二维平面机器人控制分解
1、跳跃运动(支撑相上升,力控)
2、机器人的前进速度和加速度(飞行相,轨迹跟踪)
3、姿态控制(支撑相下落,力控)

【论文解读--足式机器人平衡控制VMC】虚拟模型控制(三通道法)Virtual model control相关推荐

  1. 8及12自由度四足机器人VMC(虚拟模型)控制代码

    代码算法参考知乎:华北舵狗王--华北舵狗王带你一起做四足机器人3(Moco-8四足机器人导航算法简介) 参考论文:四足机器人对角小跑步态虚拟模型直觉控制方法研究 代码结构参考知乎 :xyYu 效果视频 ...

  2. 干货丨浅谈足式机器人的运动控制

    " 本期技术干货,我们邀请到了小米机器人实验室工程师--游洋威,来和大家从经典的三分控制法.零力矩点控制到目前主流的模型预观控制等方面,介绍足式机器人的运动控制. " 一.前言 不 ...

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

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

  4. 干货 | 足式机器人运动控制发展方向——轨迹优化

    " 运动控制技术的进步使得足式机器人的运动能力更强,而近来轨迹优化作为主流学术研究方向,能够为足式机器人运动控制的发展提供可能的指引.本期技术干货,我们邀请到了小米工程师徐喆,向我们介绍足式 ...

  5. [足式机器人]Part1 运动对称性Ch05——【Legged Robots that Balance 读书笔记】

    本文仅供学习使用 本文结合个人理解体会作者的思路,也从个人科研角度出发,部分翻译参考由:QQ群(2群legged robot that balance)提供,感谢他们为本文英文版翻译所做的贡献(但有些 ...

  6. [足式机器人]Part1 序言+简介Ch01——【Legged Robots that Balance 读书笔记】

    本文仅供学习使用 本文结合个人理解体会作者的思路,也从个人科研角度出发,部分翻译参考由:QQ群(2群legged robot that balance)提供,感谢他们为本文英文版翻译所做的贡献(但有些 ...

  7. 智能机器人-(三)轮式,足式机器人的基本概念

    文章目录 一.机器人的移动方式设计 二.足式移动机器人 1.足的规模 2.足的稳定性 3.足的自由度 4.足行步态 5.动力学考虑 6.平衡控制 7.常见足式机器人实例 8.静态步行与动态步行 9.Z ...

  8. [足式机器人]Part1 关于动物和运动体的研究Ch08——【Legged Robots that Balance 读书笔记】

    本文仅供学习使用 本文结合个人理解体会作者的思路,也从个人科研角度出发,部分翻译参考由:QQ群(2群legged robot that balance)提供,感谢他们为本文英文版翻译所做的贡献(但有些 ...

  9. 一些关于国内腿足式机器人公司研究所的信息分享

    8月PhD假期, 我利用将近3周的时间跑了北京.常州.深圳.广州和杭州,参观拜访了如下腿足式机器人企业&研究所: 北京钢铁侠(ARTROBOT) 北京灵铱机器人事业部 北京航天五院502所 浙 ...

最新文章

  1. R语言dplyr包通过数据列的索引重命名数据列实战(Rename Column by Index Position)
  2. gnupg环境搭建时遇到的问题
  3. bzoj1791: [Ioi2008]Island 岛屿 单调队列优化dp
  4. PMCAFF | 刷微信朋友圈行为分析:刷朋友圈是一种感觉?有一种批皇帝批奏章的感觉...
  5. happiness is meaningful joy
  6. Centos5.5安装使用Xen
  7. 239. Sliding Window Maximum
  8. SpringBoot2 整合Ehcache组件,轻量级缓存管理
  9. Mac IDA单步调试本地程序
  10. OpenOffice.org 2.0已经发布了。
  11. dubbo+zookeeper+dubboadmin环境搭建
  12. linux回到桌面的命令符_Linux终端命令快捷键汇总
  13. CSDN博客专家证书发放名单(10月已更新)
  14. 这届年轻人正在背着你偷偷攒钱
  15. 同步十进制加法计数器设计
  16. [WinError 2] 系统找不到指定的文件
  17. stm32f407探索者开发板(二)——新建工程(基于固件库)
  18. 压缩算法——FLAC (Free Lossless Audio Codec)编码原理
  19. 网络状态码(HTTP状态码 )
  20. 《数据结构》-图的六度空间理论(二)

热门文章

  1. 局域网计算机设备分类,小白指南——三种常见无线局域网设备类型
  2. USB转4路串口 USB转多路串口 串口神器
  3. U盘杀毒后文件丢失了怎么办?U盘文件免费恢复方法教程
  4. 史上最欠揍的成语谜语
  5. 今日头条自媒体如何运用,今日头条自媒体怎么运营好,今日头条自媒体运营技巧
  6. 十种客观评价语音质量的方法
  7. 管理软件Jira Service Desk使用教程之如何将Jira Cloud用于Slack?
  8. Netty ChannelOption.SO_BACKLOG配置
  9. UE4第三人称射击游戏总结二
  10. 组态软件的运行策略控制