2005 Osaka Robocup 3D仿真比赛规则
2005.1.11
翻译:许元xychn15@yahoo.com.cn
摘要
这篇文章包含2005 Osaka Robocup 3D仿真比赛的官方规则。尽管我们试图覆盖各个方面,如果发生意外事件,规则委员会将寻求参赛者的意见然后作出决定。但是,一旦委员会作出决定,这个决定就最终的并不再讨论。关于这次比赛的更多信息访问:http://www.science.uva.nl/~jellekok/robocup/rc05/
1.仿真环境
*机器:
参赛队伍只能使用Linux操作系统。根据可用的时间,每支队伍将获得一台或两台机器。Linux将由Gentoo发布。
*仿真器
这次比赛使用的server版本将是比赛前两周发布的最新版本。使用官方的配置文件。
2.参赛队伍需求
一个有效的队伍必须满足下面的条件:
*任何试图暗中破坏SPADES的定时和跟踪进程将被严格禁止。你的责任包含,但不仅仅是:
-所有调用fork,clone等都必须是动态调用。你不能使用一个完全静态连接可执行的,除非你的每个agent运行在同一个进程或线程中。
-你的代码不能改变进行监视的代码。
-任何SPADES使用的SysV IPC或者Unix的接口严格禁止使用。
-Agent不能与没有被SPADES跟踪的进程/线程通讯。事实上,你的agent不能通过不是由主线程和其子线程产生的进程和线程计算。
*Agent之间不允许不通过SPADES/rcssserver3D进行通讯。
*每个人需要为你的agent提供一个SPADES agent数据库登录类型<agent_type_external>。<timer>登录也必须有否则就是默认值。
如果参赛队伍有违反规则的嫌疑,委员会有权要求检查源代码。
3.比赛结构
3.1概要
*所有的比赛将由人类裁判手动开始。
*比赛包含上下半场,各5分钟。在有些情况下将有加时赛,更多的信息见后面的部分。
*你可以在比赛期间调整你的代码或者更换新的代码。当然,随之发生的问题由你自己负责。确定您看过“agent 失败”部分。注意只有在比赛轮次之间才能上传你的代码。
*赢得比赛得3分,平局得1分。放弃的队伍参加的比赛将按3:0记录或者按照放弃的队伍与同组其他队伍比赛的结果记录(如果比分大于3:0)。
*你需要为你的agent提供SPADES agent数据库。请看仿真包中的例子agentdb.xml。将它放在home的顶层目录里(例:/home/[teamdir]/agentdb.xml)。
* agent数据库文件将被你的用户组中不同的用户使用。你的文件和队伍执行码必须至少是组可读和可执行权限。
*如果你的队伍不能工作,我们不会调整它。
3.2比赛程序
比赛程序如下:
*比赛包含三轮。
*第一轮,委员会根据 Robocup2004比赛成绩选出种子队。队伍将被随机地分组。
*第一轮,队伍被分成6个小组,每个小组5支队伍。每小组前两名的队伍进入第二轮。平局的区分,请看相关章节。
*第二轮,队伍被分成2个小组,每个小组6支队伍。每小组前两名的队伍进入半决赛。
*在最后一轮,每场比赛必须产生胜者。如果比赛没有胜者,额外的三个半场按照金球规则进行加时赛。如果仍然没有结果,将有人类裁判抛硬币来决定胜者。
4.平手的区分
在前两轮队平手的伍数目n>=2时按照下列优先级决定:
1、积分
2、相互比赛结果
如果n=2,当且仅当相互比赛有胜者,按照相互比赛结果
如果n>2,当且仅当一支队伍的积分高于其它的队伍,按照相互比赛结果
3、这一轮比赛的所有净胜球数
4、比赛中平手队伍之间的净胜球数
5、如果n>2,平手队伍之间比赛的所有进球数
6、这一轮比赛的所有进球数
7、如果n=2,额外的三个半场按照金球规则进行加时赛来决定胜者。如果n>2,首先按照比赛的统计数据(数字3-6)排序。剩下的队被随机剔除。再进行一场单独的淘汰赛,每对按金球进行3个半场的比赛。如果仍然没有结果,将有人类裁判抛硬币来决定胜者。
8、抛硬币!
遇到超出列表的意外情况:队伍平手,并且平手的队伍中有的能进入下一轮,有的不能,比赛的统计数据(数字3-6)也不能区分平手。
5.坠球
在某些情况下,像kick-in,比赛中断了。如果一个队不能在kick-in之后使球返回play,将在30秒后自动坠球。
如果重复地出现必须开始比赛的队伍没有向球移动,可由人类裁判通过手动坠球适当缩短等待的时间。这样做的目的是保持比赛的连贯性并给队伍公平的机会来发挥他们的权利。
如果在play-on模式下,没有队员向球移动,或者没有人能踢球,裁判可在30秒之后坠球。在这种情况下特别地,鼓励裁判用一些常识。例如,如果一个队员需要长距离跑动来得到球,并且超过30秒,在坠球之前他们需要有足够的时间来踢球。在30秒之前不应该坠球。但是如果重复地没有人踢球,裁判应该在更短的时间里坠球。
6.犯规
当前kick-in是由3D server自动检测的。但是,有些情况,犯规只能由人类裁判发现并给不利一方任意球。犯规的原因包含如下但不仅仅是:
*如果一个队伍围着球使得其他队伍不能碰到球
*如果球门被过多的队员堵住使得不能进球(大致原则:队员排成墙堵住球门)
*如果一个队伍故意地阻挡对手的移动
*任何违反公平竞争原则的行为在规则委员会裁决之后仍称作犯规。
7.公平竞争
比赛的目的是根据公平原则和足球的一般规则和限制地利用通过虚拟的3D足球仿真世界来模拟。欺骗将被看作违反公平竞争原则并在比赛期间严格禁止。
违反公平竞争原则例如:
*使用别的队伍的执行码
*每个client通过发送过多的命令人为干扰仿真
*队员之间使用其他通讯途径直接通讯,例如进程间通讯
这些都是被严格禁止的。
在规则委员会裁决之后,其他的策略将被发现作为违反公平竞争原则。但是,我们期望公平的队伍。事实上,破坏对手操作或者通过其他途径获取利益都会被仿真器看作违反公平竞争原则。如果你在使用某些方法时有疑问,请在比赛开始之前询问规则委员会。如果队伍在比赛期间被发现使用不公平手段,将立即丧失比赛资格。
8.有效的比赛
8.1 agent错误
由于agent自身程序性问题导致agent错误,以下程序适用。
*如果你的agent在30秒之内不能连接到仿真器,比赛将有3次重新开始的机会。
*如果问题出在边的参数上,你在2分钟内可以对你的代码进行镜象改变或者更换执行码。这是你的最后机会。在这之后,agent还是不能正常运行,比赛将不会被打乱。比赛继续进行或者你以3:0的比分输掉比赛。
*如果你的agent在30秒之后失去连接到仿真器,比赛将继续进行,如果不能继续进行比赛,你将以3:0的比分输掉比赛。
8.2 server错误
支持任意一方的裁判认为仿真器错误,将有规则委员会商议决定是否继续比赛。如果委员会决定停止比赛,比赛将重新开始。
9.远方的参与者
概述:远方的参与者仅仅在特殊的情况下。
我们没有资源来寻找远方的参与者启动程序的问题,所以,在他们自己利益的角度,远方的参与者一定确保第三方(例如:我们)能够很容易地启动你的代码并且在不同于开发平台的平台上流畅地运行。不幸地,如果我们没有成功地迅速获得代码并顺利地运行,我们不保证远方的参与者参与比赛。
10.比赛之后
比赛之后队伍将被自动地公布。为帮助我们公布您的队伍,在/home/[teamdir]/RC2005/下安装启动您的队伍的所有文件。如果不能提供可执行的队伍,我们将公布那个队伍的整个home目录。而且,有可能剥夺Robocup2006比赛资格。