机器人足球开发入门指南(FIRA5vs5仿真).docx
《机器人足球开发入门指南(FIRA5vs5仿真).docx》由会员分享,可在线阅读,更多相关《机器人足球开发入门指南(FIRA5vs5仿真).docx(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、名目第一章 、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 其他1第一章
2、 5V5 仿真组Middle League Simurosot介绍FIRA SimuroSot Game1.1 仿真型机器人足球介绍仿真型机器人足球SimuroSotSimuroSot 是一种仿真的软件系统,在该项竞赛中,参赛的每个机器人不是 实际的机器人,而是用计算机模拟的虚拟机器人,它主要争论竞赛策略,以软件为主,无视机器人的硬件相关的需求。竞赛中,我们仅关注的似乎软件局部,主要争论用软件来实现既定的策略,完成给定的程序规律,主体的程序对语言要求很低,主要是要求拥有清楚的规律和编程思想。换言之,SimuroSot 类型的竞赛是智力与智力的碰撞。1.2 仿真系统根本构造仿真系统是有FIRA
3、供给的仿真程序,这个程序通过 DLL动态连接库接收双方策略, 决策系统由各队供给自己的DLL 程序。场上的数据由仿真程序计算给出,DLL 接收处理并将要发给机器人的命令传给仿真程序。21.3 仿真平台及系统特点开发者:澳大利亚的Dr.Jun Jo 领导的Griffith 大学信息技术学院RSS 开发小组系统特点:1. 机器人模型:Yujin 机器人的物理模型2. 模拟准确:碰撞检测完全,碰撞处理准确承受商业玩耍引擎公司Havok 的碰撞处理引擎3. 界面:3 维承受Direct 设计界面,3D Max 模型1.4 运行环境和开发工具仿真系统:3D Robot Soccer Simulator
4、1.5a编程语言:C/C+开发环境:MS Visual C+ 6.0 / MS VS2023模板:使用仿真系统供给的源程序模板3程序模板说明:程序使用动态连接库DLL方式硬件需求:Pentiun III 600 MHz 或其以上级别的显示卡256M 系统内存具有 32M 以上显存的TNT2 或其以上级别的显示卡能够支持 800600 以上区分率的显示器软件需求:Windows98 或以上版本的操作系统DirectX 8.0 或以上的版本1.5 仿真平台的使用介绍1.5.1 运行程序的方法1. 先将自己编写好的代码编译成 dll 文件,黄队程序拷到 C:strategyyellow,蓝队程序拷到
5、 C:strategyblue。2. 在仿真平台中点击STRATEGIES 按钮,选择C+,然后输入策略文件名,点击send。3. 选择相应的竞赛模式,依据规章摆放好球和球员后,点击start,开头竞赛。1.5.2 主菜单A-各队载入策略B-选择以何种方式开球,依次为 自由球,开球, 点球, 任意球,球门球C-选择开球方黄队蓝队D-开头竞赛E-竞赛时间和比分F-修改时间和比分 G-开头一场的竞赛H 平台帮助以及规章41.5.3 策略载入菜单选择使用何种开发语言Lingo/C+ 输入蓝队程序的文件名输入黄队程序的文件名将各队程序载入平台翻开状态查看窗口相识了球和机器人的一些根本信息1.5.4 竞
6、赛把握菜单A-马上回放B-暂停C-完毕竞赛1.5.5 回放把握菜单A-从头开头回放B-从前 300 个周期开头回放C-一般速度回放D-慢速度回放E-逐帧回放F-推出回放模式G-当前进球无效51.5.6 机器人的编号Home 代表己方机器人Opp 代表对方机器人箭头所指的方向为机器人当前的正方向1.5.7 鼠标和键盘操作鼠标:在竞赛开头前或竞赛暂停时,可以用鼠标拖动球机器人到场地的任何位置键盘:在竞赛开头前或竞赛暂停时,当鼠标点击某一个机器人后可以用键来调整该机器人的角度。其次章 仿真平台与策略关系及其运动策略开发指南2.1 什么是策略程序定义:策略程序就是自己编写的能够使仿真平台中机器人依据预
7、定方式运动的程序。通俗的来说,就是能够打竞赛的程序。2.2 仿真平台与策略的运行关系2.2.1 仿真平台与策略程序的通信方式62.2.2 策略程序每个周期承受的数据仿真平台传递给策略程序的数据:1. 己方、对方机器人坐标、角度当前周期,上一周期2. 球的坐标当前周期,上一周期2.2.3 策略程序每个周期发送的数据策略程序发送给仿真平台的数据:己方homei每个机器人的左轮速pwm1和右轮速pwm22.3 仿真平台场地数据2.3.1 场地顶点坐标72.3.2 场地的各种标志及尺寸单位厘米 机器人小车为抱负模型。速度限制在-125125。供给竞赛状态GameState和控球方WhosBall两个参
8、数。度量单位:英寸如转换成厘米,需乘2.54。球员方位角单位为角度。每方队员有五名,分别用不同的颜色来标示,右上角是黑色来区分前后,中间是代表队伍的颜色,在左下角是区分不同队员的标识:0 号一般是守门员,用大红色表示;1 号用紫色表示,2 号用紫红色表示,这两个一般用作防守;3 号用绿色表示,4 号用蓝绿色表示,这两个一般用作进攻;2.4 接口代码解析程序的接口 API 函数:函数接口 Create 主要是程序的初始化,在程序开头时由系统调用,主要作用是定义全部的数据,如创立对应于:Environment-userData 的函数,其中可以用来存储我们的策略执行状态等 Extern “C” S
9、TRATEGY_API void Create (Enviroment *env);函数接口Destroy 主要是程序的销毁,在程序完毕时由系统调用,主要作用是释放自定义的数据,如删除对应于:Environment-userData 的数据Extern “C” STARTGY_API void Destroy (Enviroment *env);函数接口 Strategy 是程序的主要执行规律,由系统反复调用,每次调用相当于真实系统下计算出的机器人左右轮的速率,并发送给小车,在这里,我们必需处理针对赛场上每一时刻的对策,每秒调用 60 次,即仿真周期为 1/60 秒。8Extern “C” S
10、TARTGY_API void Strategy (Enviroment *env);实际上程序只需要这三个接口,而我们的工作就是完成这几个接口的处理。程序的根本数据定义 Vector3D/位置向量定义typedef structdouble x, y, z;Vector3D;Bounds/区域范围定义typedef structlongleft, right, top, bottom; Bounds;Robot/我方机器人的信息定义typedef structVector3D pos;/机器人的坐标位置doublerotation;/机器人当前的角度doublevelocityLeft, v
11、elocityRight;/机器人的左右轮速 Robot;OpponentRobot/对方机器人信息的定义typedef structVector3Dpos;/机器人的坐标位置doublerotation;/机器人当前的角度OpponentRobot;Ball/小球信息的定义typedefstructVector3Dpos;/小球的坐标位置Ball;Environment/最重要的数据定义,包含全部运行时的信息,由系统刷typedef structRobot homePLAYERS_PER_SIDE;/我方机器人数组OpponentRobotopponentPLAYERS_PER_SIDE;
12、/敌方机器人数组BallcurrentBall,/当前小球的位置lastBall,/上一次小球的位置10predictedBall;/调用PredictBall函数后可获得数据BoundsfieldBounds,/场地范围goalBounds;/球门的位置与范围long gameState;/当前竞赛状态各种定位球的标志变量 long whosBall;/由谁把握球void * userData;/用户自定义信息Environment;仿真系统每秒会调用dll 中的接口函数Straegy 接口 60 次,也就是我们的每个处理周期是16.67 毫秒,在每次调用时,系统通过Environment
13、* env 这个指针向我们传递当前的系统的运行信息,然后我们运算后设置我方全部机器人的左右轮速,依此来把握机器人进展足球竞赛。需要留意的是:程序对于左右半场,应当分别处理。2.5 程序开发流程1. 在 C:Programe FilesRobot Soccer v1.5a 名目下找到Stragegy Source 文件。2. 将此文件夹的代码拷出,并在 VC6.0 或.NET2023 下翻开,可以看到系统供给的接口代码,同时也有一些系统供给的策略,这些策略只是供给参考,假设想要写出好的程序, 必需改进,或重编写。3. 在我们看到的程序中像下面这样一类函数都是开发者留给我们参考的,这些以后都需要自
14、己改进,自己编写。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);/防守
15、后卫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 动作
16、函数介绍为了完成各种策略,根本的做法是用分而治之,逐步求精的方法,将主要的策略分为假设干个根底策略,每个完整的策略分别由这些根本的策略组成,而这些策略又由一些根本的行为动作方式组成,我们的机器人把握程序最终就是由这些方法和行为动作方式来构成。下面是一些根本的动作函数:void Angle (Robot *robot ,intdesired_angle) /该动作可以让机器人转到任意指定的角度int theta_e, vl, vr;theta_e = desired_angle (int) robot - rotation; while( theta_e 180) theta_e -= 360;
17、while(theta_e -180) theta_e +=360;if (theta_e 90)theta_e -= 180;if (abs(theta_e) 50)vl = ( int ) (-9.0/90.0 * (double) theta_e); vr= (int ) (9.0/90.0 * (double) theta_e);else if(abs(theta_e) 20)vl = (int ) (-11.0/90.0*(double)theta_e); vr=(int ) (11.0/90.0 *(double) theta_e);Velocity (robot, vl, vr)
18、;voidAttack (Robot * robot, Environment *env)/ 机器人向小球的位置移动的方法PredictBall (env);/估量小球的位置Position( robot , env- predictedBall.pos.x, env-predictedBall.pos.y);/移动机器人到小球的位置voidPredictBall( Environment *env)/预估小球的位置double dx = env -currentBall.pos.x env-lastBall.pos.x; double dy = env -currentBall.pos.y
19、env -lastBall.pos.y; env-predictedBall.pos.x = env-currentBall.pos.x + dx;env-predictedBall.pos.y = env-currentBall.pos.y + dy;void Position( Robot *robot, double x, double y )/该动作使移动小车到指定位置int desired_angle = 0, theta_e = 0, d_angle = 0, vl, vr, vc = 70;double dx, dy, d_e, Ka = 10.0/90.0;dx = x - r
20、obot-pos.x;/计算当前位置与目标的相对位移dy = y - robot-pos.y;d_e = sqrt(dx * dx + dy * dy);/计算机器人到目标位置的直线距离if (dx = 0 & dy = 0)/计算当前位置到目标点的角度desired_angle = 90;elsedesired_angle = (int)(180. / PI * atan2(double)(dy), (double)(dx);theta_e = desired_angle - (int)robot-rotation;/ 当前机器人的角度与机器人到目标连线角度的夹角while (theta_e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机器人 足球 开发 入门 指南 FIRA5vs5 仿真
限制150内