关闭

关闭

关闭

封号提示

内容

首页 足球机器人 机器人介绍

足球机器人 机器人介绍.doc

足球机器人 机器人介绍

孙安仁 2017-09-29 评分 0 浏览量 0 0 0 0 暂无简介 简介 举报

简介:本文档为《足球机器人 机器人介绍doc》,可适用于领域,主题内容包含足球机器人机器人介绍摘要ABSTRACT错误~未定义书签。II第章绪论引言多智能体的研究现状及其应用多智能体系统(MultiAgentSystem简符等。

足球机器人机器人介绍摘要ABSTRACT错误~未定义书签。II第章绪论引言多智能体的研究现状及其应用多智能体系统(MultiAgentSystem简写为MAS)多智能体系统的理想研究平台足球机器人足球机器人简介足球机器人系统及其分类足球机器人的发展及现状ROBOCUP概述RoboCup比赛介绍RoboCup中的关键技术研究RoboCup的意义论文的主要工作第章足球机器人的总体结构引言足球机器人系统构成本实验平台硬件构成机器人小车子系统构成视觉子系统构成通讯子系统构成主计算机足球机器人管理系统策略库机器人管理器机器人函数库命令解释器路径规划器专业小结第章多智能体足球机器人系统的底层控制策略设计引言足球机器人的运动学、动力学分析球的运动学分析足球机器人的基本行为速控行为(Velocity)移动行为旋转行为(Angle)足球机器人的基本动作踢球(Kick)拦截(Block)射门(Shoot)守门(Goalkeep)传球(Pass)小结第章多智能体足球机器人系统的高层控制策略设计引言控制策略的实现过程基于产生式规则的高层策略表示全场区域控制策略场地划分具体控制规则队形的确定队形的定义队形的确定角色分配及转换机制角色效用角色的分配与转换专业机器人的路径规划与避障中垂线法人工势场法虚力场法栅格法惯性预测法基于极限环的路径规划方法小结第章足球机器人的仿真系统引言仿真比赛环境仿真比赛运行机制SoccerServer的结构监视器Monitor仿真体系结构服务器接口场上状态决策仿真球队体系的建立客户程序的体系结构客户程序的数据结构球员基本战术动作仿真程序策略流程仿真比赛实验服务器与客户程序的连接RoboCup的仿真比赛过程RoboCup的仿真比赛实现小结总结错误~未定义书签。专业致谢错误~未定义书签。参考文献错误~未定义书签。附录(按区域决策程序)错误~未定义书签。专业第页摘要RoboCup足球机器人是人工智能领域对多智能体系统(MAS)研究的一个具有代表性的问题是研究多智能体系统(MAS)的理想平台可以通过研究RoboCup足球机器人来重点突破MAS的关键技术。它综合了机器人学、机电一体化技术、通讯与计算机技术、机器视觉与传感器融合技术、决策与对策、智能控制等多学科高新技术。足球机器人系统是由机器人小车、视觉系统、通讯系统、决策系统四个子系统组成。本文对微型足球机器人决策子系统中的制策略它确定应该采用哪一条使用规则而且当数据库的终止条件满足时就停止计算。控制策略由控制系统选择和确定。作为人工智能系统的基本结构单元产生式系统可以最直接的表达头脑中的规则和判断方式所以在设计高层策略的时候很自然的就会想到基于产生式的设计方法。为了使机器人能够按照设计者的意图去比赛产生式系统是最直接、最简单也是最实用的方法。产生式策略系统一般采用如图的结构。此结构中策略层分为五个层:机器人控制器、角色层、动作选择层、基本动作层和基本行为层。其中后两层属于底层策略己经讨论过了。结合国内外学者在高层策略方面开展的研究工作下面我们介绍一下现有的各种经典高层策略:专业第页()宽度区域防守。以中场线为界每个机器人都有自己的活动区域都有自己的角色(前锋、后卫、守门员)。前锋在对方半场不回本方半场守门员不出禁区后卫在本方半场不到对方半场如果球在对方半场前锋射门后卫不动如果球在己方半场后卫防守前锋不动。()全攻全守。守门员仅在禁区活动。当球在对方半场时进入进攻状态离球近的机器人负责抢球、射门及传球称为主攻机器人另一机器人向对方球门区运动进行跑位配合伺机接球射门得分称为协攻机器人。当球在己方半场时进入防守状态离球近的机器人负责抢球称为主防机器人另一机器人向己方球门区运动参与防守称为协防机器人。主防机器人得球后既可以传球给协防机器人也可以直接带球转入进攻机器人的攻守转换是根据球的位置来决定的。()自由人战术策略。守门员在自己的禁区内活动完成扫球动作力保不失球。其中一机器人的任务主要是在己方半场完成防守任务不到对方半场活动。而另一机器人我们设它为自由人当球位于对方半场时它完成进攻任务来射门得分当球位于己方半场时它跑回本方半场参与防守。显然这种比赛策略偏重于防守。()全攻单守策略。守门员仅在禁区活动(当球位于对方半场时两个机器人进入进攻状态专业第页一个主攻一个协攻。当球在己方半场时离本方球门最近的机器人回来参与防守另一机器人呆在前场不动(本策略偏向进攻。()孤注一掷战术策略。当我方比分落后比赛即将结束为扭转局势所采用的战术。我方有两个机器人处于对方半场进攻来射门得分而守门员可以运动到己方半场的任意位置即守门员有双重责任既要充当守门员又要充当防守者。()保守防守战术策略。当我方比分领先而比赛时间所剩无几时为保证取得胜利我方三个机器人都处于本方半场防守不去对方半场进攻防守策略可任取以上几种策略中的一种。这些策略只是几种可供参考的策略实际上还可将这几种策略综合起来考虑或按需要增加新策略。论文设计了基于全场区域控制的高层控制策略。全场区域控制策略场地划分论文的控制策略主要是按照球在场上的绝对位置来做判断的。基于这一点将球场按X方向划分为个区域(如图)用RRRR表示我方的机器人其他表示对方机器人按球在哪个区域来做进一步的决策。AAAAAA专业第页图球场分区图具体控制规则规则:球在我方禁区(pMem>BallX()<)如图。首要选择是R传球给队友R他不能在我方球门附近且他的周围人比较少如果经过判断认为传不出去对方逼得又不紧那么就自己从边路向前带球对方紧逼带球也不行就以最大力量大脚开出寄希望于依靠球速穿过敌方球员的身体。RRRR专业第页图球在A区规则:球在我方后场((pMem>BallX()>=)(pMem>BallX()<))如图。首先看有没有队友在比“我”R更靠前场的地方尽量把球传给他而且要求他的位置比守门员要靠边这是为防止对方拦截球后射门而守门员回防不及如果觉得传球不安全就向球场的两个边路带球再不行就向对方禁区的两个角大脚开期待前锋可以拿到球。RRRR图球在A区规则:球在中场((pMem>BallX()>=)(pMem>BallX()<))如图。如果选择的作传球配合的队友是R或R就把球从边路向前塞给前锋提供突破的机会不满足上面的条件那就看准机会自己突破再不行专业第页再选择传球给队友。RRRR图球在A和A区规则:球在前场((pMem>BallX()>=)(pMem>BallX()<))如图。如果“我”是R号那就自己从边路带球突破不行找一个与“我”X方向坐标差不多的队友(假设为R号)把球传给他找不到就把球踢到差不多对方禁区的前沿让对方守门员不知该不该出击寄希望于锋线上的队友能抓住机会。RRRR专业第页图球在A区规则:球在对方禁区(pMem>BallX()>=)如图。首先判断与对方球门中心的距离如果小于米那么:、确定对方门将位置如果其位置无效以一个缺省位置来记、根据门将位置计算一个成功率函数(以角度大小为标准)并决定“我”射门是打左边还是右边、如果成功率够高果断射门、如果成功率不够尝试横向带球或传球、发现传不出去但机会决不能浪费如果成功率不至于特别小小角度射门。、成功率实在太小了发现离球门太远那么:如果我已经接近对方底线了那就把球向回踢向对方禁区圈顶期待队友补射如果既没到对方底线又离球门太远就带球到对方禁区两角中较近的一个。RRRR图球在A区专业第页队形的确定在机器人足球比赛中由于有多个足球机器人参加比赛为了使全队足球机器人进行有机的合作和协调以实现全局合作避免冲突队形的确定是非常重要的。机器人的协作是通过队形来实现的通过队形将任务分解为角色集合。队形中包括与队中足球机器人个数相等的角色。因此每一个足球机器人充当一个角色。另外随着比赛队员数目的增加为了便于决策可将队形分为子队形称之为队形单元U〔如进攻队形单元、防守队形单元等〕。通过队形单元可以增强处理局部问题的能力实现局部战术增加决策的灵活性而又不影响整体动作。队形的定义队形就是角色的集合。对于由n个足球机器人组成的球队Team={RR„„R}队形可用一维数组表示如下:nA=a,a,a,a()其中a为后卫角色集合a为中卫角色集合a前卫角色集合a为前锋角色的集合a,a,a,a之和为上场足球机器人总数减一,即有vs,,vsaaaa,(),,vs,数组A中的任一元素a(i=)为整数它的取值范围取决于机器人足i球比赛类型。对于Vs机器人足球比赛a取值为,对于vs机器人i专业第页足球比赛a取值为,同理对于Vs机器人足球比赛a取值为,ii。上述定义中守门员角色没有包含在内。一维数组A中的a取不同的值就可以产生各种比赛队形。如vsi机器人足球比赛中若a=,a=,a=和a=则为队形即个后卫、期个中卫个前卫和个前锋:对于Vs机器人足球比赛若a=、a=、a=和a=则为队形个后卫个中卫个前卫和个前锋。同理对于vs类似。但在实际的机器人足球比赛中由于场地较小队员人数也不多对于Vs足球机器人比赛中只取前锋和后卫两种角色等。对应的队形有,、从上面分析可以看出通过一维数组的形式来表示的队形是非常直观同时易于程序编制、队形转换状态的记忆。队形的确定、常用的比赛队形根据队形的定义及分析可知如在vs的比赛中可产生多种队形但常用的队形有:进攻队形:安排更多足球机器人充当前锋角色所对应的队形如队形或者(强攻)队形。防守队形:安排更多足球机器人充当后卫角色所对应的队形如队形或(严密守防)队形。攻防兼顾队形:平衡地安排足球机器人充当前锋角色和后卫角色所对应专业第页的队形如攻防兼备队形是一种保守的队形可作为基本队形。、队形的确定队形的确定体现了整个队的攻防转换。考虑到球场瞬息万变的情况我们可以设计多套不同的队形以应付各种不同的情况和不同的对手。当场上情况满足预定的队形变化触发条件时整个球队就会自动转换队形以适应新的情况。队形确定所需的信息有场上对手强弱、比分多少、比赛所剩时间和球的位置等。为此按照上述原则论文设计如下规则:规则:若对手很强则采用严密防守队形规则:若对手很弱则采用强攻队形规则:如果比赛所剩时间不多且比分落后则队形转为强攻队形规则:如果比赛所剩时间不多且比分领先则队形转为密集形防守队形否则保持在攻防平衡的队形。角色分配及转换机制比赛场上变化无常每个机器人的角色不是固定不变的会视具体的情况(通过视觉系统反馈回来的各机器人和球的位置)而确定机器人的角色。一般来说除守门队员角色不会太大变化外其它两个机器人运动员的角色是会经常性的发生转换这是非常必要的比如:比赛时会出现的顶牛情况(两个机器人碰在一起互相顶死)如果是我方的进攻队员被堵另外一名防守队员它应该立即替代进攻队员抓住战机射球进门又如可以视进球机专业第页会的多少来确定谁负责进攻离球近、射门机会大的队员就应该担当起进攻队员的角色。角色效用为了更好的确定各角色的效用我们引入角色效用函数U概念:它role是对某一足球机器人适合于某一角色的估计估计值的范围为。估计值越大该足球机器人越适合该角色。效用值只适用于不同的足球机器人承担同一角色。角色选择的依据是根据比赛确定的队形当前球场状态信息对候选角色集计算一个效用值根据计算出的效用大小依次分配各个足球机器人承担的角色。角色的效用值可包括以下内容:、机器人希望运动到球位置的时间。、适合于机器人角色的位置。对于没获控球权的足球机器人我们需要计算出机器人处于某一位置时角色效用值从而决定机器人是否适合这个角色。、足球机器人是否正控球。为了确定每个足球机器人承担何种角色下面分别建立计算效用值的函T数。计算涉及到的现场信息有机器人的位置(xy)和方向角θ球的位pppT置(xy),它们表示为:bb,,xp,,x,,bpy,,,()b,,,p,,y,,b,,,p,,时间函数T:它是计算足球机器人从点运动到球的时间估计值是pb专业第页足球机器人到达球的位置最短运动轨迹。函数D为足球机器人到球几何中心距离φ为足球机器人转到面向球的最小角度。若足球机器人与球之间无障碍物时间相对较少若足球机器人与球之间有障碍物要考虑避开障碍物的时间。时间函数表示为:,Dpbpb(,)(,)()Tpb(,),vv,d其中为足球机器人最大运动速度为足球机器人运动最大角速度。vvd,将时间函数T变为效用函数转换关系为单调函数关系即足球机器人运动到达球的位置时间为(即机器人正在控球)效用函数的值为,而随着时间增加效用函数的值依次递减。我们仅比较同类角色的效用值任何函数都遵守这个约束。为此选择如下转换函数:,T(p,b)()T(p,b),e时间效用函数是对那些想获得控球权的角色的评估如前锋角色和后卫角色的机器人运动到球的时间评估效用值越短表示该角色正在控球或获控球的机会更大。角色的分配与转换上面对各类角色建立了相应效用函数为足球机器人进行角色分配提供了依据。角色分配的机理是根据效用函数大小安排每个足球机器人承担何种角色。由于全队足球机器人共用图像信息集中决策所以对每个足球机器人效用值的计算就方便得多。当控球状态改变时攻防态势将改变足球机器专业第页人的角色也将会改变。这时根据每个足球机器人的位姿和球的位置信息计算各个足球机器人在新策略中可能承担角色的效用值。这里只计算准备承担同一角色的足球机器人的效用值其它队员不计算。当对每个机器人的效用值计算完后对准备承担某一角色机器人的效用值进行比较根据比较的结果依次安排相应的角色角色分配的流程如图所示。初始化读如相关信息计算各机器人的效用值U对U值进行比较前前中后锋卫锋卫角角角角色色色色图角色分配流程图为了避免角色频繁发生分配引起系统震荡只有上面条件满足若干采样周期角色分配的改变才发生。同时机器人被安排一定角色后每个机器人必须运行一定的采样周期。原则上固定一机器人守门员其它两队员的角色分配由机器人与球的距专业第页离L和机器人运动方向与目标方向(朝向球)的夹角a来决定:现以我方在后半场向前半场(对方半场)进攻球在前半场区域我方以进攻为主的模式来说明角色分配转换原理:Y,Y)B(XbbA(X,Y)aaXC(X,Y)cc图角色分配转换图例设L为机器人A与球Ball的距离L为机器人C与球Ball的距离:,为机器人A的方向角与机器人A与球的夹角之差为机器人C的方向角与,机器人C与球的夹角之差:KK为可调参数,S,KLKS,KLK,()专业第页L,(X,X)(Y,Y)babaL,(X,X)(Y,Y)bcbcY,Yba其中,,,,arctan()aX,XbaY,Ybc,,,,arctan()cX,Xbc()β、β分别为系统给定的A、C的方向角根据式S、S的大小来确定A、acC机器人的角色角色分配转换原理如图所示:机器人A进攻机器人C协攻YS<SΔt视觉信息更新N机器人C进攻角色变换,机器人A协攻NY图角色转换原理如图机器人的路径规划与避障机器人足球比赛策略系统根据场上的实时情况作出防守或进攻的决定给不同的机器人分配相应任务(拦截对方进攻队员或射球进门等)。机专业第页器人要完成这些任务需要设计出一条最优路径及时地到达指定地点拦截或在最短时间内趁对方出现防守漏洞的时候把球踢进球门。机器人如何及时的无阻拦地从始发点到达目的地这就涉及到机器人的路径规划问题路径规划是整个机器人足球比赛系统中必不可少的核心部分之一和策略系统密不可分它的好坏直接影响到作战意图地实现关系到机器人足球比赛的胜负。本节在总结传统路径规划方法优缺点的基础上研究动态障碍物环境中智能体的路径规划问题。中垂线法中垂线法是较早在控制中大量使用的点位运动方式如图所示。分别作小球与期望方向连线BT小球与本方队员身上一点的连线两线交于小球作机器人与小球连线的中垂线交BT的延长线上一点目标点A令队员朝该点运动。在下一周期时重新规划上述三条线得出新的目标点A再在下一周期得到新目标点为A。以此类推下去目标点最终趋向于小球且保证当机器人碰到球的时候机器人朝向T点。专业第页图中垂线法这种方法的特点是算法简单而且算法可以保证机器人到达目标点并满足位置和方向的要求。在算法中主要是求解如某一线段的中垂线方程求两直线相交交点的方程组但这种方法使用的范围是有限的。当小车距位于球和对方球门之间的区域时不能直接用中垂线原理的方法而需在决策部分的相应算法来实现控制小车首先绕到球的另一面。为了满足决策的需要还需有其他的路径规划方法以及多种底层的运动函数使得控制函数的数目比较多后来的决策中使用了人工势场法代替了中垂线法。人工势场法人工势场法的基本思想是构造目标位姿引力场和障碍物周围斥力场共同作用的人工势场搜索势函数的下降方向来寻找无碰撞路径。将整个比赛场地虚拟成一个有力存在的场地把力分为引力和斥力根据比赛的进行场上队员会发生变化因而整个力场中各部分的受力情况也会发生变化因此决策系统就可以根据场上的这种变化去实时的控制足球机器人的运动情况。具体而言即首先建立斥力场和引力场如图所示。在足球机器人的周围分布着环状的虚拟力场各环用环带宽度和环的斥力系数来表示各个足球机器人之间表现为排斥力通过设置各环的参数可以调整队员周围的力场。这样做有两个目的:一是在双方机器人因为争球而发生碰撞时可以在一定程度上起到缓冲作用以减少对机器人本身机械结构专业第页的损坏二是在追逐争球时可以平滑的绕过对方球员达到实时避障夺得先机的效果。在人工势场辅助全局路径规划中把双方机器人和小球看成可自由移动Y的二维平面坐标来表示位置而力是有大小和方向的质点各质点用X的所以把力分解为X方向和Y方向。两质点间的斥力矢量表示为:y,yFCijx,x(,),,jcri()Fij,xy(,),,dijdijdij(,)(,)(,)其中为斥力常数d(i,j)为两质点间的距离C(i,j)为环带斥力常系Fcr数,()为本方质点的坐标x,y()为对方质点的坐标。x,yij某质点所受斥力之和为:()F,F(i,j),ri,j某质点所受引力为:x,xy,y,,tt()图人工势场法F,Fxytct,,dtdt()()其中为引力常数(对于目标)为己知点和目标点的距离为目Fd(t)x,ycttt标点的坐标。而某质点所受矢量和等于自身所受引力和斥力的总合即()F,FFtr最终所控制的本方队员只受由公式()得出的总和力的影响。通过调整经验值的大小可以很好的控制机器人小车的运动。F,F,C(i,j)crct人工势场法虽然较中垂线法有较大的适用范围但是却受到一定的制约其形成的路径无法在事先被观察到在复杂的多障碍环境中不合理的专业第页势场数学方程产生局部最小值使机器人未达到目标就停止运动。虚力场法进攻中要求机器人动作要快、准确特别是碰球的角度要适当。它假设所有的队员和球处在一个势力场内彼此之间有不同的引力和斥力关系。其合力就是队员的期望运动方向。图体现了这一思想。假设机器人在A点球在B点现要求使球向T方向运动对此可以虚构一个引力点a它处在的反向延长线上a对机器人有引力f球对机BT器人有斥力f两者有合力f,f的方向就是机器人期望运动方向。a对机器人的引力为:T,()f,k,M,M,(XX)ra其中为机器人和虚引力点a之间的静电常数为机器人的“质量”kMrT为虚引力点a的“质量”为机器人与点之间和方向的距离。MX,,,x,xa由于大小可调可以将、、合并为则式()可写为:kkMMKarT,()f,K(XX)同理球对机器人的斥力为:T,()f,K(XX)式()中各项参数的意义可参照式()其中为负KTX,x,x,x,x为机器人与球之间X和Y方向的距离。专业第页由以上两式最终得到合力f为:,,coscosf()图虚力场法f,,,,,sin,sin,,fxx其中,所以机器人的期望转向为:,,,arctan(),,arctan()xxfy(),,arctan()fx可以调用基本控制中的转向函数完成预定方向的转向。这样机器人就可以避开球绕到球的后面。适当沿BT移动点a的位置就能引导机器人最终以BT方向触球从而较精确的完成定向踢球的动作。虚力场法较之中垂线法适用范围更广而且在回防和进攻的衔接上更加流畅算法直观参数的物理意义很明显容易调整。虚力场法可以达到准确的要求而且适用性比较强。如果进一步设定场地边缘对机器人有斥力并设定机器人之间有斥力的话几乎可以适合任何情况但是这将使计算量成倍增加难以保证实时性而且这种方法还不易加入学习算法因为机器人的完成效果在多个周期后才能体现而每个周期的计算依据又不完全相同所以论文的研究工作中最终也没有选择虚力场法。栅格法栅格法是在静态路径规划中避障过程搜索最优路径的常见方法。将工作区划分成N*M个方格每个方格的面积比一个机器人所占的面积略大。用状态空间法表示机器人的信息对机器人的位置进行n个周期的预测将两个相邻周期的预测位置连成直线若直线与某方格接触则认为覆专业第页盖了该方格的以上面积对应的二维数组分量置其余数组分量置。优路径的搜索就是在空的方格内寻找连通路径如图所示。最图动态栅格法示意图动态栅格法在动态的未知环境下的机器人足球比赛中对障碍物先进行位置预测在一定时间T内可把障碍物看作是静态的用栅格法搜索最优路径。把静态栅格法结合预测算法后得到的方法称为动态栅格法在全局路径规划上能取得较好的策略性。虽然动态栅格法在搜索路径中具有全局性、策略表现力强的优点但动态栅格法是在动态过程中将某个时间段T内的片段看作静态状况而进行路径搜索。T的选取决定了搜索的效果是否良好:T取得太大则预测的空间很大容易导致搜索失败T取得太小则不能预测出机器人的可能位置搜索出的路径无效。专业第页惯性预测法惯性预测法的基本思想是根据摄像头捕获的机器人当前时刻的位置x,y和前一时刻的位置x′、y′经过计算机记忆算出来预测下一时刻的v,a,,方位。惯性预测公式如下:,,x,x(vtat)cos(),y,y(vtat)sin,其中x和y是机器人当前的坐标是机器人当前的速度是机器人v,当前的进球方向a是机器人当前的加速度t是时间周期。显然t越小其预测精度越高可t如果太小机器人就无惯性可言。适当调整t很重要。但无论t取何值由惯性预测法预测出的值的误差较大不能满足路径规划的要求。根据以上分析中垂线法、人工势场法、虚力场、栅格法、惯性预测法都不是很理想本系统更需要一种简单高效、适用性强的路径规划算法这就是下面要讨论的基于极限环的路径规划方法。基于极限环的路径规划方法极限环方法简介路径规划的任务是移动机器人在具有障碍物的环境中规划出一条从起始状态到目标状态的运动轨迹。Poincare提出的相平面法其实质是将系统的运动过程转化为相平面上一个点的移动通过研究这个点移动的轨专业第页迹就能获得系统运动规律的全部信息。机器人在各个时刻的运动状态可以由位移和速度两个变量描述。以位移为横坐标速度为纵坐标的直角x(t)x(t)坐标系构成相平面。在相平面中若存在这样的曲线孤立封闭且曲线附近的相轨迹都渐近地趋向这条封闭曲线或者从这条封闭曲线离开这种特殊的相轨迹即为极限环。极限环把相平面划分为内部平面和外部平面两部分。当t时如果起始于极限环内部或外部的相轨迹均卷向极限环那么这样的极限环处于稳定的状态如图所示。x(t)x(t)图内部和外部的相轨迹均卷向极限环同时在这里我们还要引入李雅普若夫函数:虚构一个能量函数若不显含,则记为。它是一个标量函数考虑到能量总大于零v(x,t)v(x)t故为正定函数设其能量衰减特性用表示。v(x),xxv(x)()若为正定负定则原点是渐近稳定的v(x)v(x)专业第页()若为正定正定则原点是不稳定的。v(x)v(x)当时其中在状态平面上分别对应半径为c,cc或cv(x),xx,c或c的圆那么这族圆表示等能量的轨迹。而非线性方程可看作是一个质点的运动方程质点在任一时刻的运动状态可由运动系统的相变量表示非线性系统的稳定性和运动的初始条件有关。让我们先来考虑一个二次非线性方程:x,xx(r,x,x)()x,,xx(r,x,x)(r为常数)求其平衡点x,,x,,,(,,),(,,),xxrxxxxxrxx将方程变化为,,,,(,,),,(,,),xxrxxxxxrxx,,可得则为方程的解。x,x,xx,因此原点是系统唯一的平衡点。将方程()代入中:v(x)v(x),xxxx,xxx(r,x,x),xxx(r,x,x)(),v(x)(r,v(x))当时由于正定所以正定。设根据李雅v(x),rv(x)v(x)v(x),c(,c,)普诺夫稳定性定理此时系统不稳定所有的轨迹朝向外侧运动当v(x),r时负定系统稳定所有的轨迹朝向内侧。v(x)在路径规划中的应用、极限环导航方法极限环导航方法是一种局部路径规划方法它是机器人采取的避免与障专业第页碍物相碰而不是远离它们的选择路径的方法。其实质就是机器人向目的地运动的同时能够以顺时针或是逆时针方向协调地绕过障碍物避免和它们发生碰撞。机器人无需自定位按照极限环二次非线性函数的特性连续实时的产生导航轨迹。、机器人转动方向机器人避免和障碍物相碰所采取的旋转方向分为顺时针和逆时针两种。它们代表了机器人与障碍物的位置关系。、相关障碍物定义四种障碍物分别是可变障碍物()干扰性障碍()非OOvd干扰性障碍物()和虚拟障碍物。On可变障碍物():其可变半径是满足机器人和障碍物避免碰撞的极Orvv限环的半径。它与机器人的位置和障碍物尺寸以及机器人的尺寸均相关。分别是机器人和障碍物的半径代表安全裕量。r,rr,,vro干扰性障碍物():如果可变性障碍物在机器人和目标点的连线之间Od就成为干扰性障碍物按照离机器人的远近依次命名。非干扰性障碍物():如果可变性障碍物不在机器人和目标点的连线On之间就成为非干扰性障碍物其命名方式同上。虚拟障碍物:在规划机器人朝向目标点的时候往往通过在目标点的左右两侧虚拟两个障碍物满足向所要求的方向运动。当障碍物为干扰性障碍物时是障碍物的真实半径为非干扰性障r,r,r碍物或虚拟障碍物时r,专业第页、切点定义:即圆的可变半径和切线垂直交叉点机器人沿极限环和目标点之间的切线方向运动实现路径最优。实现过程)连接机器人和目标点作直线L,axbyc,)区分可变障碍物中的干扰性障碍物和非干扰性障碍物OOdn)如果没有机器人可直接运动到目标点Od)时针转向的判定方法:设障碍物的中心点坐标为将代入直(Q,Q)(Q,Q)xyxy线L中如果,即障碍物在目标点和机器人连线上方那么按顺axbyc,时针方向运动反之,即障碍物在直线L的下方按逆时针方向axbyc,运动。)根据判定方法确定时针方向则系统方程()可表示为:x,(,y)x(r,x,y)v()y,(,x)y(r,x,y)v这里的xy是相对于障碍物的坐标值正负号的选择对应机器人避障的时针方向。顺时针时方程第一个系数取上侧的符号逆时针时方程第一个系数取下侧的符号。)经过避障到达目标解决局部极小值问题极限环一个突出的优势在于它可以克服局部极值的问题。当两个障碍物相互之间存在交迭部分时如果采用常规的极限环方法会陷入局部极小值专业第页如图所示。因此这个时候需要调整一下坐标用所有障碍物中心坐标的均值来生成新的再利用时针转向的判定方法进行避障。(Q,Q)xyTargetRobotObstacle图两个障碍物交迭产生局部最小值实验结果为了验证极限环方法避障的有效性我们选择了足球机器人比赛平台进行测试。进攻我方机器人号需要绕过对方障碍机器人、号到达目标点小球将小球踢入对方球门按照极限环方法将机器人和目标点连线如图所示。专业第页图直线L连接机器人和目标点在连线间存在两个干扰性障碍物另外是一个对方的机器人号为非干扰性障碍物。机器人将逆时针方向绕过障碍物到达目标点示意图见图。图极限环避障最后机器人能快速到达目标点小球位置如图。专业第页图到达目标点位置实验表明在有众多障碍物的环境下采用本文提出的基于极限环的RoboCup路径规划算法根据极限环可以调整半径和避障方向的特性实现了实时避障和向目标点运动的目的。小结在本章中讨论足球机器人的高层控制策略系统的研究设计。根据六步推理模型为基础以简单实用的区域控制系统产生的足球机器人的决策系统为背景从而实现高层控制策略。在机器人路径规划过程中我们在传统路径规划方法的思想上结合极限环的路径规划算法从而使机器人能跳出局部极值点找到一条从起始位置避开障碍到达目标位置的最优可行路径。专业第页第章足球机器人的仿真系统引言各参赛队在构造硬件环境时往往先开发比赛的仿真系统用系统仿真的方法作为研究决策系统主要方法。而且系统仿真具有快捷、经济、易实施等优点因此RoboCup仿真组比赛是各种比赛中参赛队数目最多的一种。仿真环境与人类足球比赛的环境相似比赛队员的仿真模型与实际队员也很接近实现了机器人比赛中由于机器人硬件的不足而放弃的规则。SocccerServer是编写Client及整个仿真程序的基础因此我们对最有理论意义的仿真比赛环境及SoccerServer的结构和运行机制进行了详细研究并在此基础上尝试用VC语言编写自己的仿真程序代码。仿真比赛环境RoboCup仿真比赛是在一个标准的计算机环境内进行的比赛采用ClientServer方式由RoboCup联合会提供标准的SoccerServer系统参赛队编写各自的Client程序进行比赛同时运行与比赛球员数目相等的Client,一个球员就是一个Agent。SoccerServer允许Client使用任何程序语言进行编写但Client之间不允许直接进行通信而必须经过SoccerServer来进行。Server和Client之间的通信是通过UDPIP协议进行的仿真周期为毫秒每个仿真周期Server都会从全部Client读取下个周期队员要执行的命令。SoccerServer下的虚拟比赛场地如图专业第页所示:图仿真比赛环境RoboCup仿真组的设计难点包括:专业第页、动态实时系统:每个周期内都要完成计算并把要执行的命令发送给SoccerServer。、环境干扰:每个Agent不能准确地感知环境同时不能精确地改变环境。、合作与协调:全部Agent具有一个共同的目标需要使用有效的方法进行Agent之间的合作。同时解决局部目标与全局目标个体目标与集体目标之间冲突的问题。、多智能体学习:学习的好坏对最终的效果影响巨大。、主体与团队建模:应该有个好的整体模型这是完成Client的基础。、受限的通讯宽带:在一个仿真周期内只有有限的消息得到传递。、复杂的状态空间:由于足球比赛本身的复杂性导致状态空间极其庞大和复杂。仿真比赛运行机制SoccerServer的结构RoboCup仿真组所使用的SoccerServer系统结构如下图所示:SoccerServer队员队员消息板队员队员裁判专业…………球场仿真第页图SoccerServer结构图SoccerServer提供了一个很好的多智能体实时环境。智能体(称为队员)将动作命令发送给ServerServer实现队员的动作并把信息传送给队员。同时Server也兼有裁判的任务用来规范机器人足球的规则和改变场上状态如球出界、进球得分、比赛结束等等。每个Client程序只允许控制一名队员所以每队必须同时运行与比赛球员数目相等的Client。Client之间的通讯必须通过Server来进行(消息板)。另外Server还带了一个显示工具可以把球场显示在屏幕上供人观看。为了与人类足球相符队员的感知和行动是异步的。这与大部分人工智能系统的感知和行动同步进行的模式是不一样的。如图所示Server提供了分离行动模型。中间的粗线表示Server的时间上面和下面分别是两个不同队员的时间从Server到Client的虚线箭头表示Server传给队员的感知信息从Client到Server的箭头是队员发给Server的行动命令。专业第页ClientCyclettttServerClient图Server的分离行动模型从图中可以看出Server并不立即执行每个队员的行动而是到一个周期结束时才一起执行他们的行动。如果一个队员在一个周期内发送了多个行动Server随机选择一个来实现(如t周期的队员)如果队员没有发送行动命令(如t周期的队员)就象真实的足球运动员在发呆一样对手就会有很好的进攻机会。从图中也可以看出感知信息也是异步的。Server向队员发送的感知信息有三种:视觉信息、听觉信息和自身信息。由于每个队员都有一定的视野范围视觉信息都是局部信息只包括可视范围内对象的相对位置、相对速度等听觉信息中除了包括一定区域内队员的说话外还有裁判的命令这对所有球员来说都是可以听到的。自身信息包括体力、速度等。Server发来的信息都是相对于自己位置的相对数据队员为了很好的判断自己及其他队员的绝对位置在场上设置了很多的标志通过这些标志及边线和球门可以判断自己的绝对数据。专业第页监视器MonitorMonitor是一个可视化的工具允许人们观看Server的比赛过程。在monitor上显示的信息包括比分球队名字所有球员和足球的位置。Monitor也提供了一个Server接口。如:当两支球队都连接上后点击monitor上的“KickOff”按钮开始比赛。如有必要可以同时和server连上多个monitor(可在不同终端显示同一场比赛)。仿真体系结构仿真足球机器人比赛系统是一个具有实时动态及通信带宽受限、多智能体之间进行合作与对抗等特性的复杂系统为了使一个队伍能够适应这样的环境在设计结构的最初就要把各种因素考虑进来特别是团队合作在最初的结构就应该体现出来。我们设计的体系结构从总体上说主要包括三部分内容:服务器接口、场上状态和决策如图。RoboCupSoccerServer感知信息行动命令服务器接口决策场上状态专业第页图仿真体系结构图服务器接口服务器接口是服务器和自主体之间交互的桥梁。一方面它收到来自Server传来的信息并加以解释转化为场上状态能够识别的信息结构。另一方面它收到决策系统发出的基本动作命令把它翻译成服务器能读懂的形式并发送到服务器。由于信息收发和行为不同步使用行动分离的感知行动模型另外Server发送信息也不连续服务器接口使用独立的线程当视觉、听觉或者感知的信息到达时马上触发该线程进行信息解释。场上状态场上状态接受从信息解释得来的最新情况使状态得到更新以此作为行动决策的基础。因为有视野范围及视力远近的限制所看到的信息只能是部分信息例如执行转身动作后原来看到的物体在身后就看不到了。因为Server提供的队员之间的通信是单通道和低带宽的一个不可靠的通信机制队员间的通信只能作为辅助手段而不能将合作机制建立在完全依赖于通信的基础上。这些就要求我们能够在信息不完整时对某些信息进行估计使信息完整。为了很好的仿真人类足球比赛Server传送给队员的视觉信息都是相对数据。而对于决策来说更多的是使用绝对数据在更新估计时就要先确专业第页定自己信息的绝对数据如位置、速度等。下面是更新数据的先后顺序:()更新自己的信息:当最新信息中有场上标志的相对位置和相对速度时因为这些标志是固定位置的可以非常精确的得到自己的信息当最新信息中没有可以判定的标志时就要根据以前自己的信息进行估计这时的决策最要紧的就是知道自己的位置。()更新球的信息。()更新看到的队友和对手的信息。()估计没有看到的队友和对手的信息。决策决策可以说是整个结构的核心。信息的更新预测要能够适应多智能体系统的实时动态特性决策则要使队员能很好的合作和对抗。我们引入了以下一些团队合作的内容:角色、阵型和特殊情况合作。角色:每一个或一组队员担负不同的任务如前锋、中场、后卫等。随场上形势的变化角色是可以转换的。阵型:角色的不同组合方式就成了不同的阵型不同的阵型就有着不同的进攻防守方式。特殊情况合作:对于一些特殊情况可预先安排好全队或几个队员之间的合作如点球时安排几个队员到不同位置来实现快速射门等。角色和阵型的转换都要用到通信因为通信的不可靠全场达到统一可能会需要很长的时间考虑到这些转换不多所以我们使用通信进行转换。专业第页而对于以下的几个决策阶段我们要使每个队员尽量用相同的决策方式得出相同的决策结果这样可以不依赖于通信而进行很好的合作。从得到最新的场上状态到发出动作命令我们设计的队伍共进行三个层次的决策:战略决策、战术决策和技术实现决策如图所示。战略决策预置角色、阵型、特殊情况特殊场情上战术决策况状合态作协个人技术议个人技术实现决策基本命令服务器接口图三层决策图、战略决策战略层是在决策系统模块中的最高层。在这层中智能体决定自己是哪一角色所处的阵形判断出自己处于哪个模式是进攻还是防守要执行什么任务或配合完成什么合作明确当前要达到的战略目标。战略决策是三层决策中最高层的决策也正因为它的决策高度它所考虑的信息是非常多也是非常复杂的目前主要是根据人类足球比赛的常规策略来设计。专业第页、战术决策当战略层确定了所处的行为模式后战术层来具体贯彻执行。通过一些细节分析后本层制订出为了完成这一特定的目标所应该采取的行为策略。包括跑位、造越位、抢球、拦截、带球、传球、射门和盯人等等。、个人技术决策个人技术决策是决策系统的最低层用以实现智能体的个人技能(如传球、带球等)。在每个周期最终都是由这一层发出本周期所要执行的基本动作命令。仿真球队体系的建立客户程序的体系结构根据多智能体的结构模型结合RoboCup仿真比赛系统的特点论文确定了足球机器人客户程序的体系结构是分层混合式结构形式。它分为协作层、规划层、控制层三层。如下图所示:多智能体通信模块协作模型协作模块协作层规划、推理模块自身模型(个体)规划层控制模块对象模型知识库专业控制层对象第页图程序体系结构各个模块功能说明如下:()控制模块功能:包括感知、反应、控制处理、任务执行等功能。感知功能包括感知环境、采集信息、信息预处理等。在客户程序中有如下的函数模块来实现:voidParseSight(Timetime,char*SightInfo)视觉信息分析与处理voidParseSense(Timetimechar*SenseInfo)感觉信息分析与处理voidParseSound(Timetimechar*SoundInfo)听觉信息分析与处理voidParseRefereeSound(char*RefereeSound)裁判员信息分析与处理反应功能是指发出动作执行的指令。指令的发出可以是由本层根据感知信息作出的实时反应也可以是同上层交互后通过承诺和规划而由控制层发出的动作。客户程序中有如下的程序模块:voidturn(AngleDegang)转身控制专业第页voiddash(floatpower)奔跑控制踢球控制voidkick(floatpower,AngleDegdir)voidgoaliecatch(AngleDegdir)守门员抓球球员移动voidmove(floatx,floaty)voidchangeview(VqualqualVwidthwidth)改变视觉模式voidturnneck(AngleDegang)改变视觉方向voidsendaction()发送控制命令()规划模块功能:它包括同控制层的信息交换获得控制层的信念和任务发送任务到控制模块。客户程序中规划模块由如下数据结构定义:classCoPlan,public:PanTypetype规划类型Timetime规划时间intstep规划步长Vectortarget规划目标Unumtargetteammate,目标队员typedefenumPLANTYPE,PlnNonePlnGoPoint跑位PlnDirectShoot,射门PlnOneTwo过配合Plnshareinfo,:信息共享()协作模块功能:包括对其他客户程序发送信息接受其他客户程序的信息这些信息包括仁面提到的共同规划信息等:接收下层请求。客户专业第页程序中有下面两个协作模块函数:ActionQueueResCooperativeSetting()ActionQueueResCooperativeAction()()通信模块的功能:通信模块主要作用是承担各个客户程序之间的通信任务。客户程序的数据结构在程序设计中常说:程序,数据结构十算法可见数据结构的重要性。根据RoboCup仿真比赛系统的特点为了描述场上的信息和一些需要处理的数据根据面向对象设计的思想以及上面所提出的客户程序的分层体系结构模型我们设计出客户程序的一些数据结构和文件结构。客户源程序的主要内容是以类为核心来实现的应具有非常好的结构。在论文的客户程序的数据描述的类中主要有Object和Information两大类分别用来处理物体和信息每个类的继承关系和类的具体作用如图。一、对象目标类(Object)StationaryObjectObjectBallObjectPlayerObjectMobileObject图对象目标类(Object)的关系Object类是最底层的类它定义各种物体通用的变量主要有物体类型、物体的位置(包括相对的和绝对的)及位置变化、得到物体位置的时间和可专业第页信程度等。该类提供的函数都是对以上参数的赋值和更新。StationaryObject类指的是一些静态的物体如球门、边线和服务器为球场设置的大量标志等。静态物体需要的变量在Object类中都已经定义在此只用一个变量来表识是那一个静态物体。该类提供的函数一是初始化为各个变量赋值二是从静态物体的变量中得出自己的位置、角度等。MobileObject类指的是运动的物体包括球和队员。该类定义了动态物体通用变量主要是速度(绝对的和相对的)。该类提供的函数主要有初始化、对变量赋值和更新、预测动态物体的将来状态等。Babject类定义了球必须有的一些变量如对过去踢球的记录(包括时间和踢后的速度)、最近看到球的时间和速度、和踢球有关的一些参数等。该类提供的函数主要是初始化、更新状态。PlayerObject类指的是双方队员定义的变量有方向和编号、该球员朝向和距离、得到以上变量的时间和可信度。提供的函数主要是对以上变量的初始化、赋值、更新。二、状态信息类(Information)状态信息类的继承关系我们可以用如图表示:OptionInfoPlayerInfoPositionInfoFormationInfoModelingInfoCommunicationInfMemoryActionInfoo图状态信息类的关系专业第页OptionInfo是最底层的类它定义的变量主要分为四类:以VP开头的版本参数做程序的调试用:以IP开头的初始化参数以CP开头定义的供Client运行时使用的各种参数以SP开头的serverconf中提供的各种参数以FP开头的和阵型有关的各种参数等。该类提供两个函数OptionInfo()对以上每个参数赋初值GetOptions(intargc,char**argv)从**argv中得到参数文件名并从文件中取得参数值。PlayerInfo类定义的变量主要有:Socket端口与信息存储文件有关的参数与计时有关的参数与场上状态和得分有关的参数与命令有关的参数自己的位置、速度、体力等的参数:(sensebody)得到的参数等。在这些参数中都保存最近两次的内容当前的和上一次的。该类提供的函数主要对以上参数赋值和更新评价自己的动作预测下一周期自己的状态等。PositionInfo类定义的变量主要有各个区域的设置(禁区、罚球区等)、能看到的标志、BallObject的实例、StationaryObject和PlayerObject实例的指针等其中PlayerObject的实例包括队友和对手共个实例自己的相关信息都己在上面的Playerlnfo中定义。ActionInfo主要提供了大量用来判断自己高层动作的函数例如截球、传球、射门、跑位、带球等等。除了上述的两大主要的数据类以外我们还根据描述需要定义其他一些重要的数据类如Vector、Line、Rectangle、Time、Command等等在此不再一一说明。专业第页球员基本战术动作论文中源程序的基本战术动作命令主要包括如下函数:Block()拦截对方控球队员Interception()断球Mark()盯防对方可能造成威胁的无球队员AssistDefense()辅助本方其他球员进行防守BasePoint()跑向个人球员的基本位置AssistAttack()协助本方控球队员跑位协助进攻Driblling()带球Defense()防守Pass()传球Goalkeep()守门这些行为都只是单个球员的行为全队的整体攻防由单个球员的行为构成根据仿真比赛要求设计基本战术动作决策树如图所示:playerBalllostKnowpositionandknowballLostpositionFaceballdefenseoffenseBasePointActiveAuxiliaGoalkeepHandballWithoutballryBlockInterceptimarkAssistAttackDribblepasskickon专业第页图基本战术动作决策树仿真程序策略流程论文仿真程序的开发不仅包括了机器人的行为规则还要考虑策略流程我们设计的比赛策略流程如下图简单表示:开始连接服务器并初始化启动其它并行模块比赛模式判断未发球状态已发球状态阵型调整全局策略选择角色分配攻防判断攻击防守主防守协主攻助门防攻门射跑拦盯跑传带门位截人位球球其他协调处理专业第页图比赛策略流程图仿真比赛实验在仿真系统框架和策略模块搭建好之后就形成了一个完整的RoboCup仿真系统接下来就可以开展仿真比赛的实验工作了。服务器与客户程序的连接默认情况下服务器与客户程序用UDPIP协议进行连接默认的端口号为。UDP(UserdataProtocol)协议是定义用来在互联网络环境中提供包交换的计算机通信的协议。此协议默认网路协议(IP)是其下层协议。此协议提供了向另一用户程序发送信息的最简便的协议机制。如果应用程序要求更可靠的数据传送则应该使用传输控制协议(TCP)。比赛开始前双方的客户程序都必须连接到同一个服务器上才能进行下一步的比赛。为了进行可靠的连接双方先进行一个握手信号指令的过程。首先客户程序必须向服务器发送如下格式的字符串:(initTeamName,(versionVerNum),,{goalie},)其中方括号的参数为可选项。如果是守门员则goalie是必须的参数否则服务器不允许该队员执行抓球等守门员动作。一个队可以没有守门员专业第页但是最多只能有一个守门员。服务器收到上述的初始化命令后会返回如下格式的握手应答信号:(initSideUniformNumberPlayMode)Side是队伍的场地位置只有一个字符:l(左方)或者r(右方)。UniformNumber是球员的编号(从到),这是球员的唯一的标识。PlayMode是表明当前比赛模式的一串字符串。如果此过程有错误(比如初始化的队伍多于二个、初始化的队员多于个、多于一个守门员等)服务器会产生一条错误信息:(errornomorethanteamorplayerorgoalie)这样客户程序发送初始化信号和接受到服务器的返回确认信号后双方的握手便完成了。如果客户程序要终止与服务器的连接可以向服务器发送(bye)指令。RoboCup的仿真比赛过程RoboCup的仿真比赛过程如下:两队的全部客户程序通过init命令与服务器一一连接当全部客户程序都准备好时比赛裁判(commissary)用鼠标点取服务器的kickoff按钮上半场比赛开始上半场比赛为分钟。当上半场比赛结束时服务器暂停比赛中场休息为分钟。在此期间竞赛者可以修改客户程序在下半场比赛开始之前每个客户程序需要使用reconnect命令与服专业第页务器重新进行连接off按钮当全部客户程序准备就绪时裁判(commissary)点取kick开始下半场比赛:下半场结束时服务器自动停止比赛如果比赛结果为平局加时赛开始。加时赛采用金球法即任一方球队进球比赛立即结束进球方获胜。RoboCup的仿真比赛实现根据RoboCup的比赛要求我们编写了仿真程序代码并在仿真比赛平台上初步实现了以下几种比赛形式:、对(一方进攻一方防守)如图。图对模式、对传球配合进攻如图。专业第页图对传球配合进攻模式、对全场比赛如图。图对全场比赛从仿真系统运行情况来看仿真程序能很好的进行各种比赛模式。专业第页小结在第五章中我们研究了足球机器人仿真比赛系统。对仿真比赛环境及SoccerServer的结构和运行机制进行了详细研究搭建了仿真研究平台在此基础上我们仿真比赛的客户程序对仿真比赛中的高级攻防战术进行了研究利用足球机器人仿真比赛平台初步实现了对的仿真比赛形式。专

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +1积分

资料评分:

/89
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部

举报
资料