大连市仿真机器人足球竞赛平台手册.doc_第1页
大连市仿真机器人足球竞赛平台手册.doc_第2页
大连市仿真机器人足球竞赛平台手册.doc_第3页
大连市仿真机器人足球竞赛平台手册.doc_第4页
大连市仿真机器人足球竞赛平台手册.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大连市仿真机器人足球竞赛平台手册V3.0平台操作说明1 启动Server 打开DUTSoccerServer,单击菜单Start 。2 启动Clientl 打开DUTSoccerClent1,输入DUTSoccerServer所在机器的IP,如果在同一台机器上,输入127.0.0.1即可。l 端口号Port用默认的即可。l 单击按钮 Select you team dll! ,选择球队动态链接库文件(如文件 ./球队/范例球队.dll)。l 单击带有连接按钮(带有闪电图标的按钮)。用相同的方法启动DUTSoccerClent2,连接第二个球队。3 开始比赛。待两个球队都连好后,单击DUTSoccerServer上的菜单KickOff,比赛开始。3 结束比赛。比赛正常结束,两个客户端会关闭与Server的网络连接。如若在比赛结束前强行关闭Server,需关闭客户端的提示窗口(The match was terminate exceptionally),如若继续比赛,重新打开Server可执行文件,客户端不用重新打开。规则说明l 比赛简介:大连市仿真机器人足球竞赛是面向大连市所有本科生、研究生的计算机程序类竞赛。参赛选手编制AI程序分别控制五名球员,在一定大小的场地上进行虚拟足球比赛,以规定时间内的累积得分来判断胜负。l 升级说明: 为比赛水平不断接近国际比赛标准,在V3.0版本中,球员运动规则基本采用国际比赛标准。且仍然采用集中控制的形式,保证了比赛易上手的特点,且对参加更高级比赛提供了更好的指导性。l 场地说明:1. 无论左侧的球队或右侧的球队,场地的左上角均为其坐标原点,坐标系如图所示。先连接Server的为左队,后连接的为右队。编写球队时,要使自己的球队为左队或右队均可正常比赛。2. 场地的坐标信息,单位为米。const double CDOORWIDTH = 4.0; / 球门一侧长度是4.0,实际长度是2 * 4.0const double CPNZWIDTH = 20.0; / 大禁区的宽度const double CHALFPNZWIDTH = 10.0; / 大禁区的半宽度const double CPNZLEN = 8.0; / 大禁区的长度const double CSPNZWIDTH = 12.24; / 小禁区的宽度const double CHALFSPNZWIDTH = 6.12; / 小禁区的半宽度const double CSPNZLEN = 5.2; / 小禁区的长度const double CFLDWIDTH = 34.0; / 场地宽度const double CHALFFLDWIDTH = 17.0; / 一半场地宽度const double CFLDLEN = 52.0; / 场地长度const double CHALFFLDLEN = 26.0; / 一半场地长度const double CDOORY1 = CHALFFLDWIDTH - CDOORWIDTH; / 上门柱const double CDOORY2 = CHALFFLDWIDTH + CDOORWIDTH; / 下门柱l 模型1. 运动模型每一个仿真步长内, 每一个物体的运动按如下公式计算:这里,和 分别为物体在时刻的位置和速度。是一个用和指定的衰减参数。是物体的加速度, 它源自(由)于dash中的Power参数(当物体是球员), 或kick命令(当是球的时候), 遵从下面的公式:(axt, ayt) = Power * power_rate * (cos(t), sin(t)t是物体在timestep t上的方向, 并power_rate是dash_power_rate或从kick_power_rate计算. 当为球员的时候, 它就是球员面向的方向. 当为球的时候, 它的方向按下述公式给出:tball =tkicker + Directiontball 和tkicker分别是球和踢球者的方向, Direction是kick命令的第二个参数.2. 运动噪声模型为了反映真实世界的物体的意外运动, 往运动物体和指令的参数中增加了噪声. 有关运动的噪声在方程4.18中被加入:(ut+1x; ut+1y) = (vtx ; vty ) + (atx; aty) + (rrmax; rrmax)这里, rmax是在-rmax, rmax上, 具有统一属性的随机数字. rmax是依据物体速度量的参数, 公式如下:rmax = rand * |(vtx , vty )|这里, rand是由play_rand和ball_rand给出的参数.噪声也象下面那样被加入一个指令的Power和Moment参数:argument = (1 + rrand) * argument试验平台中关闭了运动噪声,而将平台设置中视觉噪声去掉的话就是一个理想模型3. 碰撞模型如果在一个仿真周期结束的时候, 两个物体重叠, 那么它们被移动回来, 直到不重叠. 那么速度的大小将变为原来的0.1倍,且方向取相反方向。 注意, 这是可能的: 一个球穿过一个球员, 只要球和球员在仿真周期末尾决不重叠。发生碰撞后,将被如下显示出:球员间碰撞球员与球碰撞4. 球员跑动模型(Dash model)与体力模型(Stamina model)l 跑动模型(Dash model)用在球员向自己所对方向加速的命令,把加速的力量作为一个参数。加速力量的有效范围在和之间。每个球员执行命令都会消耗一定数量的体力。每场比赛的开始,每个球员的体力被设为。如果球员加速向前奔跑(power0),体力将会减少power。如果球员向后加速奔跑(power 0.0 ) ? dPower : -2 * dPower ; if( m_dStamina 0 ) m_dStamina = 0; / stamina below recovery threshold, lower recovery if( m_dStamina CRECOVERMIN) m_dRecovery -= CRECOVERDEC; / stamina below effort decrease threshold, lower effort if( m_dStamina CEFFORTMIN ) m_dEffort -= CEFFORTDEC; / stamina higher than effort incr threshold, raise effort and check maximum if( m_dStamina = CEFFORTINCTHR * CSTAMINAMAX & m_dEffort 1.0 ) m_dEffort = 1.0; / increase stamina with (new) recovery value and check for maximum m_dStamina += m_dRecovery*CSTAMINAINCMAX; if ( m_dStamina CSTAMINAMAX ) m_dStamina = CSTAMINAMAX;5. 踢球模型(Kick model)踢球命令含有两个参数:踢球球员想要踢球的力量(在minpower和maxpower之间),踢球的角度。角是以度的形式给出,并且在minmoment和maxmoment之间。一旦踢球命令到达server,如果球在踢球球员的可踢范围内,那么踢球命令将被执行。假如踢球球员和球之间的距离在0和kick_able_margen之间,对于球员球是可以踢到的。为了计算区域内的距离,我们必须知道球员和球之间的距离,我们计算出人和球外表之间的最近距离。那么,它们之间的距离就是两个物体中心距离减去球的半径再减去球员的半径。对于踢球首先要计算的就是踢球的有效力度(ep):ep kick powerkick_power_rate;如果球不是在球员的正前方,踢球的有效力度将会减少一定的数量,而这个减少的数量取决于球与球员之间的相对距离。如果球相对于球员的相对角度为零,例如,球在球员的正前方,踢球的有效力度将保持不变。相对角度相差越大,踢球的有效力度就减少的越多。最差的情况就是球在球员的后面(角度为180):有效力度将减少25。第二个影响踢球的有效力度就是球与球员之间的相对距离这个参数:明显地,球员能够踢到球的距离在0到kickable_margin之间。如果距离为零,那么踢球有效力度不会将少。球离球员的距离越远,踢球有效力度减少的就越多。如果两者之间的距离到达最大kickable_margin,那么踢球的有效力度将减少原来的25。综上可见最差的踢球情况就是球员离球最远而且还背对着球,这样只有50的踢球力量能用。对于有效踢球力度我们可以用下面公式来表示。(dir_diff表示球和球员之间的角度差,dist_ball表示球和球员间的距离差。0=dir_diff=180 , 0=dist_diff=kickable_margin)有效踢球力度用在计算加速度ni,在每个周期n这个加速度矢量将加上球的全局加速度n 。(注意,如果存在多个队员在同一个周期可以踢球,他们踢球的力量为矢量叠加)。在从周期n到周期n1的过渡中,加速度n被应用于:1n被限制在最大值baccel_max以内,现在最大加速度的值就等于有效踢球力度的最大值。2当前球的速度n要加上 n,n的值被限制在最大值ball_speed_max。3噪声也要被加到n上去。噪声矢量的方向和长度应在-|n |*ball_rand|n |*ball_rand。4球的新坐标位置n+1是其旧的坐标n加上速度矢量n 。(例如:对于球来说两个周期最大的距离差是ball_speed_max)。5ball_decay是用在球上的:n1 nball_decay。加速度n+1被设为零。踢球成功如5号员显示,踢球失败如3号队员显示参数如下:const double CMAXBALLV = 2.7; / 球最大速度const double CMAXBALLACC = 2.7; / 球最大加速度const double CBALLDECAY = 0.94; / 球速衰减系数const double CBALLSIZE = 0.085; / 球的尺寸const double CBALLRAND = 0.05; / 球的运动噪声系数从踢球模型和当前的参数设定来看,仍旧可以利用许多小的踢球动作来实现配合踢球。例如,先停球,然后踢到一个可踢范围内的更加有利的位置,然后再踢到预计的位置。另一种可能就是也可以用一个配合将球加速到最大而不停球。6. 转身模型(Turn model)当球员用dash朝自己身体方向加速时,turn用来改变球员自身的方向。Turn的参量是力矩,有效值在minmoment 和 maxmoment之间。如果球员不移动,力矩就等于球员转动的角度。然而,当移动时,会有转动惯量去抑制转动。特别的,实际球员所转过的角度如下:actual_angle = moment/(1.0+inertia_moment*player_speed) inertia_moment是一个参数,默认值5.0。因此,当球员的速度是1.0时,他所能转的有效角度大小为30,方向可以是顺时针或逆时针。然而,在同一个周期内,由于不能再执行dash和turn命令,所以在执行turn时球员最快速度只能是player_speed_maxplayer_decay,这就意味着对于一个默认的球员他的默认转动角度只有60。参数如下:const double CINERTIAMOMENT= 5.0; / 转身惯性参数const double CMAXMOMENT = 180.0; / 命令最大转身角度const double CMINMOMENT = -180.0; / 命令最小转身角度7. 守门员扑球模型(Catch model)各队1号队员为守门员,守门员在自己的大禁区内有扑球的能力。当球处于守门员正向夹角catch_max_moment和catch_min_moment之间,且球距离守门员的距离在catch_able_margin内,即可扑球(成功率为catch_probability)。每守门员连续扑球不能超过max_catch_time(只要球不出大禁区均算连续扑球),且两次扑球的时间间隔不得少于catch_ban_cycle。扑球后球速将被设为零,守门员将移动到可控球的范围内。且一切在己方大禁区内的对方球员均将被移出大禁区。参数如下:const double CCATCHABLEMARGIN = 1.5; / 守门员的扑球范围const double CCATCHMAXMOMENT = 90; / 守门员扑球的最大夹角const double CCATCHMINMOMENT = -90; / 守门员扑球的最小夹角const double CCATCHPROBABILITY = 1.0; / 守门员扑球成功率const int CCATCHBANCYCLE = 5; / 两次扑球间隔时间const int CMAXCATCHTIME = 2; / 最多连续扑球次数l 命令结构struct TCommand CommandTypeT CommandType; /命令种类:Stay,Turn,Kick,Dash,Catch double ComParam0; /命令参数0 double ComParam1; /命令参数1;其中:Stay : 无参数 Turn : ComParam0 : angTurnKick : ComParam0 : angKick ComParam1 : powerDash : ComParam0 : powerCatch: 无参数l 信息结构1. 球的信息typedef struct Vector pos; / 坐标Vector vel; / 速度bool bCarsh; / 是否发生碰撞 BallState;2. 我方队员信息typedef struct Vector pos; / 坐标Vector vel;/ 速度double d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论