熊 雕,刘玉良,欧阳浩敏
(1.浙江海洋学院船舶与海洋工程学院,浙江舟山 316022;2.浙江省舟山市技工学校,浙江舟山 316000)
类人机器人全能运动的稳定性研究
熊 雕1,刘玉良1,欧阳浩敏2
(1.浙江海洋学院船舶与海洋工程学院,浙江舟山 316022;2.浙江省舟山市技工学校,浙江舟山 316000)
类人机器人全能运动包括不同粗糙平面上的快速行走、越障、踢球、格斗等,稳定性是上述运动的关键环节。本文从分析机器人关节角与零力矩点(ZMP)的关系入手,研究提高机器人运动稳定性的新方法。具体步骤是先粗调校正机器人姿态,然后确定各关节角度,得到保证稳定运动的关节角范围。最后依托韩国GP型机器人进行测试,结果表明了所提出方法的有效性。
类人机器人;全能运动;稳定性;关节角度
机器人根据用途可分为工业机器人、服务机器人、娱乐机器人、军用机器人、农业机器人、空中机器人、水下机器人等,其中服务机器人以类人机器人为主。本文选取16自由度类人机器人为对象,主要研究提高机器人运动稳定性的新方法。由于类人机器人需要双脚站立和行走,稳定域很小而且自由度很大[3],因此,提高稳定性研究是类人机器人运动的核心问题。
目前比较典型的类人机器人有日本本田公司的ASIMO[1],法国的ALDEBARAN Robotics公司的NAO,美国波士顿动力公司的Petman等,具有较强的步行稳定性。这些机器人的步态设计依赖于精确的关节角度,而关节角度的确定又依赖于ZMP及线性倒立摆控制原理[5]。计算ZMP需要建立精确的数学模型,从而得到最优的步态关节角,但是从建模到参数整定每一步都需要投入大量精力和时间。最近,台湾学者报道了通过外加脚底压力传感器[?]来提高机器人稳定性的新方法,但是这样会增加系统延迟和出错率,反而不利于系统的整体稳定性。本文通过动作设计、关节角度参数调整等步骤,研究不同路况下类人机器人快速行走以及搬运物体、踢球、格斗等复杂运动的稳定性。考虑到成本低、供电方便等要求,本文选用韩国GP型类人机器人为研究和测试对象。
韩国GP型类人机器人具有16个自由度,包括每只手臂的3个自由度和每只腿的5个自由度。机器人运动过程中的每个动作可分解成若干静态姿势,将所有静态姿势连续运行后,就可以对接成一套完整动作。每个自由度由1个Dynamixel AX-18A型舵机控制,通过主控板依次向舵机发送每个静态姿势的所有关节角度指令,从而使机器人做出各种动作。图1表示类人机器人的基本结构。为调试方便此时各个关节角度定义为0°,舵机的参数定义为512,参数可调节的范围为1~1 023(对应的角度为-150°~150°),参数值每增加1个单位,角度就增加0.293°。舵机有60°的盲区,盲区内角度无法识别。角速度参数范围0~1 023,角速度参数为0则舵机将以电压能提供的最大速度运动,此时速度无控制;1为最小角速度,1 023为最大角速度114周/min(图1)。
图1 机器人视图Fig.1 Humanoid robot view
机器人全能运动的稳定性包括行走的稳定性、搬运物块的稳定性、踢球的稳定性和格斗的稳定性等,其中行走的稳定性是机器人完成复杂动作的基础和关键。
2.1 提高行走的稳定性
2.1.1 通过动作设计提高行走的稳定性
平面无障碍行走:机器人行走动作的设计,要综合调节两条腿10个舵机的角度,若想精确的控制机器人行走的方向和提高行走的速度,那么对每一步,每个关节的角度都要仔细校正才能达到理想的稳定效果。行走时,机器人和人一样双腿交替前行,但脚躁关节处的动作变化有很大的区别,一般双脚交替前行时,后面一只脚的脚后跟先离地,把后腿抬高,然后整个脚再离地,而机器人则是后面一只脚脚掌内侧先离地,把腿抬高,然后整个脚掌再完全离地。这样可以使机器人在行走时的稳定域[6]更大,提高机器人的稳定性。如图2所示,脚底部分虚线为脚底抬起的部分。
图2 机器人行走方式与人行走方式区别Fig.2 The difference walkingmethod between human and humanoid robot
平面快跨越障碍:跨越障碍也是动作设计的一个难点,由于在跨障的时候只有一只脚站立,为了提高机器人的稳定,就要使机器人的手臂和腿部协调运动,并且考虑到机器人自身重力使膝关节运动时的实际角度小于设定角度的问题,还要根据实际情况校正膝关节角度。现将整个跨障动作细分为12个动作节点,使机器人跨障动作更加连贯和稳定。动作调整时,先单独调整每个节点站立的稳定性,然后再将12个节点从头到尾依次连续运行,使其做出完整的跨栏动作,若在某个节点出现站立不稳的情况,就根据具体状态精确校正舵机参数,保证机器人运动时的平衡。由于跨障动作幅度大,机器人容易摔倒,要减慢机器人运动的速度,减小动作的冲击,才容易调整动作使ZMP(Zero-Moment-Point)[2]保持在稳定域内,提高机器人的稳定性。
另外,减少手臂摆动也是提高行走稳定性的有效措施,也是节约能量、延长稳定行走时间的有效方法。
2.1.2 通过调节舵机参数提高行走的稳定性
动作设计好后,就有对应角度参数范围,但这个范围只能保证机器人在行走的过程中不会摔倒,会出现晃动很厉害的情况,这就需要精细的调节每个关节的角度,提高机器人运动的稳定性。机器人行走不稳定一般表现在以下四个方面:
(1)行走时左右摆动幅度过大;(2)行走时前倾或后仰;(3)起步时,脚无法提起,并直接倒向抬脚一侧; (4)行走时无法走直线。
由于脚躁关节对机器人ZMP影响最大,膝关节和髋关节次之[6],所以在调节关节角度的时候,先粗调裸关节的角度,然后在精细调节膝关节和髋关节的角度,这样可以快速的使机器人达到最佳的稳定状态。出现1、2两种情况时,主要是由于机器人行走时身体四个方向倾斜角度太大,只需要降低偏移角度即可,但在调节的时候一定要综合考虑每个关节对步态、重心的上下变化的影响、还有舵机的性能等因素,一般先调节脚躁关节处(15、16、17、18)舵机,角度参数先以增减量为2为幅度调节,然后角度参数增减量调为1,然后再调节膝关节(13、14)舵机和髋关节(9、10、11、12)舵机的角度,增减量相同,这样可以得到机器人最佳的运动稳定性。出现第3种情况时,原因刚好和1、2时相反,这时只需要增大机器人倾斜角度和适当提高脚抬起的高度即可,调节方式与上文相同。理论上,只要机器人左右两边的关节角度对称,机器人就可以笔直的向前行走,若出现第4种情况,主要是由于左右腿上的舵机性能有细微的差别,导致左右脚不能完全对称的运动,就使机器人虽然设定为直线行走,但实际上是拐弯行走,这种情况只能通过校正脚躁、膝盖关节角度变化量解决,一般校正量很小,角度参数增减量为1,但需要长时间的调试校正,才能得到理想直线行走的效果。
实际路面粗糙程度也对稳定性有影响,摩擦度高的地面可以提供较大的摩擦力,可以把机器人行走速度设置的很快;但是在光滑的比赛平台上行走时,脚底容易打滑摔倒,机器人脚底很难得到足够反作用力,只能以较慢的速度行走,保证机器人运动的稳定。
2.2 提高搬运动作的稳定性
由于机器人硬件的限制,只能通过机器人双臂把东西抱住,将物体举到头顶再进行搬运。在搬运物块时,将机器人两个手臂上的舵机设为滚轮模式,使手臂的动作不受关节角度数据影响,而根据自己的要求,调节手臂的位置,使重心或ZMP点仍然落在稳定域[6]内,只是重心的位置有所升高,但不用再额外设计搬运动作,减少设计时间。并且在搬运的时候可以随时调节手臂位置,使手臂能紧紧抱住物块,提高搬运的稳定性。
抓取物体的动作中需要手臂前伸,这会造成重心投影向前移动,需要给机器人一个重心向后调节的校正量,保证机器人重心落在稳定域内;放下东西时同理,校正量的调整与调整舵机参数提高行走稳定性方法相同。搬运行走的动作是直接调用行走的动作参数,都是稳定的动作,不用再校正参数。但是机器人手臂抬高会造成重心位置升高,需要减慢机器人移动的速度,提高搬运的稳定性。
2.3 提高类人机器人踢球的稳定性
类人机器人踢球稳定性的提高,也需要通过动作设计和参数调整来完成,但是与之前不同的是,机器人踢球时是一只脚站立,而且会受到球的反作用力,这增加了动作设计的难度。机器人在抬起一只脚准备踢球时,需要将机器人的身体同时倾向站立脚的方向,使重心投影转移到一只脚的稳定域上,保证机器人站立的稳定性;在机器人踢球但没接触到球的这段时间内,要协调上身与脚的运动,保证机器人整体前后方向的运动平衡,使ZMP在稳定域内,不然腿部的向前的惯性很容易使机器人摔倒;对于球的反馈力,可以把机器人踢球时的重心调节到偏向球的方向,这样球的反作用力正好起到了一个校正姿态的作用,保证了机器人的平衡,并且在踢完后立即使机器人双脚站立,然后再调整到常规站立姿态,这样可以大大提高机器人踢球的稳定性。踢球参数的调整与快速行走参数的调整相似,不再赘述。
2.4 提高格斗的稳定性
格斗动作设计跟踢球动作设计有类似的地方,但格斗有手臂动作的参与,要考虑到手与脚运动的协调,提高机器人的稳定性。而且格斗动作的幅度和冲击强度很大,如果动作冲击强度太大,很容易损坏关节上的舵机,所以先考虑机器人硬件承受能力,再来提高机器人格斗时的动作力度。在攻击的时候只有保证ZMP在稳定域内,机器人才能保持稳定,而横向攻击时,机器人的稳定域最大,即ZMP点的可变化范围最大,所以采用横向攻击机器人稳定性最好。当机器人是横向攻击的时候,要尽可能提高双脚的跨度来增大稳定域,并降低机器人的重心高度,这样即使ZMP点在稳定域内产生较大的变化,也不会摔倒。
由于机器人横向攻击时重心前后可变化的范围很小,若受到前后方向的分力,机器人重心很容易离开稳定域而摔倒,所以要调整机器人动作,使其手臂完全处于横向进行击打,提高格斗的稳定性。
图3 机器人脚步动作Fig.3 Robotaction of feet
快速行走的参数经过细微调整后,机器人可以行走的很稳定,但提高机器人运动速度后,机器人经常走了一段距离后就开始拐弯,无法保持一直走直线,理论上只要两边动作变化对称,机器人会以直线行走,推测是机器人硬件的问题,两只腿上的舵机性能有细微的差别,当机器人运动速度一旦提高后,这种细微的差别就放大显示出来,出现机器人拐弯的现象,后来通过校正关节参数,可以使机器人的行走方向的变化量有一定减小,但是无法完全走直线。
表1 抬左脚时三个动作节点的舵机参数Tab.1 The actuator data of three action step when raised left foot
表2 抬右脚时三个动作节点的舵机参数Tab.2 The actuator data of three action step when raised right foot
第一组是左脚向前跨一步时三个分步的参数,右脚抬腿向前的参数仅需要将左脚这组数据通过角度对称换算,利用公式nr=1024-n1求出右脚抬腿时对应舵机(如11对应12,13对应14)的参数,两组参数组合起来就是完整的双脚交替向前行走动作的参数,然后再进行校正,提高行走的稳定性。经过大量调试,机器人无论是加速减速,在这组参数下向前行走的稳定性都是最好的。跨障动作节点过多,参数的确定主要在于姿态的调整,参数调整过程就不在此一一列举。
调节踢球的在动作时,发现机器人在踢完球后,晃动的很厉害,经过仔细观察,发现主要是受机器人与球之间的反作用力干扰,无法自动校正,导致原始设计的动作无法满足机器人稳定性的要求,后来把机器人的重心向球的方向偏移了一点并在踢完球后立即双脚着地,然后慢慢调整为正常站立的姿态,这样增大了机器人在踢球后的稳定域,再踢球后就几乎没有晃动,稳定性非常好。调节格斗的动作时,刚开始机器人在击打对手后,由于受到反作用力,自己也经常会摔倒,后来把向前攻击改为横向攻击和并降低了重心的高度,机器人的稳定性有了很大的提高,即使在高强度的击打动作下也能稳定的站立。踢球和格斗的动作的稳定性主要在于动作设计,参数就不在此列举。
主控板和Dynamixel AX-18A舵机进行的是半双工异步串口通讯,控制板向对应舵机发送改变参数的指令包,就可以调节关节的角度。由于篇幅所限,仅说明设定两个舵机的参数指令包,若要设定更多的舵机,只需要在后面加上舵机的ID和角度、速度参数即可。在搬运物块时需要将舵机设定为滚轮模式,此时把手臂上舵机的顺时针和逆时针角度限制设定为0°。角度参数变化范围0¯1 023,下面列举一个改变舵机角度指令包示例和一个设为滚轮模式指令包示例,改变ID的值即可改变相应的舵机。设定舵机为滚轮模式的指令包代码如下:
本文研究类人机器人快速行走、搬运物快、踢球、格斗稳定性,就是通过动作设计增大稳定域并调整关节角度来调节重心位置及ZMP点,使其重心能够稳定的落在脚底与地面的接触稳定域内,或保证ZMP点能在稳定域内。实验结果表明,提高类人机器人稳定性的关键是:调整关节参数时不能单独考虑一个关节,而要综合考虑各个关节对机器人整体运动姿态的影响,这样调整才能得到更快更好的稳定控制效果。本文选用的类人机器人只有40 cm高,跟实际的类人机器人差距不小,本文研究结论如何应用于实际的类人机器人尚需进一步探索,这是我们下一步研究的重点。
[1]唐 策.人形机器人运动控制的研究[D].上海:上海交通大学,2012.
[2]杨东超.基于ZMP的拟人机器人步态规划[J].机器人,2001,23(6):504-508.
[3]王建文.仿人机器人运动学和动力学分析[D].长沙:国防科学技术大学,2003.
[4]徐 凯.仿人机器人步态规划算法及其实现研究[D].北京:清华大学,2004.
[5]刘津甦.复杂环境中的人形机器人行走规划[D].合肥:中国科学技术大学,2010.
[6]付根平,杨宜民,陈建平,等.基于ZMP误差校正的仿人机器人步行控制[J].机器人,2013,35(1):39-44.
[7]YOSHIDA E,POIRIER M,LAUMOND J-P,et al.Pivoting based manipulation by a humanoid robot[J].Autom Robot,2010,28:77-88.
[8]ARBUCKLE D J,REQUICHA A A G.Self-assembly and self-repair of arbitrary shapes by a swarm of reactive robots:algorithms and simulations[J].Autom Robot,2010,28:197-211.
Study on Stability in the All-around M ovementofHumanoid Robots
XIONG Diao1,LIU Yu-liang1,OUYANG Hao-min2
(1.Naval Architecture and Ocean Engineering School of Zhejiang Ocean University,Zhoushan 316022;2.Zhejiang Zhoushan Vestibule School,Zhoushan 316000,China)
The all-round movement of humanoid robots include fast walk in different rough surface,climbing through obstacle,playing soccers,fighting with each other,and so on.How to guarantee the motion stability is the key link among the above.In this paper,a new way to improve themotion stability has been found based on the the relationship between joint angles and the Zero-Moment-Point(ZMP).The concrete works include several steps as follows.Firstwe adjusted coarsely the pose of the robot,then to determined all joint angles and obtain the angle range guaranteeing stable motion.Finally we chose a GP humanoid robot made in South Korea carry on stabilitymeasurement,and itwas showed that themethod presented in the paper is efficient.
humanoid robot;almightymotion;stability;jointangle
TP242.3
A
1008-830X(2014)05-0437-05
2014-05-10
舟山市科技局公益性项目(2013C31046)
熊雕(1991-),男,湖北随州人,硕士研究生,研究方向:船舶电气及其自动化.E-mail:xiongd520@foxmail.com
刘玉良,男,副教授,研究方向:信号处理与通信网络.