机器人足球开发入门指南(FIRA 5 vs 5 仿真)
- 格式:doc
- 大小:422.50 KB
- 文档页数:22
2019 FIRA仿真5自动化平台使用手册FIRA国际机器人足球仿真平台中型场地组是最早出现的FIRA仿真平台,由澳大利亚GRIFFITH大学主持开发,该平台基于Havok引擎开发,具有真实感强,能很好的仿真实物机器人的真实物理碰撞等特性,并且随着操作系统的升级,能一直兼容各个版本的Windows操作系统,平台具有良好的稳定性。
2018年FIRA国际考虑到原有仿真5比赛过程中双方队员操作机器人摆放,平台不够自动化,对原有平台进行了自动化改进。
自动比赛裁判系统可以让比赛队伍通过程序自动摆放机器人,免除人工摆放,省去了人工费时费力的工作,使得平台工作更加自动化和策略可以更好地智能化。
以往比赛规则没有对双方在球场四周推球进行限定,2018年FIRA国际组织修订了规则,禁止比赛双方在比赛四周推球的消耗比赛时间,极大提高了比赛的观赏性和更有效地利用比赛时间。
对于比赛日志文件的生成和发布,过去比赛队伍通过视频录像的方式,费时、费力、又费磁盘空间,新的自动化平台自动将比赛双方的比赛空间信息记录形成日志文件,赛后发布在互联网,方便大家的交流、学习和进步。
1、平台下载地址https:///zerowind168/SIM5-exe/raw/master/SIM5Installation.exe 2、平台运行和开发环境(1)硬件需求:1)酷睿五代i5处理器i5-6400 或更高性能的CPU;2G或以上系统内存;10G 以上可以硬盘空间。
2)具有1G显存或以上级别的显示卡。
3)至少可以支持1920x1080分辨率的17英寸及以上显示器。
(2)软件需求:1)W indows 7 旗舰版的操作系统。
2)D irectX 8.0或以上版本。
3)C++语言开发动态链接库程序,可以使用VC6及以上环境开发。
3、平台文件组成将FIRA仿真5平台安装包启动运行,需要将SimuroSot5仿真机器人足球比赛平台安装到C盘根目录(C:\),安装程序在C盘根目录下建立一个文件夹,名字为Strategy,如图1所示,文件结构组成如下。
Fira仿真5v5比赛规则
1.FREE BALL: (争球)
判罚条件:球长时间停在角落中无法移动,判FREE BALL
罚球方式:只允许在1/4球场范围内有1名防守队员和1名进攻队员参与争球,如图所示
2.GOAL KICK (球门球)
判罚条件:条件1和条件2任意一个成立均可判罚GOAL KICK
条件1:两名或两名以上进攻队员进入对方小禁区,如图
条件2:四名以及四名以上队员进入对方大禁区,都导致判罚GOAL KICK
注:“进入禁区”的判定条件:球员有50%面积的身位或以上进入即认定为“进入”,如图示。
对“进入”的定义与下面相同,不再赘述
罚球方式:守门员开球,球置于大禁区内,同时对方队员须站在半场范围以外,如图
3.PENALTY KICK (点球)
判罚条件:条件1和条件2任意一个成立均可判罚PENALTY KICK 条件1:两名或两名以上防守队员进入己方小禁区,如图
条件2:四名或四名以上防守队员进入己方大禁区,如图
罚球方式:除去罚球队员与守门员外,所有队员退到半场以后,守门员必须贴底线。
FIRA 足球机器人5v5 仿真平台Robot Soccer V1.5a手册感谢本软件能够和大家见面,必须得感谢很多人,但首先和必须要感谢的就是John Thornton,没有他耐心的给予我们很多关于仿真机器人的指导,我们恐怕很难做出今天的程序。
在他的帮助下,我们的软件才能尽量写的符合实际的机器人比赛。
我们还必须感谢Moon, Dr Jun Jo, Michael Pagano, Anthony, Greg Cranitch, Karen Noller(排名不分先后)还有其他的许多学院老师所付出的耐心、试验和幽默对我们和我们机器人的帮助。
系统要求Pentium III 600 MHz256 M 内存TNT2 3d 显卡32 M 显存24x CDROM显示器最小分辨率800 x 600声卡Microsoft Windows 98Direct X 8.010 M 磁盘空间开发要求如果你想进一步深入的开发足球机器人策略,以下几点是必须的:Director 8.5Programming Experience in LingoThe book “Director 8.5 Shockwave Studio: training from the source”安装向导点击Robot Soccer Simulator 安装程序开始软件的安装,选择你的安装位置(建议安装在C 盘),一旦安装成功完成,程序将自动在开始菜单组里面加入“Robot Soccer Simulator”的启动菜单,并且在桌面上创建一个图标。
启动程序时只要双击桌面上的图标或是点击开始菜单里的“Robot Soccer Simulator”启动项目,便可启动程序了。
快捷键比赛开始前或是“Stop”状态:->键:将一个选中的机器人沿顺时针方向旋转<-键:将一个选中的机器人沿逆时针方向旋转回放过程中的暂停状态:->键:快进一帧<-键:后退一帧用户界面启动程序后,您将看到如下的界面:左侧是比赛区域,右侧是菜单栏和比赛信息。
FIRA仿真5VS5机器人的弧线射门算法设计作者:王强史颖刚叶冰慧寇小希来源:《电脑知识与技术》2021年第16期摘要:在FIRA仿真足球比赛中,机器人能对赛场形式做出准确判断,并抓住有利时机快速、准确地射门是赢得比赛的关键。
为提高仿真足球机器人的进攻效率,该文提出了一种FIRA仿真5VS5机器人弧线射门算法,通过判断足球是否位于机器人射门范围内,调整机器人的初始位置,并实时调整机器人前进的目标点,使机器人沿着平滑的弧线轨迹将位姿调整到射门状态,再进行射门。
该研究通过仿真实验验证了该算法的正确性和优越性,实验结果表明该算法能有效提高仿真足球机器人的有效射门次数和射门的成功率。
关键词:足球机器人;弧线射门;调整位姿;算法设计中图分类号:TP391 文献标识码:A文章编号:1009-3044(2021)16-0012-04开放科学(资源服务)标识码(OSID):1 背景仿真足球机器人采用软件仿真系统研究机器人踢足球过程中的动作、策略,对实际的足球机器人设计具有重要参考意义。
FIRA仿真5VS5机器人比赛中,仿真足球机器人的策略执行[1-3]、战术配合和路径规划等都是比赛的重要部分,而仿真机器人射门能力是进攻能力的重要指标,是决定比赛胜负的关键因素之一。
仿真机器人足球比赛中易于实现的基本射门算法,其核心思想是选取距离足球较近的一个位置,作为仿真机器人的行进目标点,仿真机器人沿直线从初始位置到达该点,再调整自身角度,沿直线将球射入球门。
这种算法中机器人运动轨迹单一,容易受到对方机器人干扰,并且没有设定射门目标点,甚至会出现机器人将球射入己方球门的情况。
针对上述问题,本文提出了一种FIRA仿真5VS5机器人的弧线射门算法[4]。
机器人首先判断足球是否位于射门范围内,然后调整机器人的初始位置,并实时调整机器人前进的目标点,使机器人沿着平滑弧线轨迹将自身位姿调整到射门状态,再进行射门。
仿真实验表明了该算法的正确性和优越性,能有效提高仿真足球机器人的有效射门次数和射门成功率。
FIRA SimuroSot 5vs5 (仿真)比赛规则1.介绍以下规则用于FIRA 中型组仿真比赛2. 仿真平台1. 计算机配置2. 场地尺寸赛场为黑色(不反光的)木质长方形场地,其尺寸是220cm X 180cm ,带有5cm 高,2.5cm 厚的围墙。
围墙的侧面为白色,围墙顶部为黑色。
在场地的四角固定四个7cm x 7cm的等腰三角形以避免球进入角落。
3.场上标记比赛场地标记如图 1 所示。
中圈半径是25cm 。
作为罚球区的一部分的圆弧沿球门线长25cm,垂直于球门线5cm主要直线/圆弧(中线、门区边界线和中圈)均为白色,3mm宽。
争球时机器人的站位标记为灰色。
4.球门, 门线与门区球门宽40cm.门线是恰好位于球门前长40cm的直线。
门区(图1中的区域A)包括位于球门前尺寸为50cm x 15cm 的长方形区域。
5.罚球区罚球区(图1中的区域A,B)包括球门前尺寸为80cn X 35cm的长方形区域及其附属弧形区域.3. 比赛过程1. 时间比赛分两个半场,每半场 5 分钟,中场休息10 分钟。
在换人、暂停或其它必要情况下,官方计时员将暂停计时。
如果一支球队在中场休息时间没有准备好,不能继续开始下半场比赛,休息时间可以延长 5 分钟。
若在延时之后球队仍未准备好继续比赛,则将取消其比赛资格。
Figure 1: Dimensions and markings on the field2.暂停操作者可向裁判要求暂停。
在一场比赛中每队有权暂停2次,每次将持续2分钟。
3.记时仿真平台上的记时器不能代替官方记时器,比赛中应当使用专门的记时器•4•比赛中断只有在下列情况下比赛中断并由一个操作者重新布置机器人:1•破门得分或出现犯规2•裁判员判点球,争球,球门球,任意球3•仿真平台出现问题4 •有不可预知的情况发生,如计算机自动重启,突然停电5•运动员如果一个机器人位于己方的球门区内,应当被视为守门员。
(一个机器人有多于50 %在门区内就认为该机器人在门区内,这一点由裁判员来判断。
基于FIRA 5VS5仿真机器人足球防守策略的研究作者:宇海萍冯灵清来源:《计算机时代》2018年第07期摘要:针对FIRA 5VS5机器人仿真足球项目,在研究已有比赛策略的基础上,提出了分区协同防守策略,并对策略中的角色分配、守门员策略和防守球员防守策略进行了深入的分析,最终给出了防守流程和算法设计。
平台验证和比赛成绩表明,该策略能大大提高防守率,达到较好的防守效果。
关键词: Fira 5vs5;仿真机器人足球;防守;策略中图分类号:TP242 文献标志码:A 文章编号:1006-8228(2018)07-13-04Abstract: In view of the FIRA 5vs5 robot soccer simulation project, on the basis of the existing competition strategy, put forward the collaborative partition defense strategy, and carried on the thorough analysis of role assignment strategy, goalkeeper strategy and defense strategy,finally give the defensive process and algorithm design. The results of platform verification and competition show that these strategy can greatly improve the defense rate and achieve good defensive effect.Key words: FIRA 5VS5; simulation robot soccer; defense; strategy0 引言机器人足球仿真赛是一种用软件模拟足球赛场的比赛,其主要内容是研究比赛策略,通过将策略输入软件来控制机器人,完成跑位、踢球、传球、射门、防守等动作。
FIRA机器人足球仿真5vs5平台技术研究摘要:本文旨在研究FIRA机器人仿真足球比赛平台。
多智能体系统是分布式人工智能的一个主要领域,而机器人足球是典型的对智能体系统,又是研究分布式人工智能的理想平台,在多能体系统中,不但研究了每个智能体本身的体系结构,而且着重的研究了多智能体之间的协调与合作问题,为了使进攻和防守策略设计的更有效,策略中采用场地分区将机器人进行详细的任务分工,使得每个机器人个体能够到达很好团队合作。
本文总结了几个机器人足球仿真的主要技术特点和对它们进行的研究分析,经过仿真平台测试有效。
关键词:FIRA 多智能体机器人足球仿真分布式测试平台一、引言足球机器人系统是近年来十分活泼的高科技竞技系统。
机器人足球系统融合了机器人学、机电一体化、通讯与计算机技术、图像处理、传感器数据融合、决策与对策、模糊神经网络、人工生命与智能控制等学科内容,是研究多智能体系统理论的良好实验平台。
各种先进的方法和理论都在其中得到使用和验证。
5vs5足球机器人仿真是多机器人合作的典型代表。
其控制系统包括3个子系统:视觉子系统〔实时检测场上信息〕、决策子系统和机器人(小车)系统。
决策系统的任务是根据比赛场上的态势做出是进攻还是防守的决定,给己方的每个机器人分配角色,并且协调不同机器人之间的合作,这一系列动作都是通过控制机器人左右轮的速度来实现的。
比赛成功与否很大程图1二、决策系统描述控制层、核心功能层。
分别对应CORBA标准中的OMA体系结构放入对象效劳、通用设施、领域接口和应用接口。
(1)根底效劳与设施根底效劳与效劳层建筑在异构环境层之上,该层的主要目的是隐藏在复杂技术细节与硬件特性,屏蔽异构环境,为管理控制层提供统一的编程接口、交互协议,如HTTP、TCP/IP协议、HOP等,从而保证系统的跨平台的能力和在不同的应用系统之间数据交换的能力。
根底效劳与设施层以OMG 的CORBA、CORBA、CORBA Service、CORBA Facility 为根底,具备对象通信、命名效劳、事务处理、数据接口等功能。
目录第一章、5V5仿真组(Middle Simurosot)介绍Fira Simurosot Game1.1仿真型机器人足球介绍1.2仿真系统基本结构1.3仿真平台及系统特点1.4运行环境和开发工具1.5仿真平台的使用介绍第二章、仿真平台与策略关系及其运动策略开发指南2.1 什么是策略程序2.2 仿真平台与策略的运行关系2.3 仿真平台场地数据2.4 接口代码解析2.5 程序开发流程2.6 动作函数介绍2.7 在策略中调用动作的基本方法2.8 简单策略开发2.9 各种定位球第三章、比赛规则3.1 名词解释3.2 比赛规则3.3 犯规与处罚3.4 裁判3.5 环境3.6 其他第一章5V5仿真组(Middle League Simurosot)介绍FIRA SimuroSot Game1.1仿真型机器人足球介绍仿真型机器人足球(SimuroSot)SimuroSot 是一种仿真的软件系统,在该项比赛中,参赛的每个机器人不是实际的机器人,而是用计算机模拟的虚拟机器人,它主要研究比赛策略,以软件为主,忽略机器人的硬件相关的需求。
比赛中,我们仅关注的好似软件部分,主要研究用软件来实现既定的策略,完成给定的程序逻辑,主体的程序对语言要求很低,主要是要求拥有清晰的逻辑和编程思想。
换言之,SimuroSot 类型的比赛是智力与智力的碰撞。
1.2仿真系统基本结构仿真系统是有FIRA 提供的仿真程序,这个程序通过DLL(动态连接库)接收双方策略,决策系统由各队提供自己的DLL程序。
场上的数据由仿真程序计算给出,DLL接收处理并将要发给机器人的命令传给仿真程序。
1.3仿真平台及系统特点开发者:澳大利亚的Dr.Jun Jo 领导的Griffith大学信息技术学院RSS开发小组系统特点:1.机器人模型:Y ujin机器人的物理模型2.模拟精确:碰撞检测完全,碰撞处理精确(采用商业游戏引擎公司Havok的碰撞处理引擎)3.界面:3维(采用Direct设计界面,3D Max模型)1.4运行环境和开发工具仿真系统:3D Robot Soccer Simulator 1.5a编程语言:C/C++开发环境:MS Visual C++ 6.0 / MS VS2003模板:使用仿真系统提供的源程序模板程序模板说明:程序使用动态连接库(DLL)方式硬件需求:Pentiun III 600 MHz或其以上级别的显示卡256M系统内存具有32M以上显存的TNT2或其以上级别的显示卡能够支持800×600以上分辨率的显示器软件需求:Windows98或以上版本的操作系统DirectX 8.0或以上的版本1.5仿真平台的使用介绍1.5.1运行程序的方法1.先将自己编写好的代码编译成dll文件,黄队程序拷到C:\strategy\yellow,蓝队程序拷到C:\strategy\blue。
2.在仿真平台中点击STRA TEGIES按钮,选择C++,然后输入策略文件名,点击send。
3.选择相应的比赛模式,按照规则摆放好球和球员后,点击start,开始比赛。
1.5.2主菜单A-各队载入策略B-选择以何种方式开球,依次为(自由球,开球,点球,任意球,球门球)C-选择开球方黄队蓝队D-开始比赛E-比赛时间和比分F-修改时间和比分G-开始一场新的比赛H 平台帮助以及规则1.5.3策略载入菜单Lingo/C++)输入黄队程序的文件名将各队程序载入平台打开状态查看窗口(相识了球和机器人的一些基本信息)1.5.4比赛控制菜单A-立即回放B-暂停C-结束比赛1.5.5回放控制菜单A-从头开始回放B-从前300个周期开始回放C-一般速度回放D-慢速度回放E-逐帧回放F-推出回放模式G-当前进球无效1.5.6机器人的编号Home代表己方机器人Opp代表对方机器人箭头所指的方向为机器人当前的正方向1.5.7鼠标和键盘操作鼠标:在比赛开始前或比赛暂停时,可以用鼠标拖动球机器人到场地的任何位置键盘:在比赛开始前或比赛暂停时,当鼠标点击某一个机器人后可以用<-或->键来调整该机器人的角度。
第二章仿真平台与策略关系及其运动策略开发指南2.1什么是策略程序定义:策略程序就是自己编写的能够使仿真平台中机器人按照预定方式运动的程序。
通俗的来说,就是能够打比赛的程序。
2.2仿真平台与策略的运行关系2.2.1仿真平台与策略程序的通信方式2.2.2策略程序每个周期接受的数据仿真平台传递给策略程序的数据:1.己方、对方机器人坐标、角度(当前周期,上一周期)2.球的坐标(当前周期,上一周期)2.2.3策略程序每个周期发送的数据策略程序发送给仿真平台的数据:己方(home[i])每个机器人的左轮速(pwm1)和右轮速(pwm2)2.3仿真平台场地数据2.3.1 场地顶点坐标2.3.2 场地的各种标志及尺寸单位(厘米)机器人小车为理想模型。
速度限制在-125~125。
提供比赛状态(GameState)和控球方(WhosBall)两个参数。
度量单位:英寸(如转换成厘米,需乘2.54)。
球员方位角单位为角度。
每方队员有五名,分别用不同的颜色来标示,右上角是黑色来区分前后,中间是代表队伍的颜色,在左下角是区分不同队员的标识:0号一般是守门员,用大红色表示;1号用紫色表示,2号用紫红色表示,这两个一般用作防守;3号用绿色表示,4号用蓝绿色表示,这两个一般用作进攻;2.4接口代码解析程序的接口API函数:函数接口Create主要是程序的初始化,在程序开始时由系统调用,主要作用是定义所有的数据,如创建对应于:Environment->userData的函数,其中可以用来存储我们的策略执行状态等Extern “C” STRATEGY_API void Create (Enviroment *env);函数接口Destroy主要是程序的销毁,在程序结束时由系统调用,主要作用是释放自定义的数据,如删除对应于:Environment->userData的数据Extern “C” STARTGY_API void Destroy (Enviroment *env);函数接口Strategy是程序的主要执行逻辑,由系统反复调用,每次调用相当于真实系统下计算出新的机器人左右轮的速率,并发送给小车,在这里,我们必须处理针对赛场上每一时刻的对策,每秒调用60次,即仿真周期为1/60秒。
Extern “C” STARTGY_API void Strategy (Enviroment *env);实际上程序只需要这三个接口,而我们的工作就是完成这几个接口的处理。
程序的基本数据定义Vector3D //位置向量定义typedef struct{double x, y, z;}Vector3D;Bounds //区域范围定义typedef struct{long left, right, top, bottom;} Bounds;Robot //我方机器人的信息定义typedef struct{Vector3D pos; //机器人的坐标位置double rotation; //机器人当前的角度double velocityLeft, velocityRight; //机器人的左右轮速} Robot;OpponentRobot //对方机器人信息的定义typedef struct{Vector3D pos; //机器人的坐标位置double rotation; //机器人当前的角度}OpponentRobot;Ball //小球信息的定义typedef struct{Vector3D pos; //小球的坐标位置}Ball;Environment //最重要的数据定义,包含所有运行时的信息,由系统刷新typedef struct{Robot home[PLAYERS_PER_SIDE];//我方机器人数组OpponentRobot opponent[PLAYERS_PER_SIDE];//敌方机器人数组Ball currentBall, //当前小球的位置lastBall, //上一次小球的位置predictedBall; //调用PredictBall()函数后可获得数据Bounds fieldBounds, //场地范围goalBounds; //球门的位置与范围long gameState; //当前比赛状态(各种定位球的标志变量)long whosBall; //由谁控制球void * userData; //用户自定义信息}Environment;仿真系统每秒会调用dll中的接口函数Straegy接口60次,也就是我们的每个处理周期是16.67毫秒,在每次调用时,系统通过Environment * env这个指针向我们传递当前的系统的运行信息,然后我们运算后设置我方所有机器人的左右轮速,依此来控制机器人进行足球比赛。
需要注意的是:程序对于左右半场,应该分别处理。
2.5程序开发流程1.在C:\Programe Files\Robot Soccer v1.5a目录下找到Stragegy Source文件。
2.将此文件夹的代码拷出,并在VC6.0或.NET2003下打开,可以看到系统提供的接口代码,同时也有一些系统提供的策略,这些策略只是提供参考,如果想要写出好的程序,必须改进,或重新编写。
3.在我们看到的程序中像下面这样一类函数都是开发者留给我们参考的,这些以后都需要自己改进,自己编写。
void PredictBall(Environment *env); //预测球的位置void Goaliel(Robot *robot, Envirnment *env); //守门员策略void NearBound2(Robot *robot, double vl, double vr, Envirnment *env);void Attack2(Robot *robot, Environment *env); //机器人向小球移动方法void Defend(Robot *robot, Environment *env, double low, double high); //防守(后卫)void MoonAttack(Robot *robot, Environment *env); //移动攻击void MoonFollowOpponent(Robot *robot , OpponentRobot *opponent); //跟随对方球员void Velocity(Robot *robot, int vl, int vr); //给机器人发送左右轮速void Angle(Robot *robot , int desired_angle); //机器人转到指定角度void Positon (Robot *robot, double x, double y); //机器人移动到指定的坐标2.6动作函数介绍为了完成各种策略,基本的做法是用分而治之,逐步求精的方法,将主要的策略分为若干个基础策略,每个完整的策略分别由这些基本的策略组成,而这些策略又由一些基本的行为动作方式组成,我们的机器人控制程序最后就是由这些方法和行为动作方式来构成。