收藏 分销(赏)

RoboCup-仿真-2D.ppt

上传人:w****g 文档编号:2091882 上传时间:2024-05-15 格式:PPT 页数:84 大小:805KB
下载 相关 举报
RoboCup-仿真-2D.ppt_第1页
第1页 / 共84页
RoboCup-仿真-2D.ppt_第2页
第2页 / 共84页
RoboCup-仿真-2D.ppt_第3页
第3页 / 共84页
RoboCup-仿真-2D.ppt_第4页
第4页 / 共84页
RoboCup-仿真-2D.ppt_第5页
第5页 / 共84页
点击查看更多>>
资源描述

1、2010合工大Robocup机器人足球仿真2D技术培训 高明高明合肥工业大学合肥工业大学2010.42010.4综述规规则则仿真平台Linux剧场管剧场管理员理员演员和剧演员和剧组组所有演所有演员演出员演出的直播的直播和录播和录播出场出场顺序,顺序,临近临近出场出场前后前后情况情况申请申请演出,演出,节目节目内容,内容,人数人数Server整体世界模型整体世界模型Client个人世界模型个人世界模型WorldModel世界模型的更新通过Monitor来显示出来Server和Client的沟通UDP/IP 通信(通信(11个进程)个进程)相关链接n n工大机器人主页:n n工大2D资料站: n新

2、开始下载集锦: n科大2D资料站:wrighteagle.org/2d/n n相关软件更新:仿真2D的基本开发技术感谢各位老师和同学n n谢谢致 谢Monitor-标准仿真2D球场返回Server简介n nSoccer server Soccer server 是一个系统(程序)。它可以是一个系统(程序)。它可以使使AgentAgent进行足球对抗比赛。这些进行足球对抗比赛。这些AgentAgent使用使用不同程序语言进行设计。不同程序语言进行设计。nClient/server,所以对球队的开发编译没有任何限制。n唯一要求就是:球队的开发工具提供通过UDP/IP连接的client/server

3、支持。这是因为server和每个client之间的通讯都是通过UDP/IP端口实现的。每个client都是独立的进程,通过给定的端口和server连接。n一支球队可以有最多11个client(或者说是球员)。serverClient(Daj375jha2h4f2if)(acdefghijklmnopq)决策请求决策请求请求信息反请求信息反馈馈Server根据请求根据请求Client根据信息反馈根据信息反馈各自更新世界模型各自更新世界模型两者关心的仅仅是通过通讯从两者关心的仅仅是通过通讯从对方获取的对方获取的符合一定协议的字符串符合一定协议的字符串Server简介n n当球员和当球员和serve

4、rserver连接上后,所有的信息都通过这连接上后,所有的信息都通过这个端口传递。球员发送他们下一步要做的动作请个端口传递。球员发送他们下一步要做的动作请求给求给serverserver(如踢球如踢球kickkick,转身转身turnturn,dashdash等)。等)。n nServerServer接收到这些消息后,执行请求,并相应的接收到这些消息后,执行请求,并相应的更新环境。更新环境。n n另外,另外,serverserver向所有的球员提供感知向所有的球员提供感知sensorysensory信息信息(如:关于足球,球门和其他球员的位置可视信(如:关于足球,球门和其他球员的位置可视信息)

5、。球员用于更新自身世界模型。息)。球员用于更新自身世界模型。Server简介n nserver是以离散的时间间隔(或周期)工作的实时系统。每个时间周期都有确定的分时,为了在某个周期执行,动作必须在正确的间隔到底server。因此,缓慢的反应会对球队的性能产生很大的影响,它会造成丢失执行动作的机会。仿真周期的介绍n n一场比赛 6000周期=10分钟n n上下半场各3000个仿真周期(5分钟)n n1周期=100msn n比赛球员的动作决策,包括球员从server信息的获取都是严格按照仿真周期来进行。刚刚提到的离散时间间隔就是由此而来的。定期获取最新版的servern n获取Soccer ser

6、vern n(Germany)Server及logP安装和启动n n首先解压rcssbase和rcssserver,并进入各自目录下进行安装。-./configure-./configure-make-make-make install-make installn n然后解压rcsslogplayer,同样进入该文件夹目录下进行安装。n n打开终端,输入rcssserver(启动server)n n输入rcsslogplayer启动监视器。返回返回Start比赛规则n n在比赛中,由server中的自动裁判和人类裁判来共同执行大量的规则。这节就是解释这些规则是如何工作,它们是怎么影响比赛的。比

7、赛规则1.开球KickOffn n在kick off之前(比赛开始前,和进球后),所有的球员都必须在她自己的半场。为了能够达到这样,在每次进球得分后,采取把比赛挂起5s时间。在这个间隔中,球员可以使用move命令移动到某点,而不是跑向这个点,这样会既费时又费体力stamina。如果在5s结束后,球员还呆在对方的半场,裁判会把她移到她们自己半场的随机位置。比赛规则2.进球Goaln n如果一个球队进球得分,裁判要作很多事情。首先,她向所有的球员广播进球信息。然后更新比分,将球移到中点,并把比赛模式置为kick_off_x(x是left或right,代表左半场球队或右半场球队)。最后,她将比赛挂起

8、5s,在此期间球员回到自己的半场。比赛规则3.出界Out of Fieldn n当足球出界时,裁判把足球放到一个合适的位置(边线,角球区或球门区)并且把比赛模式置为界外球kick_in,角球coner_kick,或者球门球goal_kick。如果是角球的话,裁判将把足球放到场内正确的角球区坐标(1m,1m)处。比赛规则4.4.清场清场Player ClearancePlayer Clearancen n当比赛模式是开球当比赛模式是开球kick_offkick_off,界外球界外球kick_inkick_in,或角球或角球corner_kickcorner_kick时,防守队员移出以足球为圆心,

9、时,防守队员移出以足球为圆心,9.159.15mm为为半径的圆形区域。被移出的球员随机放置在圆形区域的周半径的圆形区域。被移出的球员随机放置在圆形区域的周围。如果比赛模式是越位围。如果比赛模式是越位offsideoffside,所有的进攻球员被移所有的进攻球员被移回到没有越位的位置。这种情况下的进攻球员是指在越位回到没有越位的位置。这种情况下的进攻球员是指在越位范围内的所有球员以及位于以足球为圆心范围内的所有球员以及位于以足球为圆心9.159.15mm为半径的为半径的圆形区域内。如果比赛模式是球门球圆形区域内。如果比赛模式是球门球goal_kickgoal_kick,所有的所有的进攻球员会被移

10、到罚球区外。当球门球发生时,进攻球员进攻球员会被移到罚球区外。当球门球发生时,进攻球员不能重新进入罚球区。当足球被踢出罚球区后,比赛模式不能重新进入罚球区。当足球被踢出罚球区后,比赛模式马上被设置为正常马上被设置为正常play_onplay_on。比赛规则5.比赛模式控制Play-Mode Controln n当比赛模式是开球kick_off,界外球kick_in,或者角球corner_kick时,裁判在足球因为kick命令产生移动时,马上把比赛模式设置为正常play_on。比赛规则6.中场时间和终场时间Half_Time and Time_Upn n当上半场或下半场结束时,裁判暂时挂起比赛。

11、每个半场的默认值是3000个仿真周期(大约5分钟)。如果在下半场结束后,还是平局的话,会进行加时赛。直到一方进球为止,就是被称为“金球”规则或“突然死亡法”.n n点球大战几种常见比赛模式总结n nPM_BEFORE_KICK_OFF PM_BEFORE_KICK_OFF(开球前模式)(开球前模式)n nPM_KICK_OFF PM_KICK_OFF(开球)(开球)n nPM_PLAY_ON PM_PLAY_ON (正常比赛模式)(正常比赛模式)n nPM_KICK_IN/PM_CORNER_KICK/PM_KICK_IN/PM_CORNER_KICK/PM_GOAL_KICK /PM_FRE

12、E_KICK/PM_GOAL_KICK /PM_FREE_KICK/PM_BACK_PASS/PM_OFFSIDE PM_BACK_PASS/PM_OFFSIDE(特殊模式)(特殊模式)n nPM_TIME_OVER PM_TIME_OVER (时间结束)(时间结束)特殊裁判规则n n某些故意犯规动作,如故意阻挡等,很难由裁判(referee)自动判断,因为它与球员的意图有关。因此,server 为通过人来判断这些犯规动作提供赋予某个球队任意球了一种方式。人类裁判可以挂起比赛。特殊裁判规则n n1 1 故意包围足球故意包围足球(Surrouding the ball)Surrouding th

13、e ball)n n2 2 故意用多名队员阻挡球故意用多名队员阻挡球(Blocking the goal Blocking the goal with too many players)with too many players)n n3 3 故意长时间持球故意长时间持球(Not putting the ball into Not putting the ball into play after a given number of cycles)play after a given number of cycles)n n4 4 故意阻挡其他队员的移动故意阻挡其他队员的移动(Intention

14、ally Intentionally blocking the movement of other players)blocking the movement of other players)n n5 5 守门员滥用守门员滥用catch catch 命令(守门员不允许在罚球命令(守门员不允许在罚球区内重复使用区内重复使用kick kick 和和catch catch 命令,因为这样为移命令,因为这样为移动足球提供了安全的方式)动足球提供了安全的方式).特殊裁判规则n n6 向server 发送过多命令Flooding the Server with Messages每个Client 在一个仿

15、真周期内不能发送超过3 或4 个命令。过多的命令会使server 阻塞。如果server 发生阻塞,将在赛后进行检查。n n7 其他不恰当的行为返回返回球场对象信息的简介场地和球员n n仿真环境中足球场和全部对象都是仿真环境中足球场和全部对象都是2 2维,无高度概维,无高度概念。念。n n比赛场地的尺寸为比赛场地的尺寸为Field_Length*Field_Width(105*68)Field_Length*Field_Width(105*68)n n球门宽度为球门宽度为Goal_Width(14.64)Goal_Width(14.64),是实际的两倍,是实际的两倍n n球员和球用圆圈表示,动

16、作是一个离散的过程,球员和球用圆圈表示,动作是一个离散的过程,每个仿真周期结束时动作执行一次。每个仿真周期结束时动作执行一次。n n在每个仿真周期结束前,在每个仿真周期结束前,serverserver接受所有球员命接受所有球员命令并执行,最后利用场上对象的位置和速度信息令并执行,最后利用场上对象的位置和速度信息来计算出新的信息,以更新世界模型。来计算出新的信息,以更新世界模型。对象的运动模式n n各种运动模式均符合正常的物理运动规律。如速度、加速度、速度衰减等等。n n对象的加速度通过Kick(针对球)和Dash(针对球员)两个原子命令的有效power值来计算。n n有效值概念出于球员身体方向

17、、距离、速度等客观原因对kick和dash力度的影响。Server控制协议n nClient命令协议 介绍的是client向server发送的主要命令以及命令采取的格式。(包括连接)n nClient感知协议 介绍的是client可以从server那里得到什么信息的协议格式。基本命令协议n n1.catch Direction球员抓球动作。守门员是唯一能执行球员抓球动作。守门员是唯一能执行catchcatch命命令的球员。守门员可以从任何方向抓到足球,令的球员。守门员可以从任何方向抓到足球,只要足球在可抓范围内,守门员在罚球区内,只要足球在可抓范围内,守门员在罚球区内,且比赛模式是且比赛模式是

18、“play_onplay_on”。如果守门员以。如果守门员以 角角度去度去catchcatch足球,那么可抓范围是长宽分别是足球,那么可抓范围是长宽分别是catchable_area_lcatchable_area_l和和catchable_area_wcatchable_area_w的的矩形区域。如果足球在这个矩形区域内,能够矩形区域。如果足球在这个矩形区域内,能够被抓到的可能性是被抓到的可能性是catch_probabilitycatch_probability,在外,在外面则不能被抓到。面则不能被抓到。基本命令协议n n2.turn Moment 球员的转身动作,其参数球员的转身动作,其

19、参数momentmoment属于属于minmomentminmoment和和maxmomentmaxmoment(缺省为(缺省为 到到 )组成的区间。在球员)组成的区间。在球员运动的过程中,由于惯性的存在,转身更为困难。运动的过程中,由于惯性的存在,转身更为困难。当一个球员以最大速度前进时,他最大可以转过的角当一个球员以最大速度前进时,他最大可以转过的角度是正负度是正负120120。基本命令协议n n3.turn_neck Angel 球员转脖子动作。是在独立于球员身体的转动头颈。球员转脖子动作。是在独立于球员身体的转动头颈。球员的头部角度是他的视野角度。命令球员的头部角度是他的视野角度。命令

20、turnturn改变球员改变球员的身体角度,而命令的身体角度,而命令turn_neckturn_neck则改变了球员相对他则改变了球员相对他的身体的颈部角度。球员颈部的相对角度介于的身体的颈部角度。球员颈部的相对角度介于minmomentminmoment和和maxmomentmaxmoment之间(在文件之间(在文件serever.confserever.conf中定义)。中定义)。切记头颈角度是相对于球员身体的相对角度,如果球切记头颈角度是相对于球员身体的相对角度,如果球员执行了员执行了turnturn命令,而没有执行命令,而没有执行turn_neckturn_neck命令,命令,球员的视

21、野角度也是会改变的。球员的视野角度也是会改变的。基本命令协议n n4.move X Y 命令命令movemove可以把球员移动到场上的任何一个地方。只有在设置可以把球员移动到场上的任何一个地方。只有在设置整个球队时,整个球队时,movemove命令有效,在正常比赛期间是没有效果的。命令有效,在正常比赛期间是没有效果的。上下半场开始前上下半场开始前 (before_kick_off)(before_kick_off)进球后进球后 (goal_r_n(goal_r_n /goal_l_n)/goal_l_n)上述两种情况下可以使用上述两种情况下可以使用movemove命令。在这种情况下,只要比赛命

22、令。在这种情况下,只要比赛模式没有改变,球员可以被移动到自己半场的任何地点(就是说模式没有改变,球员可以被移动到自己半场的任何地点(就是说x0 x加速度加速度影响球员速度影响球员速度基本命令协议n n6.kick Power Direction以以PowerPower的力量向的力量向DirectionDirection方向踢球。条件是方向踢球。条件是球要在球要在kickable_areakickable_area范围内。范围内。Power Power-100-100,100100,Direction Direction-180-180,180180。球与球员身体的距离等信息都会多少影响到踢球与

23、球员身体的距离等信息都会多少影响到踢球有效力量。球有效力量。基本命令协议n n7.tackle power dir在可在可tackletackle的范围内,可以向相对身体方向的的范围内,可以向相对身体方向的某一某一dirdir进行进行tackletackle。TackleTackle的有效力量会因为的有效力量会因为角度的不同而依照某一规则相应的发生变化。角度的不同而依照某一规则相应的发生变化。铲球在正式比赛中的用处也是很大的,如破坏铲球在正式比赛中的用处也是很大的,如破坏球、传球、甚至是射门。其优点是以可踢范围球、传球、甚至是射门。其优点是以可踢范围大、力量大,进而争球能力和对球的加速效果大、

24、力量大,进而争球能力和对球的加速效果很明显。不过每次铲球之后很明显。不过每次铲球之后1010个仿真周期会处个仿真周期会处于冷冻状态。于冷冻状态。基本命令协议8.change_view ANGLE_WIDTH QUALITY改变球员的视角宽度和视觉能力。改变球员的视角宽度和视觉能力。ANGLE_WIDTHANGLE_WIDTH可以是可以是widewide、normalnormal、narrownarrow。QUALITYQUALITY为为highhigh或或lowlow(在同步视(在同步视觉下只有觉下只有highhigh)。)。若使用同步视觉则又有不同规则,下面会做介若使用同步视觉则又有不同规则

25、,下面会做介绍。绍。其他命令n n其他命令像score、say等基本命令与上面介绍的那些在一起组成了球员的最基本命令协议。球员体力模型n nDashDash Kick Tankcle Kick Tankclen n对于球员的体力有三个重要的变量:对于球员的体力有三个重要的变量:体力值(体力值(the stamina valuethe stamina value)体力恢复值(体力恢复值(recoveryrecovery)体力使用效率(体力使用效率(efforteffort)体力在进行体力在进行dashdash动作时不断减少,不过每个周期中体力也会不断的动作时不断减少,不过每个周期中体力也会不断的

26、慢慢按一定大小慢慢按一定大小(recovery)(recovery)进行恢复。进行恢复。RecoveryRecovery代表了每个周代表了每个周期内球员可以恢复多少体力,期内球员可以恢复多少体力,efforteffort则代表了体力的使用效率,也则代表了体力的使用效率,也就是就是dashdash的有效率。的有效率。n n两个数字:两个数字:8000 8000 和和 138000138000球员体力模型n n当一个球员使用当一个球员使用(dashdash PowerPower)命令时,他的命令时,他的PowerPower参参数要受到数要受到staminastamina和和efforteffort

27、的影响。的影响。PowerPower=minmin(PowerPower,StaminaStamina)Stamina=Stamina PowerStamina=Stamina Power Effective_dash_power=Effective_dash_power=Min Min(stamina,Powerstamina,Power)*)*efforteffort Stamina=Stamina=stamina effective_dash_power stamina effective_dash_power也就是说,也就是说,也就是说,也就是说,dashdash消耗的体力和消耗的体力

28、和消耗的体力和消耗的体力和powerpower有关。有关。有关。有关。Effort Effort会影响球员会影响球员会影响球员会影响球员dashdash的力度效果。的力度效果。的力度效果。的力度效果。球员体力模型n n在每个循环周期内,如果stamina低于某个阈值,则effort减少,否则增加。这个定义告诉我们,体力值消耗过低,会导致这个定义告诉我们,体力值消耗过低,会导致这个定义告诉我们,体力值消耗过低,会导致这个定义告诉我们,体力值消耗过低,会导致efforteffort减小,从而影响球员减小,从而影响球员减小,从而影响球员减小,从而影响球员dashdash的力度效果!的力度效果!的力度

29、效果!的力度效果!球员体力模型n n在每个循环周期内,如果stamina 低于某个阈值,则recovery减少。n n在每个循环周期内,stamina 依recovery的当前值而增加。综合上面两条可得:将体力值保持在某最小值综合上面两条可得:将体力值保持在某最小值综合上面两条可得:将体力值保持在某最小值综合上面两条可得:将体力值保持在某最小值以上,不但可以保持每周期体力恢复速度不变以上,不但可以保持每周期体力恢复速度不变以上,不但可以保持每周期体力恢复速度不变以上,不但可以保持每周期体力恢复速度不变小,而且还可以使小,而且还可以使小,而且还可以使小,而且还可以使dashdash效果保持在一个

30、较好效果保持在一个较好效果保持在一个较好效果保持在一个较好的水平上!的水平上!的水平上!的水平上!注意事项n n在具体决策使用各种原子动作命令的时候要注意,有些动在具体决策使用各种原子动作命令的时候要注意,有些动作是不能同时做出来的。比如让机器人一边踢球一边向前作是不能同时做出来的。比如让机器人一边踢球一边向前方方dashdash。这样就引出了互斥动作的概念。在具体决策的。这样就引出了互斥动作的概念。在具体决策的时候,一旦产生互斥动作,时候,一旦产生互斥动作,serverserver将丢弃前一个动作,只将丢弃前一个动作,只保留并执行最后放入命令队列的动作。保留并执行最后放入命令队列的动作。n

31、n而与互斥动作相对应的相容动作,意思就是机器人可以一而与互斥动作相对应的相容动作,意思就是机器人可以一边向前边向前dashdash一边转动脖子,这样的动作命令同时交付给一边转动脖子,这样的动作命令同时交付给serverserver时就可以同时被解释执行。时就可以同时被解释执行。返回返回感知协议听裁判,教练和其他球员发送的消息检测场上的可视信息,如球员当前可视范围内的对象的距离和方向等。是每个球员维护自身世界模型的一个主要信息来源检测球员的当前物理状态。体力、速度、脖子方向等。听觉模型听觉模型n n从server 发送的听觉消息的格式如下:(hear Time Sender MessageTim

32、e Sender Message)TimeTime:指示当前时间。指示当前时间。SenderSender:如果是其他球员发送的消息,那么是发送者如果是其他球员发送的消息,那么是发送者的相当方向,否则就是下面的选项:的相当方向,否则就是下面的选项:n nselfself:发送者是自己本人。发送者是自己本人。n nrefereereferee:裁判是发送者。裁判是发送者。n nonline_coach_left online_coach_left 或者或者online_coach_ringtonline_coach_ringt:发送者是在发送者是在线教练。线教练。Message Message 就

33、是消息内容。最长就是消息内容。最长say_msg_size(512)say_msg_size(512)个字节。个字节。听觉模型听觉模型n n关于是哪个队员发的消息和他的距离是听不到的。关于是哪个队员发的消息和他的距离是听不到的。n n队队员员只只有有有有限限的的通通讯讯能能力力,只只能能听听到到一一定定距距离离之之内内的的声声音音,此此距距离离由由soccerserversoccerserver参参数数audio_cut_off_dist(50)audio_cut_off_dist(50)决决定定。一一个个球球员员只只可可以以听听到到一一条条信信息息,一一般般情情况况下下,在在2 2个个循循环

34、环周周期期内内,当当有有多多个个队队员员说说某某消消息息时时,一一名名队队员员只只能能接接收收一一条条,而而失失去去了了其其他他的的消消息息。裁裁判判(refereereferee)所所发发的的消消息息具有高的优先级,可以被全部队员接收到。具有高的优先级,可以被全部队员接收到。n n例例如如:可可以以让让某某个个球球员员(守守门门员员)以以某某种种自自定定协协议议一一直直说说球球的的位位置置,这这样样自自己己球球员员听听到到的的字字符符串串就就可可以以解解析析出出球球的的位位置。不能知道谁说的,但是获取到了有用信息。置。不能知道谁说的,但是获取到了有用信息。自身感知模型n n自身感知返回球员当

35、前的物理状态。每隔sense_body_step(目前使用100ms),就会自动的向球员发送自身感知信息。n n其中包括自身体力、视觉模型、脖子角度、各种动作统计等等信息。这个由server进行统计和计算并在每个仿真周期的开始返还给球员。视觉模型n n(see see see see Time ObjInfo ObjInfo Time ObjInfo ObjInfo Time ObjInfo ObjInfo Time ObjInfo ObjInfo)TimeTime:当前时间。当前时间。ObjInfo ObjInfo 表示了可视对象的信息。其格式为:表示了可视对象的信息。其格式为:(ObjNa

36、me Distance Direction DistChng DirChng BodyDir HeadDirObjName Distance Direction DistChng DirChng BodyDir HeadDir)ObjNameObjName=(player Teamname Unumplayer Teamname Unum)n n|(gola Sidegola Side)n n|(ballball)n n|(flag cflag c)n n|(flag flag l|c|rl|c|r t|b t|b )n n|(flag p flag p l|rl|r t|c|b t|c|b

37、)n n|(flag flag t|bt|b l|r l|r 10|20|30|40|50 10|20|30|40|50)n n|(flag flag l|rl|r t|b t|b 10|20|30 10|20|30)n n|(flag flag l|r|t|b l|r|t|b 0 0)n n|(line line l|r|t|b l|r|t|b )objInfo 很多很多视觉模型n n场上有各种标志物,分布在球场内和球场外。球场上有各种标志物,分布在球场内和球场外。球员正是通过首先从员正是通过首先从“看看”到这些标志物(也就是到这些标志物(也就是从从serverserver获取这些位于可视范

38、围内标志物的基本获取这些位于可视范围内标志物的基本信息)来定位自己在场上的位置信息,否则球员信息)来定位自己在场上的位置信息,否则球员是不知道自己现在在哪里的。比如位置、身体方是不知道自己现在在哪里的。比如位置、身体方向等等。向等等。n n同样,也可以根据对这些标志物位置的信息,以同样,也可以根据对这些标志物位置的信息,以及已定位的自身信息来进一步的定位场上其他球及已定位的自身信息来进一步的定位场上其他球员或者球的位置等信息。员或者球的位置等信息。找关键建筑,找关键建筑,路标来确定自路标来确定自己现在所处位己现在所处位置。置。场上标志物信息视觉模型视角n n球球员员的的可可视视部部分分依依赖赖

39、于于几几个个因因素素。首首先先是是server server 上上的的参参数数sense_step(150ms)sense_step(150ms)和和visible_angle(90)visible_angle(90),决决定定了了视视觉觉信信息息的的时时间间间间隔隔,以及球员正常视角时的角度。以及球员正常视角时的角度。n n球员通过发送命令改变球员通过发送命令改变ViewWidth ViewWidth 和和ViewQuality ViewQuality 也可以改变视觉信息的频率和质量。也可以改变视觉信息的频率和质量。n n目前新目前新serverserver的一种同步视觉模式下,每周期随的一

40、种同步视觉模式下,每周期随仿真周期同步获得视觉信息。仿真周期同步获得视觉信息。视觉模型n nView_frequency=View_frequency=sense_step*view_quality_facor*view_width_factorsense_step*view_quality_facor*view_width_factor View_quality_facor=1 (viewQuality=high)View_quality_facor=1 (viewQuality=high)0.5 (low)0.5 (low)View_width_factor =2 (viewWidth=w

41、ide)View_width_factor =2 (viewWidth=wide)1 (normal)1 (normal)0.5 (narrow)0.5 (narrow)也就是说:视觉质量要求越高,视角要求越大,则发送时间间隔越大。也就是说:视觉质量要求越高,视角要求越大,则发送时间间隔越大。也就是说:视觉质量要求越高,视角要求越大,则发送时间间隔越大。也就是说:视觉质量要求越高,视角要求越大,则发送时间间隔越大。同步视觉n n当球员向当球员向serverserver发送发送synch_seesynch_see的视觉信息时,就进入了同步视觉的视觉信息时,就进入了同步视觉时间。同步视觉和上面介绍

42、的那种视觉模型有所不同。因为是每个周时间。同步视觉和上面介绍的那种视觉模型有所不同。因为是每个周期的开始从期的开始从serverserver得到视觉信息,所以它能保证视觉和决策的同步性。得到视觉信息,所以它能保证视觉和决策的同步性。在同步视觉中,在同步视觉中,lowlow视觉质量被禁止使用了,也就是只有视觉质量被禁止使用了,也就是只有highhigh类型。类型。具体模式如下:具体模式如下:眼睛眼睛一闭一睁一闭一睁眼睛眼睛两闭一睁两闭一睁视觉效果n n球员对于在其视觉范围内的各种物体都存在一个球员对于在其视觉范围内的各种物体都存在一个视觉效果的概念,在某些距离内可以获得球员的视觉效果的概念,在某

43、些距离内可以获得球员的号码和队名等信息,但是一旦距离拉大到一定程号码和队名等信息,但是一旦距离拉大到一定程度,将逐渐的随距离继续增大对号码信息的获取度,将逐渐的随距离继续增大对号码信息的获取能力慢慢减小,直到无法获取。能力慢慢减小,直到无法获取。n n这和我们人类相似,当人离得比较远的时候,我这和我们人类相似,当人离得比较远的时候,我们就无法看清他具体是几号。距离再继续拉大,们就无法看清他具体是几号。距离再继续拉大,我们甚至无法判断他是我方还是对方。我们甚至无法判断他是我方还是对方。n n具体的参数定义在教材里都有详细介绍。具体的参数定义在教材里都有详细介绍。在线教练n n在线教练则是企图观察

44、比赛然后为球员提供建议和信息。在线教练则是企图观察比赛然后为球员提供建议和信息。因此,他的能力有所限制。因此,他的能力有所限制。n n(1)(1)能和球员通讯能和球员通讯 n n(2)(2)能得到运动对象的较准确信息能得到运动对象的较准确信息n n(3 3)综合上面两点,一定程度上弥补球员的视觉缺陷!综合上面两点,一定程度上弥补球员的视觉缺陷!n n为了防止教练集中式的控制每一个球员,通讯能力被限制为了防止教练集中式的控制每一个球员,通讯能力被限制了,只能发有限次的消息(隔了,只能发有限次的消息(隔300300个周期才能发)给球员,个周期才能发)给球员,并且发送以后要经过一定的周期(并且发送以

45、后要经过一定的周期(5050个)才能被球员接收。个)才能被球员接收。在线教练是一个很好的工具,可以进行对方建模,比赛分在线教练是一个很好的工具,可以进行对方建模,比赛分析以及给己方球员战略指导。由于教练能得到场上的无噪析以及给己方球员战略指导。由于教练能得到场上的无噪声全部信息,而且实时要求不高,因此教练可以花费更多声全部信息,而且实时要求不高,因此教练可以花费更多的时间考虑战略的时间考虑战略。需要注意的地方n n仿真平台中同样引入了噪声和风力这些客观因素对球场的影响,因此出现决策误差是自然而然的事情。n n碰撞和穿过:如果在某个仿真周期结束时,两个对象如果在某个仿真周期结束时,两个对象发生重

46、叠,则发生重叠,则serverserver自动将他们向后移动,直到不再重叠自动将他们向后移动,直到不再重叠为止,然后将各自速度乘以为止,然后将各自速度乘以-0.1-0.1。需要说明的是,只要在。需要说明的是,只要在仿真周期结束时球和某队员不发生重叠,那么球就可以直仿真周期结束时球和某队员不发生重叠,那么球就可以直接穿过该队员。接穿过该队员。小结n nServer和Client 通信以及monitorn nServer定义的基本比赛规则n n球员的原子动作命令及体力概念n nServer提供的感官信息:(视觉、听觉、自身感觉视觉、听觉、自身感觉 )返回返回使用UVA底层n n1 1、基本底层类的

47、封装,包括和、基本底层类的封装,包括和serverserver的链接、的链接、通信、字符串的发送、接受、解析、存储,以及通信、字符串的发送、接受、解析、存储,以及一些基本的球员动作的封装。一些基本的球员动作的封装。n n2 2、我们自己写底层的话需要工作量过大,而且内、我们自己写底层的话需要工作量过大,而且内部连接和解析相当复杂需要花费大量人力,这个部连接和解析相当复杂需要花费大量人力,这个过程并不是我们进行机器人足球研究的根本所在。过程并不是我们进行机器人足球研究的根本所在。n n3 3、提供这个底层,有基本的功能,我们在这个上、提供这个底层,有基本的功能,我们在这个上面进行各种高层的决策。

48、这样可以只关心决策本面进行各种高层的决策。这样可以只关心决策本身,而不用在意字符串的提取和处理过程。身,而不用在意字符串的提取和处理过程。底层若干文件解析n nConnection.hclass Connectionclass Connectionn n该类使用服务器名和端口号建立一个服务器连接。该类使用服务器名和端口号建立一个服务器连接。连接建立好以后就可以通过连接接收和发送消息。连接建立好以后就可以通过连接接收和发送消息。n n与与socketsocket结构配合,构成了球员结构配合,构成了球员ClientClient与与ServerServer的的通讯基础。通讯基础。底层若干文件解析n

49、nSenseHandler.hclass SenseHandlerclass SenseHandlern n该类通过连接接收服务器发来的消息。它包含了很该类通过连接接收服务器发来的消息。它包含了很多方法,用于解析接到的消息并将结果送到相应的多方法,用于解析接到的消息并将结果送到相应的世界模型中。世界模型中。n n当该类实例化后,一个特殊的线程将自动调用当该类实例化后,一个特殊的线程将自动调用handleMessagesFromServerhandleMessagesFromServer()(),该函数将一直保持循环状态。通过这种方式,该函数将一直保持循环状态。通过这种方式,所有的消息将以这种方

50、式被接收然后解析。所有的消息将以这种方式被接收然后解析。底层若干文件解析n nActHandler.hclass ActHandlerclass ActHandlern n用于在机器人足球赛环境内向服务器发送命令。它用于在机器人足球赛环境内向服务器发送命令。它包含一个命令队列。当一个信号到达时,包含一个命令队列。当一个信号到达时,队列中的命令将被转化成字符串并发送到服务器。并发送到服务器。n n发出的命令同时也发送到世界模型,世界模型可以发出的命令同时也发送到世界模型,世界模型可以根据相应动作的执行而更新自己的内部状态。根据相应动作的执行而更新自己的内部状态。n n创建一个实例,就可以使用它将

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服