2006中国机器人大赛救援仿真组比赛规则
仿真环境
1. 注意事项
a) 为了提高仿真环境的稳定性,比赛将采用官方的服务器版本。
b) Kernel 0.49同以往的版本相比,有一些协议上的改动,这些改动在服务器包中有文档说明。参赛队伍应该使自己的智能体适应新版本的服务器。
c) 强烈建议所有参赛队伍使用TCP协议连接到kernel上。尽管UDP也仍然可用,但是在将来的比赛中可能不支持UDP。
2. 硬件环境
a) 比赛所用的PC:每支队伍比赛使用5台PC,其中一台用于运行kernel,一台用于3D Viewer,另外3台运行参赛队伍的智能体。
b) 比赛所用PC硬件配置:AMD64 3000+CPU,1Gbyte DDR,80GB HDD,GeForce6200 AGP,DVD-drive。
3. 软件环境
a) 仿真环境:Linux操作系统(如FedoraCore 4发行版)
b) 仿真服务器包:比赛将采用最新发行的服务器版本。这个服务器包由Cameron Skinner维护,可以到http://sourceforge.net/projects/roborescue/获得最新版本。
4. 地图:比赛会使用3-5个地图,其中有三个已知地图是Central of Foligno(Italy)、Kobe(Japan)和Virtual City。此外还可能有一个或更多的随机地图用于比赛。
5. 智能体:智能体由参赛队伍实现。
a) 数量:每种智能体和着火点的个数如下表。在比赛前会向参赛队伍公布。
表1智能体和着火点的个数
| 最小值 | 最大值 |
Fire Brigade | 0 | 15 |
Police Force | 0 | 15 |
Ambulance | 0 | 8 |
Civilian | 70 | 90 |
| 0 | 1 |
| 0 | 1 |
| 0 | 1 |
Refuge | 0 | 5 |
Ignition points | 2 | 8* |
*最大初始燃烧建筑物数量为30。然而这些建筑物分布在8个不同的区域,也就是说初始时最多8个火点,但是每个火点会有几个建筑物燃烧。
6. 市民智能体:我们将采用最新版本的仿真包中的市民智能体。
7. 比赛所用参数
a) 在kernel的config.txt中:
Default parameters are used.
Default parameters are used.
round_hp_and_damage: true
send_voice_synchronously: false
# New options for 2005
send_civilians_at_start: false
#################################################
# new/modified options for the 2004 competition.
# GIS generates random IDs for units in each simulation.
random_IDs : true
# KA_HEAR_TELL and KA_HEAR_SAY are added to the RoboCup Rescue protocol.
additional_hearing : true
# The maximum power of one extinguish action. (-1 to unlimit)
max_extinguish_power_sum : 1000
# The maximum extinguish power for each nozzle. (-1 to unlimit)
max_extinguish_power : -1
# The maximum number of nozzles for one extinguish action. (-1 to unlimit)
max_nozzles : -1
max_extinguish_distance: 30000
################################################
# new options for the 2003 competition.
# avoid slowdown for spredding fire.
send_far_fire_changed_only : true
# notify_unchangeable_informaion : false // Deprecated
# avoid that the fire simulator becomes some laps behind.
step : 1000
# use new synchronization mechanism.
# use_gettimeofday : false // Deprecated
# An agent can discover a fire within a distance D[m] roughly proportional
# to its fieryness, where
# D = K * (cycles from the start of burnup)
# If fire_cognition_spredding_speed >= 0, K is given by
# fire_cognition_spredding_speed. Otherwise, K is infinite.
fire_cognition_spreading_speed : 10000
# If simulate_tank_quantity is true, tank quantity properties are
# decreased by extinguishments. If tank is empty, extinguishments
# should be faild.
simulate_tank_quantity : true
# Tank quantity properties are increased by tank_quantity_recovery_on_refuge
# if the agent is in a refuge.
tank_quantity_recovery_on_refuge : 1000
# same as max_extinguish_power
# Gives the maximum quantity of a tank.
tank_quantity_maximum : 15000
# not new, but the subject of the discussion
say_max_bytes : 256
################################################
# new options for the 2002 competition.
ignore_nozzle_position : true
area_per_repair_cost : 20000000
round_down_quantity : false
accept_multiple_nozzles : true
near_agents_rescuable : true
steps_far_fire_invisible : 5
steps_agents_frozen : 3
miscsimulator_supports_load : false
b) 其它参数
仿真时间:300步,
视力范围:
声音范围:
地震的力量:shindopolydata.dat, galpolydata.dat
比赛
1. Agent比赛
本次比赛不设置Infrastructure比赛项目,仅设Agent比赛项目。
1) 技术委员会将在比赛过程中设计各种灾难条件,选择的每个灾难条件应该能够检验智能体在各种条件下完成任务的效率。
2) 每天的比赛分成几个Session,一个Session是特定灾难条件下的一组比赛。一个Session中有一个固定比赛地图和固定的灾难条件,所有队伍在这个环境下进行完一场救援比赛,这个Session结束。
3) 每个参赛队伍在每个Session开始时上传自己的代码或者二进制程序。一个Session一旦开始,在下个Session开始前,所有队伍不允许上传程序。
4) 每个队伍在Session开始前不知道该Session所用灾难的条件(地图、火点分布等)。
5) 在两个Session之间,参赛队伍可以修改自己的程序。
6) 参赛队伍应该使每种智能体按每个Session指定的数量连接到服务器上。
7) 在下面情况下,允许智能体使用其它程序处理并创建的地图数据文件:
(1) 这个数据文件由计算机程序生成,没有人工干预。
(2) 所有已知地图的信息由同一个计算机程序生成。
(3) 用来计算已知地图的程序也可以对新地图进行计算分析。
(4) 智能体自己选择数据文件。
(5) 智能体在没有某个地图的预处理数据的情况下也应正常运行。
(6) 预计算的程序在比赛后应该开放源代码。
8) 每个回合比赛场次:每个回合中相同的地图上要进行不止一次的比赛,这个数字在赛场由技术委员会确定。每个回合的分数由该回合中所有成绩的平均分确定。
9) 得分规则:采用国际比赛(RoboCup2006, German Open 2005)的规则。
V越高说明救援效果越好。
V=(P + S/Sint) * sqrt(B/Bint)
P: 生还智能体数量
Sint: 启动时所有智能体的总HP值
S: 比赛结束时所有智能体剩余的总HP值
Bint: 开始时总的面积
10) 比赛有效性:一个比赛可能由于各种原因在中途失败,在这种情况下,仅仅允许每个队伍重新比赛一次。如果第二次也失败:
(1) 如果服务器仍然继续运行直到仿真结束,那么第二次的最终分数将被当作有效得分。只要开始第二次比赛的,第一次的得分将无效。
(2) 如果服务器也没有运行到终点,那么比赛得分为0。尽管第一次比赛有得分,也不能使用。
11) 每个队伍有责任确保自己的程序能够很好地运行在仿真环境下。
12) 其它:在一个特定灾难条件下的所有情况,包括随机号,对于所有队伍来说都是一致的。
2. 开源策略
1) 为了保证公平比赛和促进交流,赛后所有队伍必须立即公开其源代码。
2) 比赛的日志文件和相关的参数也会立即公布。

【