《机器人全课程》PPT课件_第1页
《机器人全课程》PPT课件_第2页
《机器人全课程》PPT课件_第3页
《机器人全课程》PPT课件_第4页
《机器人全课程》PPT课件_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

封面,欢迎词,大纲介绍,0.概述,0.1实物半自主足球机器人,0.2仿真机器人足球比赛,0.3仿真比赛的特点,仿真实物半自主机器人足球比赛;所有的硬件设备均由计算机模拟实现;简化比赛系统复杂度,减少硬件需求;可控性好、无破坏性、可重复使用,不受硬件条件和场地环境的限制;研究人工智能的绝佳平台;,0.4仿真比赛开发基础,对c语言有一定的了解;对vc开发环境比较熟悉;有创造性思维和充分的想象力;有克服困难的能力;,1.仿真平台使用介绍,1.1演示一场比赛,VS,武汉工程大学代表队,千人工程代表队,黄队,蓝队,1.2MLS平台,开发者:澳大利亚的Dr.JunJo领导的Griffith大学信息技术学院RSS开发小组,1.3机器人的编号,Home代表己方机器人Opp代表对方机器人箭头所指的方向为机器人当前的正方向,1.4机器人的辨认,0号一般是守门员,用大红色表示;1号用紫色表示,2号用紫红色表示;3号用绿色表示,4号用蓝绿色表示;,每方队员有五名,分别用不同的颜色来标示,中间是代表队伍的颜色,在左下角是区分不同队员的标识:,1.5鼠标和键盘操作,鼠标:在比赛开始前或比赛暂停时,可以用鼠标拖动球或机器人到场地的任何位置。键盘:在比赛开始前或比赛暂停时,当鼠标点击某一个机器人后可以用或键来调整该机器人的角度。,1.6MLS平台系统特点,机器人模型:Yujin机器人的物理模型。,模拟精确:碰撞检测完全,碰撞处理准确仿真极为真实(采用商业游戏引擎公司Havok的碰撞处理引擎作品帝国时代、CS等)。,系统界面:3维(采用Director设计界面,3DMax建模)。,1.7MLS平台系统需求,Windows98或以上版本的操作系统;DirectX8.0或以上版本;,硬件需求:,PentiumIII600MHz或与其性能相当的CPU;256M系统内存;具有32M显存的TNT2或其以上级别的显示卡;至少可以实现800600分辨率的显示器;,软件需求:,1.8软件开发环境,LingoMicrosoftVisualC6.0MicrosoftVisualC.NET2003,1.9MLS平台模板程序,平台提供了基本的策略开发框架,见安装目录下的StrategySource目录如:C:ProgramFilesRobotSoccerv1.5aStrategySource)。其模板程序为DLL动态联接库。,2.仿真平台与策略程序的关系,2.1什么是策略程序?,定义:策略程序就是自己编写的能够使仿真平台中机器人按照预定方式运动的程序。通俗的来说,就是能够打比赛的程序。,2.2仿真平台与策略程序的通讯方式,策略程序接受数据,策略程序发送数据,MLS平台,MLS策略程序,策略程序将接受的数据进行处理,2.3场地信息介绍,(6.8118,6.3730),(6.8118,77.2392),(93.4259,77.2392),(93.4259,6.3730),(0,0),(单位:英寸),说明:1英寸=2.54厘米,2.4场地的各种标志及尺寸,(单位:厘米),前,约4.318,球,机器人,约7.9756,(0.0,0.0),X,Y,转角方向0,2.5球与车的长度尺寸,(单位:厘米),2.6策略程序每个周期接受的数据,仿真平台传递给策略程序的数据:己方、对方机器人坐标、角度(当前周期,上一周期)。球的坐标(当前周期,上一周期)。场地数据。控球方。,2.7策略程序每个周期发送的数据,策略程序发送给仿真平台的数据:己方(homei)每个机器人的左轮速(vl)和右轮速(vr)。注:当前发送的数据要到下一周期才能执行。,4.动作函数及演示,4.1Velocity动作函数,该动作可以给机器人自由的发轮速(在该程序中可以简单的认为轮速就是机器人的推进力)。小车发轮树被限制为125125之间。/形参robot指定小车号/形参vl左轮速vr右轮速voidVelocity(Robot*robot,intvl,intvr);,4.1.1机器人的运动控制,左轮速vl,右轮速vr,注:vlvr机器人顺时针旋转vlvr机器人逆时针旋转,当轮速为负时,机器人反向运动,4.1.2Velocity例子,/一般动作voidNormalVelocity(Environment*env)/让2号机器人两个轮子都以10的轮速前进Velocity(,4.2Angle动作函数,该动作可以让机器人转到指定的任意角度。并做直线运动。/形参robot指定小车号/形参desired_angle为转角度数voidAngle(Robot*robot,intdesired_angle);,4.2.1机器人的转角控制,30度,左轮速vl,右轮速vr,-180度,+180度,-60度,左轮速vl,右轮速vr,当角度为负时,机器人反向运动,4.2.2Angle例子,voidNormalAngle(Environment*env)/让1号机器人转到30度角Angle(,4.3Position动作函数,该动作可以让机器人跑到场地上指定的任何地点。/形参robot指定小车号/形参x目标位置X坐标y目标位置Y坐标voidPosition(Robot*robot,doublex,doubley);,4.3.1机器人的指定点运动,?度,左轮速vl,右轮速vr,球位置2,球位置1,Position函数根据目标位置可进行转角的控制。,4.3.2Position例子,voidNormalPosition(Environment*env)/让2号机器人追着球跑Position(,4.4三个动作函数组合使用的例子,voidNormal(Environment*env)Position(/让1号机器人逆时针转圈,4.5注意事项,轮速度限制为-125125平台原始接口中提供了比赛状态(GameState)以及控球方(WhosBall)两个参数,但经过实际开发时发现他们毫无任何用处,故需要自己判断场地度量单位为英寸,1英寸=2.54厘米机器人角度的单位为角度(不是弧度)如果场地不同,队伍需要转换左右半场坐标,5.策略程序的结构,5.1策略文件组成,5.2策略类视图,5.3InterFace.h接口文件,这个文件有与仿真平台通讯的一个结构Environment和三个函数的声明/比赛开始时系统调用一次externCSTRATEGY_APIvoidCreate(Environment*env);/比赛过程中由系统循环调用(策略都放在里面)。externCSTRATEGY_APIvoidStrategy(Environment*env);/比赛结束时系统调用一次externCSTRATEGY_APIvoidDestroy(Environment*env);,5.3.1Strategy接口函数解析,函数接口Strategy是程序的主要执行逻辑,由系统反复调用,每次调用时系统通过Environment*env这个指针向我们传递当前周期系统提供信息,在这里,我们必须处理针对赛场上每一时刻的对策,通过策略运算设置己方小车的左右轮转速,来控制机器人进行足球比赛。每秒调用次数依靠机器能力来定,默认为60次,即仿真的一个周期为1/60秒。externCSTRATEGY_APIvoidStrategy(Environment*env);,5.3.2InterFace.h,/主要的定义,包含所有运行时的的信息,由系统刷新typedefstructRobothomePLAYERS_PER_SIDE;/我方机器人数组OpponentRobotoppPLAYERS_PER_SIDE;/敌方机器人数组BallcurrentBall,/当前小球的位置lastBall,/上一次小球的位置predictedBall;/预计的小球的位置BoundsfieldBounds,/场地范围goalBounds;/球门的位置与范围longgameState;/当前游戏的状态longwhosBall;/由谁控制球void*userData;/用户自定义信息Environment;,5.3.3InterFace.h,/位置向量定义typedefstructdoublex,y,z;/x和y为坐标值Vector3D;,5.3.4InterFace.h,/己方机器人的信息定义typedefstructVector3Dpos;/机器人坐标doublerotation;/机器人方向角doublevelocityLeft,velocityRight;/机器人左右轮速度Robot;,5.3.5InterFace.h,/敌方机器人的信息的定义typedefstructVector3Dpos;/机器人的坐标位置doublerotation;/机器人当前的转角OpponentRobot;,5.3.6InterFace.h,/小球的位置定义typedefstructVector3Dpos;/小球的坐标位置Ball;,5.3.7InterFace.h,/场地区域范围typedefstructlongleft,/场地左边界right,/场地右边界top,/场地上边界bottom;/场地下边界Bounds;,5.4Strategy.h简单策略函数,/防守球门voidGoalie1(Robot*robot,Environment*env);/控制小车在球场边线的控制voidNearBound2(Robot*robot,doublevl,doublevr,Environment*env);/抢球voidAttack2(Robot*robot,Environment*env);/防守voidDefend(Robot*robot,Environment*env,doublelow,doublehigh);,Strategy.h简单策略函数,/机器人向小球的位置移动的方法voidMoonAttack(Robot*robot,Environment*env);/对敌方的跟踪voidMoonFollowOpponent(Robot*robot,OpponentRobot*opponent);/预估小球的位置voidPredictBall(Environment*env);,5.5Action.h基本动作函数,/设置小车轮子速度voidVelocity(Robot*robot,intvl,intvr);/小车转角控制voidAngle(Robot*robot,intdesired_angle);/移动小车到指定位置voidPosition(Robot*robot,doublex,doubley);,6.策略系统设计,6.1策略系统的分层结构,策略库,平台接口数据,预处理层,角色层,角色动作层,组合动作库,6.1.1预处理层设计,输入信息预处理,包括对接口参数进行英寸到厘米及坐标方向的转换,计算个体的线速度、角速度,个体间的距离、角度等。,6.1.2角色层设计,角色层是决策的最高层,它接受经预处理过的比赛数据,包括所有机器人和球的位置。根据这些数据判断场上的形势,从策略库中抽取合适的协作模式,定出合作的意图并将意图传人下一层。角色层的关键有两点:判断场上形势和角色的分配。在对形式分析得时候需要加入规则得判断。,策略库,角色层,角色层-区域划分,一般将球场分成三个区域:进攻区、防守区和过渡区进攻区在对方球门区附近防守区在已方球门区附近过渡区在前两者之间,角色层判断控制球,判断那个机器人控制球的方法:最短距离法:该方法实现简单,效果明显,当前周期中那个机器人与球的距离最近就代表谁控球。,角色层-角色分配,例如:球在进攻区内。且我方控制球,则离球近的队员为主攻、另一名队员为协攻。球在防守区域内,则离球近的队员为主防、另一名队员为协防。(就能随意的变换1到4号车,但守门员的角色通常不变);角色分配首先取决于开发者设计的各种攻防策略(存放在策略库中):如:全攻全守,区域防守,6.1.3角色动作层设计,角色动作层是对已经分配角色的机器人进行一个连续动作的规划。这里设计到机器人之间的配合动作在角色动作被分配以后,随着场上形式的转变需要对角色动作进行切换操作。,角色动作层,组合动作库,组合动作库,组合动作库是建立在机器人基本动作上的。将机器人的基本动作进行组合,组合成一个角色的动作。,7.各种定位球,7.1各种定位球坐标确定方法,载入两个空策略。点击OpenViewer菜单。打开RSViwer,选择Ball。,各种定位球坐标确定方法,将球移动到待测试点后点击Start进入比赛状态。点击RSViwer中的Display可以看到球的坐标。,7.2自由球,7.2.1球与机器人摆放原则,将场地分成四个区域,每个区域都有一个自由球罚球点,在哪个区域犯规,就在那个区域罚自由球。球应该摆放在罚球点上。每对有一个机器人放在离球25厘米的发球线上。其他机器人应该放在这个犯规区域以外。防守方机器人应在靠近自己底线的一边。防守方先摆机器人。,7.2.2自由球的判断,判断球场上所有机器人和球的速度非常小。判断球的位置是否在发球点上。判断我方和对方是否有且仅有一个机器人在球的附近(相距25厘米左右)。结合以上三个条件起来就可以判断是否在罚自由球。,7.3点球,7.3.1球与机器人摆放原则,踢球机器人必须放在球的后方。防守的守门员必须压球门线。除了踢球机器人和防守守门员外,其他机器人都在另外半场。防守方先摆机器人。,7.3.2自由球的判断,判断球场上所有机器人和球的速度非常小。判断球的位置是否在发球点上。判断我方和对方是否有且仅有一个机器人在发球的那个半场。结合以上三个条件起来就可以判断是否在罚自由球。,7.4球门球,7.4.1球与机器人摆放原则,发球方只允许有一个守门员在大禁区内。球应该放在大禁区内。防守方机器人必须在自己半场。防守方先摆机器人。,7.4.2球门球的判断,判断球场上所有机器人和球的速度非常小。判断球的位置是否在大禁区内。判断我方是否有且仅有一个机器人在大禁区内。判断所有对方球员都不在我方半场。结合以上四个条件起来就可以判断是否在罚自由球。,8.比赛规则,8.1比赛时间,每次暂停时间为3分钟,每场比赛最多叫两次暂停。如果一支球队在中场休息时没有准备好不能开始下半场比赛,休息时间可以延长5分钟。若在延时后球队仍未准备好继续比赛,则将取消其比赛资格。,8.2比赛开始,比赛开始上、下半场开始时,总是蓝队先开球。上、下半场开球,以

温馨提示

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

评论

0/150

提交评论