机器人足球开发入门指南(FIRA 5 vs 5 仿真)

合集下载

FIRA仿真5自动化平台使用手册(2019)

FIRA仿真5自动化平台使用手册(2019)

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所示,文件结构组成如下。

fira5v5项目说明

fira5v5项目说明
void MoonFollowOpponent(Robot *robot , OpponentRobot *opponent); //跟随对方球员
void Velocity(Robot *robot, int vl, int vr); //给机器人发送左右轮速
void Angle(Robot *robot , int desired_angle); //机器人转到指定角度
(二)仿真平台与策略关系及其运动策略开发指南
2.1什么是策略程序
定义:策略程序就是自己编写的能够使仿真平台中机器人按照预定方式运动的程序。通俗的来说,就是能够打比赛的程序。
2.2仿真平台与策略的运行关系
2.2.1仿真平台与策略程序的通信方式
2.2.2策略程序每个周期接受的数据
仿真平台传递给策略程序的数据:
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下打开,可以看到系统提供的接口代码,同时也有一些系统提供的策略,这些策略只是提供参考,如果想要写出好的程序,必须改进,或重新编写。

FIRA 仿真5vs5(08版)

FIRA 仿真5vs5(08版)

防守函数
防守函数的几个要点 1,只有在球后方一定距离才能保证当球速很 快时不把球漏过。 2,当有可能造成乌龙球时要第一时间改变方 向 3,保证小禁区内不超过1名以上的队员,否 则将会判罚点球
修改调试程序方法及经验
1,做好调试很多次的心理准备。 由于坐标等原因,即使一个思路很清晰 的函数,在实际编程时也会出现很多错误, 所以完整的实现一个思想调试四五十个dll 很正常, 2,有新的想法尽量尝试。 虽然很多新奇想法都实现不了,但在尝 试的过程中会加深对平台本身的认识。
角色分配程序总体构架
固定角色分配 每个机器人固定角色,分工清晰,便于发现错 误,及时修改
动态角色分配 以距离球的远近来分配任务,可以第一时间接 触到球,掌握场上主动,体现团队优势
目前应用:二者相结合
进攻函数
进攻函数主题思想 1,只要把球推到对方半场90%是有利的。 2,要想有机会推对方半场必须要想办法在 不碰到球的情况下绕到球的后面。 3,旋转踢球70%情况下比推球效果好 4,只有强化边线进攻才能保证不被对方边 线进球。
基本动作的编写
例程二
实现二号小车的旋转运动
代码
extern "C" STRATEGY_API void Strategy ( Environment *env ) { env->home[1].velocityLeft=80; env->home[1].velocityRight=-80; } 实例 2.dll
平台环境参数
场地大小 左右 6.8___93.4 上下 6.3___77.2 机器人大小 3.2*3.2 正方形 球大小 半径为0.9 小车速度 -125,125
五对五仿真基本规则
比赛时间十分钟,各半场五分钟(人工计

FIRA仿真5vs5比赛规则

FIRA仿真5vs5比赛规则

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 仿真平台

FIRA 足球机器人5v5 仿真平台

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机器人的弧线射门算法设计

FIRA仿真5VS5机器人的弧线射门算法设计

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平台手册

FIRA平台手册

括中圈内布置自己的机器人。防守方可自由的在本方半场除了中圈内布置机器人。球必须在
球场中圈中心。
用户移动机器人可以通过点击并拖动场地上的机器人图标来完成。旋转机器人可在选中
机器人后通过键盘上的左右箭头来实现。
7、机器人位置布置好后直接点击“
Start”,比赛即可开始。
在比赛过程当中,你有三个菜单可以操作。“Replay”可以观看回放。
系统要求
Pentium
III600
MHz
256
M内存
TNT23d显卡
32
M显存
24x
CDROM
显示器最小分辨率
800
x600
声卡
MicrosoftWindows
98
DirectX
8.0
10
M磁盘空间
开发要求
Y3.pos.z”。系统默认
Y3处于防守位置。
“Y4”是这个机器人在策略程序中的全局变量,它的位置坐标可以通过“
Y4.pos.x”和
“Y4.pos.y”来获得。它的旋转可以通过“
Y4.pos.z”。系统默认
Y4处于进攻位置。
“Y5”是这个机器人在策略程序中的全局变量,它的位置坐标可以通过“
STRATEGY”按钮。
3、输入两队策略文件的名字,点击“
SEND”。
4、回到主菜单,点击“
Place
Kick”。
5、然后选择开球一方,点击“
Blue
Team”或是“
Yellow
Team”。
6、双方可以在规则允许的范围内排列本方的机器人。进攻方可以自由的在本方半场包

FIRA仿真型机器人足球(Simuro5v5)比赛规则中文版

FIRA仿真型机器人足球(Simuro5v5)比赛规则中文版

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 %在门区内就认为该机器人在门区内,这一点由裁判员来判断。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录第一章、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动作函数介绍为了完成各种策略,基本的做法是用分而治之,逐步求精的方法,将主要的策略分为若干个基础策略,每个完整的策略分别由这些基本的策略组成,而这些策略又由一些基本的行为动作方式组成,我们的机器人控制程序最后就是由这些方法和行为动作方式来构成。

相关文档
最新文档