• 静态步行与动态步行

  机器人步态分为静态步行和动态步行。当机器人做静态步行运动时,身体的各个部分运动速度很小,机器人的整体稳定性较易控制。静态步行稳定性采用机器人的重心地面投影点(Center of Gravity,简称CoG)作为稳定性标准,这种判定方法适用于运动较为缓慢的情况。如果机器人采用的是一种高速运动的步行方式,则称之为动态步行。当机器人进行动态步行时,其重心的位置和加速度的大小时刻都在变化,产生向前和侧向的惯性不容易控制,从而稳定性不好掌控。在机器人的静态步行过程中,如果重心投影的轨迹始终落在支撑面内,称之为稳定。当机器人保持静止或静态平衡时,其ZMP与重心在地面上的投影重合。当机器人步行速度较高时,由于惯性力,重心在地面上的投影点不能保证始终与ZMP重合。

  • ZMP(零力矩点)和CoP(压力中心)是评价双足步行机构行走稳定性的重要参数。

  双足步行机器人研究的一个关键问题是实现其稳定的行走。目前世界上大多数双足步行机器人系统都采用ZMP作为稳定行走的判据。ZMP是由南斯拉夫学者Vukobratovic提出的, 他研究了ZMP与双足动态系统之间的关系,提出ZMP是判断动态平衡的一个重要依据。ZMP是地面上的一点,重力和惯性力对这一点的力矩,其水平分量为零。即整个系统对于这个点的前向、侧向的倾覆力矩为零。他指出,当双足机构处于动态平衡时,ZMP和脚底所受地面反力的压力中心CoP是重合的。因此,我们可以根据检测到的地面反力信息,计算CoP,通过控制策略调整ZMP和CoP的位置,使二者重合,实现机器人的动态稳定行走。日本本田公司的机器人ASIMO通过安装在脚部的六维力/力矩传感器检测出地面反力信息, 计算得到CoP,通过独特的姿态控制同时调整躯干姿态和脚部姿态, 进而保持ZMP和CoP 在行走过程中始终处于合适的位置, 实现稳的行走。

  对于处于动态平衡下的双足机器人, 在单脚支撑期间内, ZMP与CoP是重合的。对于单脚支撑期的动态不平衡状态, 整个机器人机构围绕脚的边缘发生旋转或翻转, ZMP和CoP是不重合的。根据定义可知CoP是永远不会离开支撑区域的, 而ZMP可以离开支撑区域。(If the robot is dynamically stable ,ZMP coincides with CoP and can be calculated with CoP by using force sensors on the foot. If the biped is not dynamically stable ,the CoP can still be determined but this location does not represent the ZMP)。ZMP点由于计算比较容易,常用于行走步态的生成,而CoP则由于容易直接测量,更适合用于对机器人行走进行控制。ZMP作为机器人稳定行走的一个充分条件,使用范围有一定的限制:当足底打滑、地面不平、或者机器人上身与外界环境接触时,ZMP就不能应用。

  当ZMP处于支撑区域之外时, 机器人就会倾倒。作用在机器人脚底的实际地面反力(包括垂直反力和摩擦力)作用点如能与期望ZMP重合,并落在支撑多边形内,则对于机器人无翻转力矩,处于稳定行走状态。期望ZMP可通过实际结构尺寸、重量、步态规划进行计算。实际ZMP需要由六维力/力矩传感器(或多个压力传感器)进行测量,传感器的最佳安装位置应在踝关节以下,越接近地面越好。

  • 支撑多边形

  支撑多边形是指机器人足底面和地面接触点构成的最小多边形;对于单腿支撑, 根据定义其支撑多边形就是支撑腿的足底接触面;对于双腿支撑可分两种情况, 一种为两腿都完全与地面接触(图2), 另一种是其中一条腿即将离地时(图3)。由图2 可知, 两腿足底完全接触地面时的支撑面为多边形ABCDEF , 当其中一腿即将离地时, 它的接触面变成一条线, 支撑面也会变成多边形ABDEF。根据支撑多边形和零力矩点ZMP的定义, 可得到零力矩点始终落在支撑多边形内而不能落到边缘之外, 这为机器人是否稳定行走提供了判断的依据, 即利用传感器检测ZMP的位置与支撑多边形边界进行比较判断行走是否趋于稳定;在一般情况下, 为了预先防止ZMP 坐落在支撑多边形边界上这一情况的发生, 通常距支撑多边形边界留出一段距离作为稳定裕度。

  • ZMP测量

  通过安装在足底的压力传感器测量各个离散点的压力,离散点的数量越多,ZMP的估计越准确。

  以上为单脚支撑期的实际ZMP的计算公式。在双足步行机器人的行走过程中,还有双脚支撑期。当机器人处于双脚支撑期时,每只脚的实际ZMP仍然用以上公式计算,整个机器人系统的实际ZMP可按下式计算,推导过程可参照图3所示。式子中X1、X2、Y1、Y2分别为左右脚ZMP点在参考坐标系中的坐标。Fz1、Fz2分别为左右脚4个压力传感器计算出的竖直方向的合力。

  • ZMP计算

  对于研究机器人步行运动,通常都是计算ZMP运动轨迹来反映步行的稳定性。通过重力与惯性力的合力来定义ZMP的坐标计算公式,并用达朗贝尔原理进行推导。(推导时注意坐标轴以及力/力矩的方向)

  设机器人各个连杆质量为mi,连杆质心坐标为(xi,yi,zi),重力和惯性力的合力为:

  该合力对各个坐标轴的矩为:

  将合力从参考坐标系原点移动到ZMP点,ZMP点处合力矩对X,Y轴分量为零,则有:

  可求得:

  不考虑惯性力的影响,则上式变为:

  忽略惯性力的影响后,ZMP与CoG(重心在地面上的投影)重合。由此可见,静态步行为动态步行的特例。

参考:

  1. 刘莉,汪劲松,陈恳,杨东超,赵建东. 基于六维力/力矩传感器的拟人机器人实际ZMP检测[J]. 机器人. 第23卷第5期,2001年9月

  2. 常江. 基于ZMP 的双足机器人稳定性分析[J]. 佳木斯大学学报( 自然科学版). 第27卷第1期,2009年01月

  3. 林玎玎, 刘莉, 赵建东, 陈恳. 双足步行机器人的ZMP-CoP检测及研究[J]. 机器人. 第26卷第4期,2004年7月 

双足步行机器人的ZMP与CoP检测的更多相关文章

  1. 2018 AI产业界大盘点

    2018  AI产业界大盘点 大事件盘点 “ 1.24——Facebook人工智能部门负责人Yann LeCun宣布卸任 Facebook人工智能研究部门(FAIR)的负责人Yann LeCun宣布卸 ...

  2. 两轮自平衡小车双闭环PID控制设计

                                                                                            两轮自平衡小车的研究意义 ...

  3. 12只超酷机器人,在家用3D打印搞定!

    3D打印最吸引人的地方在于它完全无极限!现在的3D打印已经广范应用在我们的生活.以及工业上的各个领域.最棒的是,DIY玩家可以真正从中受益.我们现在已经可以应用3D打印,在家制作自己的机器人了.如果你 ...

  4. ROS机器人程序设计(原书第2版)补充资料 教学大纲

    ROS机器人程序设计(原书第2版) 补充资料 教学大纲 针对该书稍后会补充教学大纲.教案.多媒体课件以及练习题等. <ROS机器人程序设计>课程简介 课程编号:XXXXXX 课程名称:RO ...

  5. 第八章 交互技术,8.4 Weex 双11会场大规模应用的秒开实战和稳定性保障(作者:鬼道)

    8.4 Weex 双11会场大规模应用的秒开实战和稳定性保障 前言 Native 开发的诸多亮点中,流畅体验和系统调用是最多被提及的.流畅体验体现在页面滚动/动画的流畅性,背后是更好的内存管理和更接近 ...

  6. python 下的数据结构与算法---4:线形数据结构,栈,队列,双端队列,列表

    目录: 前言 1:栈 1.1:栈的实现 1.2:栈的应用: 1.2.1:检验数学表达式的括号匹配 1.2.2:将十进制数转化为任意进制 1.2.3:后置表达式的生成及其计算 2:队列 2.1:队列的实 ...

  7. PWM波控制舵机总结

    文章转自:http://www.geek-workshop.com/thread-70-1-1.html 一.关于舵机: 舵机(英文叫Servo):它由直流电机.减速齿轮组.传感器和控制电路组成的一套 ...

  8. CG资源网 - Maya教程

    Maya中mentalray灯光渲染终极训练视频教程 http://www.cgtsj.com/cg/f/vx3627/index.html Maya无人机建模制作训练视频教程第一季 http://w ...

  9. 合金装备V 幻痛 制作技术特辑

    合金装备V:幻痛 制作特辑 资料原文出自日版CGWORLD2015年10月号   在[合金装备4(Metal Gear Solid IV)]7年后,序章作品[合金装备5 :原爆点 (Metal Gea ...

随机推荐

  1. .Net Excel操作之NPOI(一)简介

    一.NPOI简介 NPOI是一个开源项目,可以读/写xls,doc,ppt文件,有着广泛的应用. 使用NPOI能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件,支 ...

  2. protobuf 更新消息和扩展,包

    一.更新一个消息类型 如果一个已有的消息格式已无法满足新的需求--如,要在消息中添加一个额外的字段--但是同时旧版本写的代码仍然可用.不用担心!更新消息而不破坏已有代码是非常简单的.在更新时只要记住以 ...

  3. eclipse的块选择模式

    第一步:Alt+shift+a打开Toggle Block Selection Mode(块选择模式开关) 第二步:点击Toggle Block Selection 第三步:选择多行,同时编辑

  4. #incldue<cctype>函数系列

    #include <cctype>的函数 c++中应该是#include <cctype> c中应该是#include <ctype.h> 以下为字符函数库中常用的 ...

  5. CPLUSPLUS 获得 一个源文件的头文件依赖。即该文件所需要的所有头文件

    核心命令:gcc -M *.h.*.cpp 转: 自动处理头文件的依赖关系 http://blog.csdn.net/su_ocean16/article/details/5374696 现在我们的M ...

  6. maven项目里,junit的test程序不能访问src/test/resource下面的配置

    问题描述 最近在写单元测试,但是不想改动源代码,所以想自己在本test目录下建一个resouces文件夹并添加对应的配置文件,可是发现test程序无法读取这个resouces文件夹下的配置. 问题解决 ...

  7. 嵌入式系统WinCE下应用程序GUI界面开发【转】

    嵌入式系统WinCE下应用程序GUI界面开发 ByToradex 秦海 本文旨在介绍嵌入式系统在Wince下进行GUI应用程序开发可以选择的不同GUI开发框架(Framework),目前最常用的几种方 ...

  8. 菜鸟学步之 爆破AspriseOCR 4.0

    最近写一个小程序要用到OCR控件,在网上查了一下,据说AspriseOCR 4.0效果不错.试用了一下发现的确还行,不过就是要注册,试用版本每次都会弹出讨厌的对话框来.网上看到有一篇“新人报道–处女破 ...

  9. iOS开发-简单抽奖

    路过商场,看过抽奖感觉挺有意思的,商场进行抽奖活动,三个奖项,一等奖的概率1/10,二等奖的概率的3/10,三等奖的概率是6/10,具体奖品我没仔细看,回来随便练手了一下,思考了一下,奖品分为10份, ...

  10. Http协议中Get和Post的浅谈

    起名困难户,每次写文章最愁的就是不知道该如何起个稍具内涵的名字,如果这篇文章我只是写写Get和Post的区别,我可以起个名字“Get和Post的那点事”,如果打算阐述一下Http协议原理性内容,那该叫 ...