基于FRP反馈机制的仿真3D足球机器人运动平衡控制

2010-10-09 07:50王罡
赤峰学院学报·自然科学版 2010年9期
关键词:反作用力左脚个数

王罡

(集美大学 计算机工程学院,福建 厦门 361000)

基于FRP反馈机制的仿真3D足球机器人运动平衡控制

王罡

(集美大学 计算机工程学院,福建 厦门 361000)

随着RoboCup仿真足球3D的机器人模型由球形向人形的转变.现阶段很多队伍的研究工作都主要是对机器人基本动作的实现,而机器人的平衡控制则是执行其他动作的前提.我们通过对机器人足部的反作用力感知器FRP(ForceResistance Perceptor)的感知信息的量与质两方面的综合分析,就可以知道当前机器人的平衡状态,从而及时执行新的动作或做出矫正的策略.

RoboCup;仿真3D;FRP;平衡控制

RoboCup仿真足球机器人比赛是在一个标准的计算机环境中进行的.计算机提供了一个完全分布式控制,实时异步多智能体环境.通过这个平台,测试各种理论,算法和Agent体系结构.在实时异步,有噪声的对抗环境中,研究多智能体的合作对抗问题.目前仿真足球比赛主要包括仿真2D(二维平面)、仿真3D(三维立体)两大赛种.从20007年的Atlanta世界杯开始微软也推出了基于Sony-AIBO机器狗的仿真足球比赛MSRS.RoboCup仿真2D比赛主要研究的是多智能体之间的配合,并没有空中球的概念,所有机器人被模拟作一个圆圈,对机器人的底层动作实现也进行的高度的抽象化和理想化.而仿真3D则随着仿真0.5.3版的rcssserver3d在2007年2月12号的正式发布,标志着仿真足球机器人的比赛迈开了向类人挺进的步伐.

现在基于0.5.6.rsg的仿真3D的机器人模型体重约5KG,身高约4.5M,共有22个关节[1],如下图所示:

基于0.5.6版rsg的仿真3D足球机器人模型

其中每个足部有两个关节,分别控制着脚掌的侧面和前后翻转.每个脚掌上都有一个感知器,它包括外界(主要是地面,足球,球门和其他队员的肢编号体)对脚底板的反作用力的方向和大小以及作用点的位置.当两个物体的表面相互接触时,它们有很多的接触点,在仿真3D的世界里(即使在现实中也是如此),我们不可能提供每个接触点的作用力的大小和方向.因此,为了简化运算,我们引进了FRP,来抽象代表这些接触点所受力的矢量和.格式如下:

身体部位 BodyParts 质量 长度 宽度 高度脚底板 Foot 0.10.60.9560.095足踝 Ankle 0.3550.1430.476肘子 shanks 0.250.520.450.964大腿 thighs 0.250.560.451.3髋hips 0.10.2730.2730.3hand10.0820.2720.57hand20.2420.2650.164hand30.0740.2720.2下臂 lower arms 0.20.4450.3160.6弯头 elbows上臂 upper arms 0.20.4450.3980.506肩膀 shoulders 0.50.4451.0170.536头head 0.3上半身 UpperTorso 1.21.370.961下半身 LowerTorso 0.61.320.550.55

(FRP(n lf)(c-1.500.110.05)(f 12249.48-1179.153891.65))

(FRP(n rf)(c-1.350.10-0.02)(f 9895.07601.752520.77))

其中FRP是标志字符串,n(node)是节点标志,lf(left foot)代表左脚节点,rf(right foot)代表右脚节点.C(concentration)代表反作用力的在本地坐标中三维中心坐标,f(force)代表反作用力的三维合成矢量大小和方向.

为了减少不必要的网络传输,在0.5.6版服务器中规定,只有当机器人的足部有与其他物体表面接触时才会得到以上感知信息.当机器人双足都与地面接触时,它所接收到的FRP个数为两个(lf和rf).如果机器人左脚单脚站立,右脚悬空(比如在踢题球准备动作的抬腿期间),如下所示.

那么它的FRP返回个数就只有一个即只返回左脚的FRP感知信息.

如果机器人的双脚同时离地(比如跳跃,或者摔倒),而且彼此又不互相碰撞,如下所示:

那么此时就没有了FRP的返回信息,根据这些服务器所返回的FRP的个数,我们可以定性地推测出机器人当前是否摔倒或者单脚独立(亚平衡状态)等等[4].如果发现FRP的个数为0,而且这种情况持续了一段时间(目前我们设为10仿真个周期,约0.2s的真实时间)那么我们就可以断定此时机器人已经倒地,必须调用起站立的功能来让它爬起来,等到站立动作结束后,再检测一次FRP的个数,如果发现还是为0,则说明起站立失败,必须重新执行.

以上大致说明了通过FRP的个数来分析机器人的状态,并做出相应的策略.我们还可以通过对FRP的具体内容进行分析,以获得更高质量的机器人状态平衡信息.主要是包括行走时的偏移矫正,转弯过程中侧翻的预防以及踢球时避免出脚时与地面发生摩擦.

1 向前行走时,FRP的反馈矫正

以下是改进前的JMU3D机器人向前直走时的FRP曲线图:

这里我们主要关心的是FRP的Z轴,因为它决定了机器人是否会前翻或后仰.如上图所示,Z轴在起初平稳站立时平稳地保持在34N左右,这主要时克服地面对机器人重力的反作用力.当双脚同时站立时各分担一半的重力即:mg*1/2,由于机器人在每个周期内都要对各个关节进行角度矫正,加上鲁棒的因素,因此实际在站立过程中机器人并不是绝对静止的,而是在颤抖着[5],所以它对地面的反作用力要大于本身的重力.从图中可以看出Z轴的反作用力在保持一段0值后会有一个峰值Zmax,均在80以上,这是当左脚落地时地面的冲击力.通过多次实验证明以上的Zmax值过大,从而导致了机器人在行走时经常发生前翻的意外,导致走路很不稳定.根据倒立摆模型,我们可以得出FRP的Z轴在行走时最佳的触地值.

Zmaxbest=mg+mv^2/r[2];其中倒立摆的中心为机器人左脚落地时第一个周期的接地点,根据机器人的重量m,正常步行速度约为v,机器人的重心高度即半径R,从而我们得到此时的理想值约为58N.根据以上结果,我们对机器人起步时的膝关节作适当的后倾的调整,同时在行走时落地前作角度的检测并及时的更新使之保持在允许的误差范围内.

改进后的机器人走路时FRP-Z轴反作用力图如下:

以下为正常比赛状态下,对每个Zmax值进行100次的向前步行测试

Zmax正走2步稳定率正走4步稳定率正走停止稳定率 出现异常情况机器人偶尔会向前、或向后倾倒,或与地面产生滑动摩擦而转向导致重心失衡5691% 72% 70% 机器人会向后倾倒6080% 75% 72% 机器人会向前后倾倒5895% 90% 87%

通过实验验证,改进后的机器人步行发生前翻的概率大大降低,在起停时的稳定性也有了进一步的提高.

2 转弯时侧翻的预防应用

机器人的转弯可分为原地转弯和绕球转弯[3].为了简化复杂度,我们在这里只分析原地转弯时的情况.在机器人转弯过程中,整个身体的重心一直都处于侧向摇摆的状态,在转弯完毕停止的瞬间摇摆也要随之而停止,但如果超过必要的幅度,则会导致发生侧翻的危险,如下所示:

对此,我们从FRP的作用点的坐标出发,探索转弯时脚底板最佳的触地点和起步点.而接触点中的X轴分量是关系其是否侧翻的最主要因素,以下是改进前的机器人在原地转弯时,FRP反作用力的受力点中X轴的位置时序图:

X轴的正向代表坐标位于足底中心向外,在落地的瞬间,即图中的第41、89和122个周期中X轴的正向坐标都达到一个正向峰值,这意味着转弯时每次的落地点都在左脚的外沿,而且在第89到100个周期内,基本上维持在0.4以上的峰值,这必将导致整个身体的重心严重左移,甚至超出了摇摆所能承受的回落极限,一旦不能回落,就意味着机器人将向左边侧翻.因此我们也必须找出这个最佳值,来限制机器人在落脚时的触地点和作用时间,以防止其发生因过度摇晃而侧翻的危险.足部X轴的正向最大值为Xmax,人的身体宽度(躯干加肩膀)为BodyX,转弯时的重心高度H,要确保在转弯时不发生左侧翻,则必须保证其重心在X轴方向上不超过左脚的受力点.

通过反正弦函数可求得θ=atan(BodyX/(2*H)),所以根据 Xoffside的最佳值 Xbest为:(Xmax+ Xmax*(1-cosθ))/2;

这时我们可以通过对落地点的判断通过控制左脚底侧向自由度向右侧旋转或和重心的右移(如张开右腿)等措施来做出矫正,我们同样分别对FRP-X的极限值进行了左右方向转弯各100次的转向测试,结果如下:

0.260.300.35左转 93% 94% 75%右转 92% 97% 70%存在问题落地不稳,易产生滑动摩擦,导致平面重心移动和转向效率降低落地时由于惯性的影响,转向的角度与需要目标角度略有误差机器人落地时易发生侧翻,或出现两腿同时腾空的剧烈颤动

经过以上改良方法之后的FR-X轴坐标时序图如下:

通过对X轴触地坐标的动态矫正,改进后的机器人几乎不会发生侧翻的情况,原地转弯的停止动作也变得更加的平稳利索.

3 结语

通过以上的实验和研究,我们在agentspark的基础上,建立了自己的JMU3D仿真机器人足球队,并参加了”2007中国机器人大赛暨RoboCup中国公开赛”和“2007拉丁美洲RoboCup公开赛”,“2008年世界杯”均取得了不错的成绩.

在RoboCup人形仿真3D中,传感器的数量和功能目前还有很大的极限,比如摄像头位于身体的中心而不是头部,而且所看到的对象只是一个个抽象的质点,没有具体的状态,如看到其他队球员时不能知道他的身体朝向和各个关节的状态等等.虽然FRP传感器的反馈信息基本上尚可以满足对整个机器人的运动平衡的控制,但是这仍然是不够的,比如人体手和头部等突出部位也同样需要压力传感器,以便更好得的动态控球和避免不必要的碰撞等.

我们也期待着更完善的仿真3D服务器(rcssserve-0.5.7)能够早日推出,相信通过全体RoboCup成员的共同努力,我们必定能够赶在2050年实现RoboCup的远大目标:“于2050年组建真实世界机器人足球队,在世界杯的比赛中赢得与人类的比赛.”

〔1〕http://www.robocup.org/overview/21.html.

〔2〕Mao Chen&Klaus Dorer&Ehsan Foroughi& Fredrik Heintz&ZhanXiang Huang&Spiros Kapetanakis & Kostas Kostiadis & Johan Kummeneje&Jan Murray&Itsuki Noda& Oliver Obst&Pat Riley& Timo Steens&Yi Wang and Xiang Yin,Users Manual RoboCup Soccer Server for Soccer Server Version 7.07and later,February 11,2003.

〔3〕http://www.gnu.org/copyleft/gpl.html.

〔4〕李蔚泽.Red Hat Linux 9网络管理.清华大学出版社,2003.216-239.

〔5〕郭军,熊蓉,吴铁军.RoboCup机器人足球仿真比赛开发设计.浙江大学控制科学与工程系,工业控制国家重点实验室,2002.

〔6〕http://www.nlict.zju.edu.cn/nlictrobocup/robocup _chinese.htm.

〔7〕Peter Stone,Layered Learning in Multi-Agent Systems,Carnegie Mellon University,1998.

〔8〕Kostas K,Hu Huosheng,Rinforcement Learning and Co-operation in a Simulated Multi—agent System [C]//Proceedings of the 1999lEEE/RSJ internationalConference on Intelligent Robots and Systems Japen:IEEE,1999.990-995.

〔9〕Endo K.Ito S,Yam aguchiH.eta1.Team Descriptionfor ‘DONGURI’[C]//HirokiK.RoboCup一 98:Robot Soccer WorldCup II Berlin:Springer,1998.305-308.

〔10〕李实,陈江,孙增圻.清华机器人足球队的结构设计与实现.清华大学计算机科学与技术系,智能技术与系统国家重点实验室.清华大学学报(自然科学版),2001,41(7).

TP242

A

1673-260X(2010)09-0034-04

猜你喜欢
反作用力左脚个数
怎样数出小正方体的个数
气球火箭
先左脚,再右脚(下)
先左脚,再右脚(上)
“左脚丢鞋”案件
抬不起的左脚
等腰三角形个数探索
怎样数出小木块的个数
怎样数出小正方体的个数
分析、概括法在牛顿第三定律中的应用