仿人机器人如何入门?需要掌握哪些知识要点?
- 作者 · 段晋军
- 1128次浏览
- 2018-01-30
- 来源 · 知乎
- 分享
- 字体-+
本文为作者历经一个月的成果,主要研究内容包括:仿人机器人学的运动学、ZMP和动力学、双足步态规划和全身运动模式的生成和动力学仿真等。
赠给那些和我一样的初学者,文末有彩蛋!
参考《仿人机器人-Humanoid Robotis》,梶田秀司 编著,管贻生 译。
主要研究内容包括:仿人机器人学的运动学、ZMP和动力学、双足步态规划和全身运动模式的生成和动力学仿真等。
《仿人机器人》由日本产业技术综合研究所(AIST)下属的智能系统研究所仿人机器人HRP-2研发小组的主要成员共同编著,每位作者撰写其最擅长的专题。
① 第1章《仿人机器人概论》由AIST下属的智能系统研究所仿人机器人研究室主任比留川博久(Hirohisa Hirukawa)执笔;
② 第3章《ZMP和动力学》由同一研究室的研究员原田研介(Kensukc Harada)和梶田秀司(Shuuji Kajita)共同执笔;
③ 第5章《全身运动模式的生成》由同所的自主行为控制研究室主任横井一仁(Kazubito Yokoi)执笔;
④ 第2、4、6章《运动学、双足步行、动力学仿真》由梶田秀司执笔。
----------------------------------------运动学---------------------------------
① 和工业机器人一样,分析机器人连杆的位姿与关节角之间关系的理论称为运动学(Kinematics)。可以参考我之前的一篇文章写给那些“想进入机器人行业或是刚刚进入机器人行业的朋友”(工业机器人篇-如何入门和研究)的第一章内容,需要加强的是:局部坐标系的概念、局部坐标系间的相对性、角速度矢量、旋转矩阵的微分与角速度矢量、角速度矢量的积分与矩阵指数之间的关系、矩阵的对数、两个物体的速度和角速度、仿人模型建立、奇异姿态等。若是有工业机器人运动学的基础,这些内容还是相对简单的。
② 关于机器人的《数据结构和编程方式》可以详见书中内容。
③ 仿人机器人和工业机器人一样,需要建立模型:
④ 仿人机器人的运动学基本原理与工业机器人一致。
------------------------------------ZMP和动力学------------------------------
第三章《ZMP和动力学》
① ZMP
工业机器人的基座是固定在地面上的,仿人机器人的足底只与地面接触而不固定。由于这点,工业机器人可以在其关节活动范围内做任意运动,而仿人机器人的运动则必须满足一个约束条件,即保持足底与地面的接触。因此,给定仿人机器人的一个运动,需要确定其足底与地面是否保持接触;我们需要规划能保证足底与地面接触的仿人机器人的运动,我们常使用ZMP。
ZMP:Zero-Moment Potint,零力矩点。沿足底分布的负载具有相同的符号或是方向,它们等效于一个合力R,其作用点在足底范围内。合力R所通过的在足底上的这个作用点称为零力矩点,简称ZMP。
ZMP是判断机器人是否会摔倒、其足底是否与地面接触的一个重要指标。ZMP是指地面上的一个点,足底受到的地面反作用力绕该点在地面上的力矩分量为零。
仿人机器人的落脚点并不是一个固定的点,而是一个范围,即支撑多边形。这个多边形能包容放人机器人足底与地面之间的所有接触点的最小多边形区域。这个多边形区域称为支撑多边形(support polygon)。
若ZMP处于足底形成的支撑多边形之内,那么机器人不会倒,足底能保持与地面的接触。当然了,即使机器人支撑脚的脚底板离开地面,机器人也未必会倒下,仍然可以通过控制游动脚和着地点的改变来保持行走或站立。ZMP指标是防止机器人摔倒的一个充分条件,但不是必要条件。
ZMP可用于规划机器人的步行运动模式,大多数仿人机器人的步行模式都是基于ZMP生成的。为实现机器人在不平整地面上行走、上下楼梯以及手持重物行走等功能,ZMP的概念和应用作了相应的修改和推广。
当人站在地面上时其重心、ZMP与支撑多边形的位置关系如下图所示。其中,重力线与地面的相交点叫做重心投影点。当人直立时,其ZMP与重心投影点重合。当人做动态运动时,重心投影点可能在支撑多边形之外,然后,ZMP不能跑到支撑多边形的外面。
关于具体原因可以详见书中的内容:二维和三维情况下的ZMP、ZMP的范围等内容。
一般情况下,仿人机器人的ZMP的实际位置可通过安装在其脚步的几个传感器测量得到,比如基于单个力/力矩触感器的ZMP测量和基于多个力/力矩触感器的ZMP测量。
在了解仿人机器人的动力学以前,需要了解一些基本概念,比如:质量、质心、动量、角动量、移动的动力学、转动的动力学、刚体的角动量和惯性张量等。
除此之外,还需要了解机器人质心、机器人动量、机器人角动量等的计算方法,具体的求解步骤在书中有详解。
③ 基于机器人运动的ZMP计算
根据牛顿-欧拉法,可求解得到ZMP的位置:
有个很有意思的问题:因质心加速度的影响ZMP可在支撑多边形之外吗?这个问题,可以看看书中的解释。
不可否认,ZMP也具有一定的局限性,比如地面打滑、地面不平坦、仿人机器人的手或臂与外界环境有接触。
--------------------------------------双足步行---------------------------------
双足步行有两种方式:静态步行(static walk)和动态步行(dynamic walk)。两者的区别是,在静态步行中,机器人的质心在地面上的投影始终不超越支撑多边形的范围;而在动态步行中,质心的投影在某些时刻可以超离支撑多边形。
为实现所期望的步态而设定的一组关节角时间序列称为步行模式(walking pattern),基于步行模式生成器可以产生步行模式。在实际情况下,一个大仿人机器人由于各部分比例和质量分布很容易将姿态误差放大到不稳定的程度。为了解决这个问题,可以利用姿态传感器(陀螺仪)、加速度传感器、力传感器和其他装置的信息来修正步行模式,这个系统称为步态稳定控制器(简称稳定器,stabilizer)。
二维步态模式的生成类似于二维倒立摆,详见书中内容。运动特性是我们所关注的,除此之外,我们还需理解过渡时间、轨道能量、支撑脚的切换、简单地双足步态规划等。
上述的步态规划只限于平面上的行走,但是对于凹凸不平的路面而言,需要理解约束线、伸缩力等知识点。
应用线性倒立摆的运动特性,可以规划机器人爬楼梯时的运动模式,首先设定适当的着力点,再将着地点上方高度为z的那些点连接起来形成约束线,通过控制质心沿约束线的运动,即可得到每步的水平运动。
三维步态模式的生成可利用三维线性倒立摆的相关原理,同样定义约束面,将质心控制在约束面上的运动。
同样,需要了解三维线性倒立摆的特性,开普勒第二定律、坐标系变换的影响、轨迹的几何形状等。
通过设定适当的约束面可以应用于爬阶梯或在不平整的地面上行走,需要设计步行单元、步行参数、落脚点的调整、步行方向的改变等。
在上述的步行模式的设计和规划中,我们假定倒立摆模型的支撑脚切换在瞬间完成,在切换过程中,ZMP从前一个支撑脚跳跃到后来的支撑脚,因而水平方向上的加速度从最大值跳到了最小值,在这种情况下,机器人承受最大的冲击可能损坏系统。
为了得到适合实际机器人采用的光滑的步行模式,可在支撑脚切换时插入一个周期为T的双足支撑阶段。
步态模式分为离线和在线两种,可见书中详细内容。除了上述简单的原理和知识点,书中还介绍了桌子-小车模型、ZMP跟踪控制、预观控制系统、基于预观控制的动力学过滤器等。
对于仿人机器人而言,步态稳定器非常关键。步行稳定控制的基本原理:通过踝关节力矩进行控制、通过改变落脚点进行控制、通过质心加速度控制ZMP、上半身姿态控制、模型ZMP控制、冲击的吸收、通过LQ进行稳定控制等。
--------------------------------全身运动模式的生成----------------------------
保证稳定性的全身运动模式的变换方法包括:动力学过滤器、自动平衡器、躯干轨迹补偿算法等。
通过远程操作也可以控制仿人机器人的全身运动,包括基于操作点切换的全身运动远程指令法、基于分解动量控制的全身运动生成等。
-------------------------------------动力学仿真--------------------------------
这一章可以参考书中内容。
由于这本书是2007年印刷的,所以离现在已经11年了,11年过去了,仿人机器人的技术已经发展非常之快,刘子茂:中国是否有开展类人型机器人研究项目,如果没有,为什么没有类似的项目?这篇知乎文章也做了相关的讨论。
睿慕课2018人工智能与机器人开发者大会上,北京钢铁侠科技有限公司创始人张锐做了题为《仿人机器人及其运动脑》的技术分享,有兴趣的朋友,也可以看看:睿慕课》大咖演讲》开发者大会》仿生机器人及其运动脑
本文转载自知乎,作者:段晋军,如若转载请联系原作者。
相关标签:
- 动力学
- 运动学
- 机器人
参与评论