机器人足球技术培训(一)_第1页
机器人足球技术培训(一)_第2页
机器人足球技术培训(一)_第3页
机器人足球技术培训(一)_第4页
机器人足球技术培训(一)_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SimuroSot5vs5(仿真〕

本讲主要内容机器人足球概述仿真〔5vs5〕平台介绍使用VC开发简单的策略程序第机器人足球国际机器人足球赛事〔1〕.国际机器人足球联合会FIRA〔FederationofInternatinalRobotSoccerAssociation)〔2〕.机器人世界杯RoboCup〔TheRobotWorldCupInitiative)(1).Fira简介

FIRACUP的主要比赛工程☆MiroSot:(3对3)、(5对5)、(11对11)☆SimuroSot:(5对5)、(11对11)☆RoboSot:(3对3)☆HuroSot:(3对3)☆类人型机器人根本性能比赛:(包含四种比赛工程☆机器人队形比赛:(并行队形、串行队形、交义队形)☆多机器人追捕比赛:(4对1)☆人一机器人射门比赛:(儿童年龄不超过3岁)☆舞蹈比赛:(半自主2人组)、(半自主4人组)、(类人型组)人型机器人足球比赛全自主机器人足球比赛半自主机器人足球比赛〔5VS5)半自主机器人足球比赛〔5VS5)仿真机器人足球(5vs5)15212435机器人足球仿真系统(11Vs11)(2)RoboCup简介Robocup的比赛工程〔一〕RoboCup足球机器人比赛1、仿真组〔2D〕2、仿真组〔3D〕3、小型组4、中型组5、标准平台组6、类人组〔二〕RoboCup救援组比赛1、仿真组2、机器人组〔三〕RoboCup家庭组比赛〔四〕FIRA足球机器人比赛1、仿真组〔5:5〕2、仿真组〔11:11〕3、小型组〔3:3〕4、小型组〔5:5〕5、小型组〔11:11〕〔五〕微软〔MS〕足球机器人仿真比赛1、Nao类人仿真2、3D类人仿真3、轮式微型机器人5:5仿真4、轮式微型机器人11:11仿真Robocup仿真组RoboCup小型组〔5VS5〕RoboCup中型组〔4VS4〕RoboCup四腿组〔3VS3〕Robocup类人组四川大学机器人开展状况四川大学比赛成绩1 2004年5月参加了首届西南地区机器人足球大赛,获得SimuroSot〔5VS5〕工程冠军,SimuroSot(11vs11)工程亚军;2 2004年6月参加了在武汉举行的第五届全国机器人足球锦标赛,获得SimuroSot〔11vs11〕〔LLS〕工程比赛第二名;3 2004年10月参加了韩国釜山举行的第九届机器人足球世界杯,获得SimuroSot〔11VS11〕工程第四名;4 2005年7月参加了全国机器人足球大赛获得SimuroSot〔11vs11〕季军;5 2005年8月参加常州全国机器人大赛获得SimuroSot〔5vs5〕工程比赛二等奖。6 2006年6月在甘肃省平凉市举办的“华媒杯〞第七届全国机器人足球锦标赛中,四川大学代表队获得SimuroSot〔5vs5〕全国季军,SimuroSot〔11vs11〕一等奖的好成绩,7四川大学代表队在2006年7月举行的德国FIRA世界杯上再次获得SimuroSot〔11vs11〕第四名。8 2007年5月,四川大学再次征战在武汉举行的“思远+1杯〞第八届全国机器人足球锦标赛,获得了仿真5vs5二等奖,仿真11vs11二等奖。

图片资料微型足球机器人系统结构pcpc无线发射器无线发射器CCD摄像头CCD摄像头

微型足球机器人系统平台和底层平台:机器人足球比赛专用软件底层:表达人策略思想的C语言代码

平台动态连接库(dll)底层程序返回球场信息给机器人指定驱动力仿真系统与实体系统的比较平台相当于足球机器人系统中的机器人实体、比赛场地、CCD摄像头DLL相当于实体系统中的计算机主机,相当于机器人的大脑,它获取场上信息,然后将处理结果发送给平台

平台和DLL每个周期互相交换数据,保证了比赛的实时性理论上每个周期时长为1/60S,在一个周期,DLL接受平台传递过来的信息,然后行处理,最后将处理的结果发送给平台仿真5VS5平台平台的功能1.接收DLL传递过来的机器人驱动力。2.根据运动学模型计算机各个机器

人的速度位置等参数3.传递机器人的位置,朝向等参数给DLL4.显示模块负责显示机器人运动过程运动学模块碰撞检测动力学模块显示模块通信模块场上信息动态链接库〔策略程序〕的功能1.接收平台发送过来的球、我方与对方机器人的速度、位置等参数;2.根据敌我双方的位置和已有的策略库进行分析与决策;3.计算机出我方每个机器人的左右轮驱动力,以此完成基本的动作;4.将计算出的机器人左右轮驱动力传递给平台。动态链接库〔策略程序〕的功能通信模块信息综合分析模块策略库行为决策模块基本动作及路径规划如何让机器人动起来(1)生成DLL文件 步骤一:用C++翻开Strategy.dsw 步骤二:找到NormalGame函数,修改其中局部内容(刚接触可以不用去理会) 步骤三:编译代码〔Ctrl+F7〕 步骤四:生成DLL文件注意仅仅编译程序就可以了,不要去运行我们的大多数代码将会在normalgame中写,第一次接触时可以不去理会这一步,我们已经在里面写了局部动作如何让机器人动起来〔2〕复制策略〔strategy.dll〕步骤一:在上一步编译结束后会在底层程序文件夹中的debug或者release文件夹下面有strategy.dll文件步骤二:将上一步产生的strategy.dll复制到C盘下的Strategy文件夹下面的yellow或者blue文件夹下。复制过去以后可以修改文件名〔方便下一步装载策略时输入方便,比方在这里我们改成1.dll〕,但是后缀名〔dll〕不能变。至于是复制到yellow,还是blue就要看你测试时用哪一方了,刚开始的时候我们可以给两个文件夹里都复制进去在安装平台的时候默认的会在C盘下新建strategy文件下,几起里面的子文件夹yellow和blue如何让机器人动起来〔3〕将dll文件载入到平台中步骤一:翻开平台,单击右上角的STRATEGIS选项,出现如右图所示的效果步骤二:单击blue和yellow后面的Lingo将其改成c++;在blue或者yellow下面输入我们放到相应文件夹下面文件的文件名步骤三:点击下面的Send,然后点击START,这样机器人就可以按照我们的策略运动了

假设我们在c:\strategy\yellow中放了一个1.dll,那现在就可以在yellow下面输入1〔不需要加后缀名〕如何生成DLL编译文件1.组建—>组建2.Ctrl+F7release文件夹下或者debug文件夹下的strategy.dll就是我们生成的策略文件〔2〕实现简单踢球动作Kick(Environment*env,introbot,Vector3DToPos)让robot把球踢到ToPos的位置例:(将这段代码插入到NormalGame函数中,如以下图) Vector3Dgo; go.x=93; go.y=43; Kick(env,1,go);然后按照前面的步骤编译,复制,装载,运行DLL即可以看到效果实现简单踢球动作

Vector3Dgo;定义一个Vector3D类型的变量,Vector3D是底层程序中定义的一个结构体,typedefstruct{doublex,y,z;}Vector3D;,这个结构体表示三维坐标上的一个点;

go.x=93;

go.y=43;给go这个点赋值,相当于确定三维坐标上GO这个点的坐标 Kick(env,1,go);调用Kick函数让1号机器人将球踢到go这个点,env是环境变量用于保存场上信息。从协会网站上可以下载机器人编号01324蓝方和黄方以球场中心点对称01234机器人跑位PositionAndStop(Environment*env,introbot,Vector3Dpos,doublebestangle,doublelimit) 让robot跑到pos,并且停下来,bestangle是停下来之后的朝向,limit控制停在pos附近的距离例:〔同样在NormalGame函数中插入以下代码〕 Vector3Dgo; go.x=40; go.y=20; PositionAndStop(env,2,go);机器人角度090-90180-180机器人模型是边长约等于3的小车,以不同的颜色区分。机器人的角度初始状态下除了0号机器人角度为90度之外,其余机器人角度均为0度,常用底层函数voidPositionAndStopX(Environment*env,introbot,Vector3Dpos,doubleXangle,doublelimit)//PositionAndStopX让robot跑到pos,并且停下来原地旋转,Xangle 旋转的角速度,limit 控制停在pos附近的距离常用底层函数voidPositionAndStop(Environment*env,introbot,Vector3Dpos,doublebestangle,doublelimit)//PositionAndStop让robot跑到pos,并且停下来,bestangle是停下来之后的朝向,limit控制停在pos附近的距离常用底层函数voidPositionAndThrough(Environment*env,introbot,Vector3Dpos,doubleMAX)//PositionAndThrough让robot以最快MAX冲向pos,中间没有减速控制voidPAngle(Environment*env,introbot,doubleangle,doublespeed)//PAngle让robot朝angle的方向跑,并且speed控制它的最大轮速常用底层函数voidAngle(Environment*env,introbot,doubleangle)//Angle让robot转到angle的方向voidAngle(Environment*env,introbot,Vector3Dpos)

//Angle让robot转到正对pos的方向常用底层函数voidKick(Environment*env,introbot,Vector3DToPos)

//Kick 让robot把球踢到ToPos的位置voidPredictBall(Environment*env,intsteps)

//预测steps周期后球的位置,结果保存在p->preball中常用底层函数intCount(Environment*env,introbot,Vector3Dpos)//计算robot跑到pos点所需要的周期Vector3DMeetball_p(Environment*env,introbot)//求出robot追到球的最正确位置常用底层函数voidGoalie(Environment*env,introbot)//守门员函数,robot指定我方守门员的编号,平台刚翻开的时候默认守门员为0号,机器人,所在建议大家还是让0号机器人做守门员吧。底层中定义的一些常量constlongPLAYERS_PER_SIDE=5;//表示每一方机器人个数constdoubleFTOP=77.2392;constdoubleFBOT=6.3730;constdoubleFRIGHT=93.4259;constdoubleFLEFT=6.8118;//FTOP,FBOT,FLEFT,FRIGHT分别表示球场上、下、左、右四个边界线底层中定义的一些常量constdoublePENALTYRIGHT=78.329132; //点球点的X坐标constdoublePENALTYLEFT=22.216028;//点球点的Y坐标constlongCAR=3; //小车边长2.95常用变量及结构体typedefstruct{ doublex,y,z;}Vector3D;//Vector3D可以用来定义球场的一个点。其中Z坐标在定义点时无实际意义。例如:Vector3Dpos1={10,20,0};或者Vector3Dpos2;pos2.x=10;pos2.y=20;常用变量及结构体typedefstruct{ Vector3Dpos;}Ball;//Ball结构体用来表示球的位置常用变量及结构体typedefstruct{ Vector3Dpos;//机器人所在的位置 doublerotation;//机器人朝向 doublevelocityLeft,velocityRight;//机器人左右轮轮速〔驱动力〕}Robot;例如在NormalGame函数中,p->robot[1].pos就表示我方1号机器人当前的坐标〔注意:Robot结构体是用来表示我方机器人的〕常用变量及结构体typedefstruct{ Vector3Dpos;//机器人的位置 doublerotation;//机器人的朝向}OpponentRobot;例如在NormalGame函数中,p->opp[1].pos就表示对方1号机器人当前的坐标〔注意:OpponentRobot结构体是用来表示对方机器人的〕常用变量及结构体typedefstruct{ Vector3Dmyoldpos[PLAYERS_PER_SIDE]; //记录我方队员的旧坐标,方向

Vector3Dmyspeed[PLAYERS_PER_SIDE]; //纪录我方队员的速度,跑位的方向

Vector3Dmyoldvelocity[PLAYERS_PER_SIDE];//纪录我方队员上次驱动力

Vector3Dopoldpos[PLAYERS_PER_SIDE];//记录对方队员的旧坐标,方向

Vector3Dopspeed[PLAYERS_PER_SIDE];//纪录对方队员的速度,跑位的方向

Robotrobot[PLAYERS_PER_SIDE]; //我方球员

OpponentRoboto

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论