机器人足球技术培训(一)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

机器人足球技术培训(基础篇)SimuroSot5vs5(仿真)本讲主要内容机器人足球概述仿真(5vs5)平台介绍使用VC开发简单的策略程序第机器人技术机器人技术是在新技术革命中迅速发展起来的一项高新技术,是一门综合性学科,它综合了多种基础学科、技术学科及新兴科技领域的多方面知识,突出地体现了当代科学技术发展的高度分化而又高度综合这一特点,并已在众多的科学领域与工业部门中得到应用,且显示出强大的生命力。因此世界各国都非常重视机器人技术的研究。机器人足球机器人足球比赛淋漓尽致地表现现实世界的基本特征,即分散存在的一个群体与另一个群体在动态复杂环境中如何以实时方式进行竞争和行动决策的问题.在足球比赛中充满着队员之间协调与合作之美,决策与智谋之美,生命与力量之美及超级的艺术之美。机器人足球,它以高技术对抗的形式赢得了学术界的认同,一些学术刊物刊登了机器人足球的专辑,一些有影响的国际学术会议也安排了专题讨论。一年一度的FIRACUP也同时召开国际学术会议,推动相关科技的发展。机器人足球成为高科技与体育,学术与兴趣,科技与娱乐的完美结合,这便是它发展的活力所在。国际机器人足球赛事(1).国际机器人足球联合会FIRA(FederationofInternatinalRobotSoccerAssociation)(2).机器人世界杯RoboCup(TheRobotWorldCupInitiative)(1).Fira简介国际机器人足球联合会,成立于1997年6月,总部设在韩国大田的韩国科学(技术)(KAIST)。已有30余个国家的近百个学校与科研院所是其成员单位,主要分布在亚洲、澳洲、北美和南美洲等地区。Fira从1996年开始举办微型机器人的世界杯足球赛(MiroSot—Micro-RobotSoccerTournament)。由于前两届只进行了MiroSot类型的机器人足球赛,故那两届世界杯赛分别称为MiroSot‘96和MiroSot’97。以后机器人足球比赛类型增多了,世界杯赛便称之为FIRACUP。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简介机器人世界杯,成立于1996年,总部设在名古屋,是国际人工智能学会组织的国际机器人足球协会。第一届机器人足球世界杯赛于1997年8月25日在日本名古屋,与国际最高级别的人工智能学术会议--国际人工智能联合大会(IJCAI-97)同时举行。来自美、欧、日、澳的40多支球队参加了比赛,5000多名观众现场观看了比赛。1998年7月,正当第16届世界杯足球赛渐入佳境之时,第二届机器人足球世界杯赛在巴黎隆重举行,60多支球队参加了比赛。1999年7月,第三届机器人足球世界杯赛在瑞典斯德哥尔摩举行,参赛队多达90余支。一些著名的大学、研究机构和大公司均参与了相关的活动和比赛。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类人组四川大学机器人发展状况四川大学于2003年开始机器人足球技术的培训和训练,开始时就有10多各学院的16支队伍参见了培训和比赛。我校机器人足球代表队由制造学院、生命学院、数学学院等各学院本科生、研究生组成,制造学院姚进教授为指导老师,几年来我校代表队已经参加了近10次全国性机器人足球比赛,参加2次世界杯大赛(FIRACUP),并取得了较好的成绩。现在我们每年都要进行一次大规模的机器人足球培训,越来越多的机器人足球爱好者参与到我们的队伍中来。四川大学比赛成绩12004年5月参加了首届西南地区机器人足球大赛,获得SimuroSot(5VS5)项目冠军,SimuroSot(11vs11)项目亚军;22004年6月参加了在武汉举行的第五届全国机器人足球锦标赛,获得SimuroSot(11vs11)(LLS)项目比赛第二名;32004年10月参加了韩国釜山举行的第九届机器人足球世界杯,获得SimuroSot(11VS11)项目第四名;42005年7月参加了全国机器人足球大赛获得SimuroSot(11vs11)季军;52005年8月参加常州全国机器人大赛获得SimuroSot(5vs5)项目比赛二等奖。62006年6月在甘肃省平凉市举办的“华媒杯”第七届全国机器人足球锦标赛中,四川大学代表队获得SimuroSot(5vs5)全国季军,SimuroSot(11vs11)一等奖的好成绩,7四川大学代表队在2006年7月举行的德国FIRA世界杯上再次获得SimuroSot(11vs11)第四名。82007年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是环境变量用于保存场上信息。从协会网站上可以下载机器人编号蓝方和黄方以球场中心点对称机器人跑位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(Environ

1 / 62
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功