国际水中机器人大赛2D仿真组比赛项目及规则.docx
- 文档编号:5079012
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:13
- 大小:22.93KB
国际水中机器人大赛2D仿真组比赛项目及规则.docx
《国际水中机器人大赛2D仿真组比赛项目及规则.docx》由会员分享,可在线阅读,更多相关《国际水中机器人大赛2D仿真组比赛项目及规则.docx(13页珍藏版)》请在冰豆网上搜索。
国际水中机器人大赛2D仿真组比赛项目及规则
2016国际水中机器人大赛2D仿真组比赛项目及规则
2016国际水中机器人大赛2D仿真组比赛项目及规则
国际水中机器人联盟
2016年5月
1.比赛平台
(1)
1.1平台简介
(1)
1.2硬件环境
(1)
1.3软件环境
(1)
1.4安装运行
(1)
1.4.1安装标准平台
(1)
1.4.2选择运行方式
(2)
1.5标准比赛设置
(2)
1.5.1仿真场地
(2)
1.5.2仿真机器鱼(3)
1.5.3仿真水球(3)
1.5.4仿真机器鱼队伍(3)
1.5.5仿真比赛计时(4)
1.5.6仿真比赛计分(4)
2.比赛组织(4)
2.1人员配置(4)
2.1.1队伍和队员(4)
2.1.2裁判(4)
2.1.3设施保障员(5)
2.2设施配置(5)
2.2.1硬件设施(5)
2.2.2软件设施(5)
2.3比赛流程(5)
3.比赛项目(5)
3.12D仿真生存挑战(5)
3.1.1比赛内容(6)
3.1.2比赛时间(7)
3.1.3计分规则(7)
3.1.4策略编写(7)
3.22D仿真水中搬运(7)
3.2.1比赛内容(8)
3.2.2比赛时间(8)
3.2.3计分规则(8)
3.2.4策略编写(9)
3.32D仿真抢球博弈(9)
3.3.1比赛内容(10)
3.3.2比赛时间(11)
3.3.3计分规则(11)
3.3.4策略编写(11)
3.42D仿真花样游泳(12)
3.4.1比赛内容(12)
3.4.2比赛时间(13)
3.4.3计分规则(13)
1.比赛平台
1.1平台简介
2D仿真组比赛采用水中机器人水球比赛仿真器2D版(UnderwaterRobotWaterPoloGameSimulator2DEdition,URWPGSim2D)软件作为比赛平台。
仿真器包括服务端(URWPGSim2DServer)和客户端(URWPGSim2DClient)。
服务端模拟水中比赛环境,控制和呈现比赛过程及结果,向客户端发送实时比赛环境和过程信息;半分布式客户端模拟比赛队伍,加载比赛策略,完成计算决策过程,向服务端发送决策结果。
1.2硬件环境
比赛平台适合运行于PC机或工作站,其硬件配置要求如下表。
核心配件最低配置推荐配置
CPUIntelP42.0GHz或同档次AMDCPUIntelE73002.66GHz或以上
内存256MB2GB或以上
显卡支持DirectX9.0,PixelShader3.0,显存128M或以上
硬盘10GB80GB或以上
1.3软件环境
操作系统:
WindowsXPProfessionalSP3,WindowsVista或Windows7。
.Net框架:
.NetFramework3.5withSP1。
MRDS:
MicrosoftRoboticsDeveloperStudio2008R3。
附件:
MicrosoftXNAFrameworkRedistributable3.1,MicrosoftExcel2003ComLibrary。
1.4安装运行
1.4.1安装标准平台
1、PC机或工作站安装Windows7操作系统。
2、按照默认设置安装中国水中机器人大赛官方网站仿真组资源下载页面提供的DotNet3.5SP1(该软件包集成了SP1,且安装时不需要联网,官方网站提供的安装包安装时需要联网)和XNA3.1。
3、按照默认设置安装URWPGSim2D软件包,必需的MRDS组件和Excel组件即随URWPGSim2D一起安装好。
1.4.2选择运行方式
URWPGSim2D软件提供Local和Remote两种运行模式。
Local模式供各参赛队伍用于粗略调试比赛策略,该模式只需要启动一个服务端URWPGSim2DServer进程。
策略组件DLL文件直接在服务端加载,所有策略计算过程和服务端仿真循环过程共享同一进程空间。
实际比赛中在Local模式和Remote模式二选一。
Remote模式需要启动一个服务端进程和若干个客户端URWPGSim2DClient.exe进程,客户端进程数量和当前选中比赛项目每场比赛参与队伍数量一致,如对抗性1VS1比赛项目,每场比赛参与队伍数量为2,需要启动2个客户端进程。
这些客户端进程可以各自运行于独立的电脑;可以全部运行于一台电脑;也可以和服务端进程运行于同一台电脑。
无论采用哪种拓扑结构,所有参赛队伍的策略计算过程均在各自独立的客户端进程空间中运行。
由于Remote模式和Local模式数据交换方式的差异,策略在Local模式下与在Remote模式下运行时效果存在差异,所以要求各参赛队伍进行赛前测试和修正。
1.5标准比赛设置
1.5.1仿真场地
仿真场地的2D模型定义,结构和尺寸比例与实体水池基本一致,如图1.1所示。
1.5.1.1尺寸
图1-1:
2D仿真平台水池结构
1、全场尺寸:
3000mm*2000mm。
2、球门尺寸:
150mm*400mm。
3、禁区尺寸:
400mm*1000mm。
4、中心圆半径:
200mm。
1.5.1.2坐标系统
1、取场地几何中心为坐标原点,向右为X轴正方向,向下为Z轴正方向。
2、角度取X轴正方向转至X轴负方向,顺时针为0至π,逆时针为0至-π。
3、左右点球点Z坐标均为0,X坐标分别偏离左右禁区右左竖边10像素,对应的实际尺寸,根据屏幕分辨率不同而不同,标准情况下大约50mm。
1.5.2仿真机器鱼
仿真机器鱼的2D模型定义,结构和尺寸与实体机器鱼比例基本一致。
1、结构:
一个弧形鱼头;一个矩形鱼体;三个首尾相接底边长递减的等腰梯形鱼尾;一个细长矩形尾鳍;两个直角三角形胸鳍,如图1-2所示。
图1-2:
2D仿真鱼
2、尺寸:
鱼头弧形半径为22mm;鱼体矩形长*宽为160mm*45mm;鱼尾三个首位相接的等腰梯形底边长依次为45mm、30mm、18mm,最后一个梯形顶边长为8mm,三个梯形的高依次为88mm、66mm、55mm;尾鳍细长矩形长*宽为60mm*8mm;胸鳍两个三角形分别位于鱼体矩形长边中部外侧,两条直角边长度分别为60mm、40mm。
3、颜色:
鱼体颜色默认为红色,同一支队伍仿真机器鱼颜色相同;鱼身编号颜色默认为黑色;对抗项目中,另一方队伍鱼体颜色默认为黄色。
1.5.3仿真水球
仿真水球的2D模型为一个圆形,半径为58mm,如图1-3所示。
图1-3:
2D仿真球
1.5.4仿真机器鱼队伍
每场比赛,参与的仿真机器鱼队伍数量和每支队伍的仿真机器鱼数量均在具体的比赛项目规则中定义。
1.5.5仿真比赛计时
所有2D仿真比赛项目采用倒计时制,比赛项目总时间可选择10分钟、5分钟和3分钟,由具体比赛项目规定。
比赛平台服务端倒计时牌,显示当前比赛项目剩余时间,递减单位为1秒,但非严格的世界时间1秒。
具体计时机制如下:
由比赛项目总时间分钟数(如10分钟),根据比赛平台设定的仿真周期即每个仿真循环周期毫秒数(如100毫秒),转换得到该项目总仿真周期数(10*60*1000/100=6000);比赛平台设置一个剩余周期数,初始值为总仿真周期数,每个周期递减后,转换成剩余的毫秒数,四舍五入格式化成“分分:
秒秒”的样式更新显示。
1.5.6仿真比赛计分
比赛平台服务端计分牌,显示参与当前比赛项目的各支队伍实时得分值,递增单位为1分。
比赛结束时计分牌的显示作为各参赛队伍的得分值。
2.比赛组织
2.1人员配置
2.1.1队伍和队员
每支参赛队伍设置队长一名,队员数量不限,其职责如下。
1、按照URWPGSim2D平台的规范编写比赛策略。
2、比赛时派出一位成员在分配给本队的客户端加载比赛策略并发“Ready”指令。
3、比赛过程中允许更换比赛策略的时机根据需要更换比赛策略并重发“Ready”指令。
2.1.2裁判
每场比赛设置一位裁判,其职责如下。
1、操控比赛平台:
启动服务端和相应数量的客户端程序准备好比赛。
2、协调参赛队伍:
指示各参赛队伍在其客户端加载比赛策略并发“Ready”指令;在允许更换比赛策略的时机,当参赛队伍请求更换时,指示其实施更换行为。
3、控制比赛进程:
根据具体比赛场次对应的比赛项目的需要,在比赛过程中使用“Pause”、“Continue”和“Replay”指令暂停、继续和回放比赛;处理比赛过程中的各种提示。
4、记录比赛结果:
每场比赛结束时,在比赛计分表上填写比赛结果,并请相应参赛队伍代表签字确认。
5、沟通解决比赛争议:
比赛过程中参赛队伍间发生争议时,协调参赛队伍沟通解决,解决不成时报告组委会;参赛队伍与裁判直接发生争议时,报告组委会。
2.1.3设施保障员
大赛期间,至少安排一位设施保障员,其职责是保障比赛所需设施正常运行。
2.2设施配置
2.2.1硬件设施
大赛报名截止后,组委会根据报名参赛队伍数量及各队伍所报比赛项目数量,向主办方提供所需硬件设施套数,由主办方负责准备。
每套硬件设施包括第1.2节“推荐配置”档次的PC机或工作站至少1台(各参赛队伍的客户端和服务端运行于同一台电脑),至多3台(各参赛队伍的客户端和服务端各自运行于不同电脑);投影仪及幕布一套;交换机接口至少1个,至多4个;连接好RJ45水晶头的超五类双绞线至少1条,至多4条;电源插座若干。
硬件设施每套标准配置为:
第1.2节“推荐配置”及以上档次PC机2台(服务端单独运行于一台机器,1个或多个客户端运行于同一台机器);投影仪及幕布一套。
2.2.2软件设施
由组委会安排专人于赛前按照第1.4节提供的步骤安装并测试比赛所需软件设施。
2.3比赛流程
图2-1:
2D仿真项目比赛流程
3.比赛项目
3.12D仿真生存挑战
图3-1:
2D仿真生存挑战
3.1.1比赛内容
2D仿真生存挑战是由2支队伍参与,每支队伍4条仿真机器鱼,用到3个矩形仿真障碍物的对抗性比赛项目。
3.1.1.1比赛场地
2D仿真生存挑战比赛项目采用标准仿真场地,仿真机器鱼及其它仿真场地元素如图3-1所示。
3.1.1.2比赛过程
1、初始状态,2支队伍各4条仿真机器鱼,1号鱼为特殊鱼,在进攻时充当“捉捕手”角色,防守时充当“防御手”角色;
2、
3、4号鱼为常规鱼,在防守时充当“躲避手”角色,在进攻时不上场。
上半场为红色鱼方攻,黄色鱼方守,下半场反之。
红色鱼方特殊鱼为青色,黄色鱼方特殊鱼为蓝色。
2、场地正中央有三块正方形障碍物起到阻拦作用,正方形障碍物的边长为400mm,中心点坐标分别为(0,0),(0,700),(0,-700)。
3、比赛开始后,进攻方“捉捕手”在策略的驱动下,试图去碰撞防守方的“躲避手”,防守方借助“防御手”的掩护,阻止进攻方“捉捕手”碰撞防守方的“躲避手”。
4、比赛时间递减到一半时,平台服务端弹出对话框提示,并自动发“Pause”指令暂停比赛;裁判确认后由系统交换两支队伍所处半场;裁判发“Continue”指令继续比赛。
5、比赛时间递减为零时,平台服务端弹出对话框提示,裁判确认比赛结果,比赛结束。
6、常规鱼的速度(VCode)最大为8,特殊鱼的速度(VCode)最大为15。
3.1.1.3更换策略
1、交换半场而暂停比赛时,双方均可更换比赛策略。
2、除交换半场的时机以外,每支队伍不可提出更换策略的请求。
3.1.2比赛时间
比赛总时间为10分钟,上下半场各5分钟;交换半场时,参赛双方均可提出暂停休息,休息时间不超过5分钟;没有任何一方提出休息,则由裁判决定是否休息,休息时间不超过5分钟。
3.1.3计分规则
1、进攻方“捉捕手”每触碰一次对方“躲避手”,对方此“躲避手”下场,记录所需时间,进攻方得1分。
“捉捕手”与“防御手”相互之间碰撞不计分。
当半场时间未到时,防御方三条鱼均已下场,则该半场立即结束,进入交换半场或比赛结束时间。
2、胜负标准:
单场比赛,规定时间(10分钟)内得分多的队伍取胜;得分相同最后得分用时少者获胜,若得分为0:
0或得分相同且最后得分用时相同,则视为平局。
3、单场比赛,记录比分和胜负。
3.1.4策略编写
2D仿真生存挑战项目传递给策略的特有参数仅一种,为判断一条“躲避手”是否被触碰的标志量,该标志量用一个32位整数表示,取值0表示该鱼尚未被触碰过,取值1表示该鱼已经被触碰过,其他值没有意义。
在策略中通过如下方式获取和使用该标志量。
intby2=Convert.ToInt32(mission.HtMissionVariables[“IsYellowFish2Caught"]);
intby3=Convert.ToInt32(mission.HtMissionVariables["IsYellowFish3Caught"]);
intby4=Convert.ToInt32(mission.HtMissionVariables["IsYellowFish4Caught"]);
intbr2=Convert.ToInt32(mission.HtMissionVariables["IsRedFish2Caught"]);
intbr3=Convert.ToInt32(mission.HtMissionVariables["IsRedFish3Caught"]);
intbr4=Convert.ToInt32(mission.HtMissionVariables["IsRedFish4Caught"]);
3.22D仿真水中搬运
图3-2:
2D仿真水中搬运
3.2.1比赛内容
2D仿真水中搬运是由1支队伍参与,每支队伍2条仿真机器鱼,用到6个仿真水球,6个圆形地标的非对抗性比赛项目。
3.2.1.1比赛场地
2D仿真水中搬运比赛项目采用标准仿真场地,仿真机器鱼及其它仿真场地元素如图3-2所示。
3.2.1.2比赛过程
1、初始状态,队伍2条仿真机器鱼,位于比赛场地左半场内;6个仿真水球按照从左到右,从上到下的顺序被编为0至5号。
2、场地左方有白色地标,内有相应编号,当相应编号的球被移入地标内时得分(地标半径为80mm),平台服务端弹出对话框提示得分,并自动发“Pause”指令暂停比赛,裁判发“Continue”指令继续比赛。
3、比赛开始后,仿真机器鱼在策略的驱动下将球推入相应编号的地标中。
4、比赛时间递减为零时,平台服务端弹出对话框提示,裁判确认比赛结果,比赛结束。
3.2.1.3更换策略
每支队伍在每场比赛可提出2次更换策略的请求,由裁判手动暂停比赛以更换策略然后继续比赛。
3.2.2比赛时间
比赛总时间为10分钟。
3.2.3计分规则
1、每将一个球推入相应的地标中,得1分,并记录当前时间,重复推入,不计分。
(6个球全部被顶
入后,如时间未到,则比赛立即结束,并且记录所剩时间)。
2、胜负标准,记录比分和每次得分时间,待所有选手比赛完毕后,规定时间(10分钟)内得分多的队伍取胜;得分相同则两者中最高得分的最终形成时间少者获胜。
3.2.4策略编写
2D仿真水中搬运项目传递给策略的特有参数仅有一种,为判断某个球是否已经被推入相应的地标中。
该参数由以下方法获得,当其为0时代表其尚未进入地标中,当其为1时代表已经进入地标中,其余值无意义。
intb0=Convert.ToInt32(mission.HtMissionVariables["Ball0InHole"]);
intb1=Convert.ToInt32(mission.HtMissionVariables["Ball1InHole"]);
intb2=Convert.ToInt32(mission.HtMissionVariables["Ball2InHole"]);
intb3=Convert.ToInt32(mission.HtMissionVariables["Ball3InHole"]);
intb4=Convert.ToInt32(mission.HtMissionVariables["Ball4InHole"]);
intb5=Convert.ToInt32(mission.HtMissionVariables["Ball5InHole"]);
此外,选手可通过以下函数获得6个地标的中心坐标,记录在hole数组中。
privatexna.Vector3[]hole=newxna.Vector3;
privatevoidCalHol()
{
for(inti=1;ii++)
for(intj=1;jj++)
{
intl=i*(i-1)/2+j-1;
hole[l].Y=0;
hole[l].X=-(i*3-3)*80;
hole[l].Z=-(i-1)*2*80+4*(j-1)*80;
}
}
3.32D仿真抢球博弈
图3-3:
2D仿真抢球博弈
3.3.1比赛内容
2D仿真抢球博弈是由2支队伍参与,每支队伍2条仿真机器鱼,用到9个仿真水球,6个矩形仿真障碍物的对抗性比赛项目。
3.3.1.1比赛场地
2D仿真抢球博弈比赛项目采用标准仿真场地,仿真机器鱼及其它仿真场地元素如图3-3所示。
3.3.1.2比赛过程
1、初始状态,2支队伍各2条仿真机器鱼,对称位于比赛场地左右半场的禁区内;共9个仿真水球,3个蓝色水球对称地位于场地正中央,从上到下依次编号为0、1、2;4个紫色水球位于场地四角,从左上方顺时针依次编号为3、4、5、6;2个红色水球分别位于场地中线的上下方,从上到下分别编号为7、8。
2、场地左方(右方)由三块绿色障碍物所围成的区域为左边(右边)队伍的目标球门,称为左球门(右球门)。
3、比赛开始后,双方仿真机器鱼在各自策略的驱动下抢球、带球、射门、阻击、守门,目标是把仿真水球推进己方的目标球门。
4、比赛时间递减到一半时,平台服务端弹出对话框提示,并自动发“Pause”指令暂停比赛;裁判确认后系统交换两支队伍所处半场;裁判发“Continue”指令继续比赛。
5、比赛时间递减为零时,平台服务端弹出对话框提示,裁判确认比赛结果,比赛结束。
3.3.1.3更换策略
1、交换半场而暂停比赛时,双方均可更换比赛策略。
2、除交换半场的时机以外,每支队伍在每个半场可提出1次更换策略的请求,由裁判手动暂停比赛以更换策略,然后继续比赛。
3.3.1.4平局处理
常规比赛时间结束后,若双方比分相同,则进第一个球时间短的一方获胜,若无进球则视为平局。
3.3.2比赛时间
比赛总时间为10分钟,上下半场各5分钟;交换半场时,参赛双方均可提出暂停休息,休息时间不超过5分钟;没有任何一方提出休息,则由裁判决定是否休息,休息时间不超过5分钟。
3.3.3计分规则
1、水球分值:
紫色球(3、4、5、6号球)1分,红色球(7、8号球)2分,蓝色球(0、1、2号球)3分。
2、胜负标准:
单场比赛,规定时间(10分钟)内得分多的队伍取胜;得分相同则为平局。
3、进球得分:
仿真水球被顶进左(右)球门时,左(右)半场队伍得相应的分数,每个球在一场比赛内如果被多次顶进同一队伍球门,不重复计分,被顶出球门不扣分。
4、单场比赛,记录比分和胜负。
3.3.4策略编写
2D仿真抢球博弈项目传递给策略的特有参数为判断球所处状态的标志量,该标志量用一个32位整数表示,取值0表示该球可被顶入所对应的球门,取值1表示该球已经被顶入所对应的球门,无需再重复顶入,其他值没有意义。
在策略中通过如下方式获取和使用该标志量。
intb0_l=Convert.ToInt32(mission.HtMissionVariables["Ball_0_Left_Status"]);
intb1_l=Convert.ToInt32(mission.HtMissionVariables["Ball_1_Left_Status"]);
intb2_l=Convert.ToInt32(mission.HtMissionVariables["Ball_2_Left_Status"]);
intb3_l=Convert.ToInt32(mission.HtMissionVariables["Ball_3_Left_Status"]);
intb4_l=Convert.ToInt32(mission.HtMissionVariables["Ball_4_Left_Status"]);
intb5_l=Convert.ToInt32(mission.HtMissionVariables["Ball_5_Left_Status"]);
intb6_l=Convert.ToInt32(mission.HtMissionVariables["Ball_6_Left_Status"]);
intb7_l=Convert.ToInt32(mission.HtMissionVariables["Ball_7_Left_Status"]);
intb8_l=Convert.ToInt32(mission.HtMissionVariables["Ball_8_Left_Status"]);
intb0_r=Convert.ToInt32(mission.HtMissionVariables["Ball_0_Right_Status"]);
intb1_r=Convert.ToInt32(mission.HtMissionVariables["Ball_1_Right_Status"]);
intb2_r=Convert.ToInt32(mission.HtMissionVariables["Ball_2_Right_Status"]);
intb3_r=Convert.ToInt32(mission.HtMissionVariables["Ball_3_Right_Status"]);
intb4_r=Convert.ToInt32(mission.HtMissionVariables["Ball_4_Right_Status"]);
intb5_r=Convert.ToInt32(mission.HtMissionVariables["Ball_5_Right_Status"]);
intb6_r=Convert.ToInt32(m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 国际 水中 机器人 大赛 仿真 比赛项目 规则
![提示](https://static.bdocx.com/images/bang_tan.gif)