《机器人全课程》PPT课件.ppt

上传人:牧羊曲112 文档编号:5530943 上传时间:2023-07-18 格式:PPT 页数:84 大小:790KB
返回 下载 相关 举报
《机器人全课程》PPT课件.ppt_第1页
第1页 / 共84页
《机器人全课程》PPT课件.ppt_第2页
第2页 / 共84页
《机器人全课程》PPT课件.ppt_第3页
第3页 / 共84页
《机器人全课程》PPT课件.ppt_第4页
第4页 / 共84页
《机器人全课程》PPT课件.ppt_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《《机器人全课程》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《机器人全课程》PPT课件.ppt(84页珍藏版)》请在三一办公上搜索。

1、封面,欢迎词,大纲介绍,0.概述,0.1 实物半自主足球机器人,0.2 仿真机器人足球比赛,0.3 仿真比赛的特点,仿真实物半自主机器人足球比赛;所有的硬件设备均由计算机模拟实现;简化比赛系统复杂度,减少硬件需求;可控性好、无破坏性、可重复使用,不受硬件条件和场地环境的限制;研究人工智能的绝佳平台;,0.4 仿真比赛开发基础,对c语言有一定的了解;对vc开发环境比较熟悉;有创造性思维和充分的想象力;有克服困难的能力;,1.仿真平台使用介绍,1.1 演示一场比赛,VS,武汉工程大学代表队,千人工程代表队,黄队,蓝队,1.2 MLS平台,开发者:澳大利亚的Dr.Jun Jo领导的Griffith大

2、学信息技术学院RSS开发小组,1.3 机器人的编号,Home代表己方机器人 Opp 代表对方机器人箭头所指的方向为机器人当前的正方向,1.4 机器人的辨认,0号一般是守门员,用大红色表示;1号用紫色表示,2号用紫红色表示;3号用绿色表示,4号用蓝绿色表示;,每方队员有五名,分别用不同的颜色来标示,中间是代表队伍的颜色,在左下角是区分不同队员的标识:,1.5 鼠标和键盘操作,鼠标:在比赛开始前或比赛暂停时,可以用鼠标拖动球或机器人到场地的任何位置。键盘:在比赛开始前或比赛暂停时,当鼠标点击某一个机器人后可以用或键来调整该机器人的角度。,1.6 MLS平台系统特点,机器人模型:Yujin机器人的物

3、理模型。,模拟精确:碰撞检测完全,碰撞处理准确仿真极为真实(采用商业游戏引擎公司Havok的碰撞处理引擎 作品 帝国时代、CS等)。,系统界面:3维(采用Director设计界面,3D Max建模)。,1.7 MLS平台系统需求,Windows98或以上版本的操作系统;DirectX 8.0或以上版本;,硬件需求:,Pentium III 600 MHz或与其性能相当的CPU;256M系统内存;具有32M显存的TNT2或其以上级别的显示卡;至少可以实现800600分辨率的显示器;,软件需求:,1.8软件开发环境,LingoMicrosoft Visual C6.0Microsoft Visua

4、l C.NET 2003,1.9 MLS平台模板程序,平台提供了基本的策略开发框架,见安装目录下的Strategy Source目录 如:C:Program FilesRobot Soccer v1.5aStrategy Source)。其模板程序为DLL动态联接库。,2.仿真平台与策略程序的关系,2.1 什么是策略程序?,定义:策略程序就是自己编写的能够使仿真平台中机器人按照预定方式运动的程序。通俗的来说,就是能够打比赛的程序。,2.2 仿真平台与策略程序的通讯方式,策略程序接受数据,策略程序发送数据,MLS平台,MLS策略程序,策略程序将接受的数据进行处理,2.3 场地信息介绍,(6.81

5、18,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 策略程序每个周期发送的数据,策略程序发送给仿真平台的数据:己方(ho

6、mei)每个机器人的左轮速(vl)和右轮速(vr)。注:当前发送的数据要到下一周期才能执行。,4.动作函数及演示,4.1 Velocity动作函数,该动作可以给机器人自由的发轮速(在该程序中可以简单的认为轮速就是机器人的推进力)。小车发轮树被限制为 125 125 之间。/形参robot 指定小车号/形参vl 左轮速 vr 右轮速void Velocity(Robot*robot,int vl,int vr);,机器人的运动控制,左轮速vl,右轮速vr,注:vl vr 机器人顺时针旋转 vl vr 机器人逆时针旋转,当轮速为负时,机器人反向运动,Velocity例子,/一般动作void Nor

7、malVelocity(Environment*env)/让2号机器人两个轮子都以10的轮速前进Velocity(,4.2 Angle动作函数,该动作可以让机器人转到指定的任意角度。并做直线运动。/形参robot 指定小车号/形参desired_angle为转角度数void Angle(Robot*robot,int desired_angle);,机器人的转角控制,30度,左轮速vl,右轮速vr,-180度,+180度,-60度,左轮速vl,右轮速vr,当角度为负时,机器人反向运动,Angle例子,void NormalAngle(Environment*env)/让1号机器人转到30度角A

8、ngle(,4.3 Position动作函数,该动作可以让机器人跑到场地上指定的任何地点。/形参robot 指定小车号/形参 x 目标位置X坐标 y 目标位置Y坐标void Position(Robot*robot,double x,double y);,机器人的指定点运动,?度,左轮速vl,右轮速vr,球位置2,球位置1,Position 函数 根据目标位置可进行转角的控制。,Position例子,void NormalPosition(Environment*env)/让2号机器人追着球跑Position(,4.4 三个动作函数组合使用的例子,void Normal(Environment

9、*env)Position(/让1号机器人逆时针转圈,4.5 注意事项,轮速度限制为-125 125平台原始接口中提供了比赛状态(GameState)以及控球方(WhosBall)两个参数,但经过实际开发时发现他们毫无任何用处,故需要自己判断场地度量单位为英寸,1英寸=2.54厘米机器人角度的单位为角度(不是弧度)如果场地不同,队伍需要转换左右半场坐标,5.策略程序的结构,5.1 策略文件组成,5.2 策略类视图,5.3 InterFace.h接口文件,这个文件有与仿真平台通讯的一个结构Environment和三个函数的声明/比赛开始时系统调用一次extern C STRATEGY_API v

10、oid Create(Environment*env);/比赛过程中由系统循环调用(策略都放在里面)。extern C STRATEGY_API void Strategy(Environment*env);/比赛结束时系统调用一次extern C STRATEGY_API void Destroy(Environment*env);,Strategy 接口函数解析,函数接口 Strategy是程序的主要执行逻辑,由系统反复调用,每次调用时系统通过Environment*env这个指针向我们传递当前周期系统提供信息,在这里,我们必须处理针对赛场上每一时刻的对策,通过策略运算设置己方小车的左右轮

11、转速,来控制机器人进行足球比赛。每秒调用次数依靠机器能力来定,默认为60次,即仿真的一个周期为1/60秒。extern C STRATEGY_API void Strategy(Environment*env);,InterFace.h,/主要的定义,包含所有运行时的的信息,由系统刷新typedef structRobot homePLAYERS_PER_SIDE;/我方机器人数组OpponentRobot opp PLAYERS_PER_SIDE;/敌方机器人数组Ball currentBall,/当前小球的位置 lastBall,/上一次小球的位置 predictedBall;/预计的小球

12、的位置Bounds fieldBounds,/场地范围 goalBounds;/球门的位置与范围long gameState;/当前游戏的状态long whosBall;/由谁控制球void*userData;/用户自定义信息 Environment;,InterFace.h,/位置向量定义typedef structdouble x,y,z;/x 和 y 为坐标值 Vector3D;,InterFace.h,/己方机器人的信息定义typedef structVector3D pos;/机器人坐标double rotation;/机器人方向角double velocityLeft,veloci

13、tyRight;/机器人左右轮速度 Robot;,InterFace.h,/敌方机器人的信息的定义typedef structVector3D pos;/机器人的坐标位置double rotation;/机器人当前的转角 OpponentRobot;,InterFace.h,/小球的位置定义typedef structVector3D pos;/小球的坐标位置 Ball;,InterFace.h,/场地区域范围typedef structlong left,/场地左边界 right,/场地右边界 top,/场地上边界 bottom;/场地下边界 Bounds;,5.4 Strategy.h 简

14、单策略函数,/防守球门void Goalie1(Robot*robot,Environment*env);/控制小车在球场边线的控制void NearBound2(Robot*robot,double vl,double vr,Environment*env);/抢球void Attack2(Robot*robot,Environment*env);/防守void Defend(Robot*robot,Environment*env,double low,double high);,Strategy.h 简单策略函数,/机器人向小球的位置移动的方法void MoonAttack(Robot*r

15、obot,Environment*env);/对敌方的跟踪void MoonFollowOpponent(Robot*robot,OpponentRobot*opponent);/预估小球的位置void PredictBall(Environment*env);,5.5 Action.h 基本动作函数,/设置小车轮子速度void Velocity(Robot*robot,int vl,int vr);/小车转角控制void Angle(Robot*robot,int desired_angle);/移动小车到指定位置void Position(Robot*robot,double x,doub

16、le y);,6.策略系统设计,6.1 策略系统的分层结构,策略库,平台接口数据,预处理层,角色层,角色动作层,组合动作库,6.1.1 预处理层设计,输入信息预处理,包括对接口参数进行英寸到厘米及坐标方向的转换,计算个体的线速度、角速度,个体间的距离、角度等。,6.1.2 角色层设计,角色层是决策的最高层,它接受经预处理过的比赛数据,包括所有机器人和球的位置。根据这些数据判断场上的形势,从策略库中抽取合适的协作模式,定出合作的意图并将意图传人下一层。角色层的关键有两点:判断场上形势和角色的分配。在对形式分析得时候需要加入规则得判断。,策略库,角色层,6.1.2.1 角色层-区域划分,一般将球场

17、分成三个区域:进攻区、防守区和过渡区进攻区在对方球门区附近防守区在已方球门区附近过渡区在前两者之间,6.1.2.2 角色层判断控制球,判断那个机器人控制球的方法:最短距离法:该方法实现简单,效果明显,当前周期中那个机器人与球的距离最近就代表谁控球。,6.1.2.3 角色层-角色分配,例如:球在进攻区内。且我方控制球,则离球近的队员为主攻、另一名队员为协攻。球在防守区域内,则离球近的队员为主防、另一名队员为协防。(就能随意的变换1到4号车,但守门员的角色通常不变);角色分配首先取决于开发者设计的各种攻防策略(存放在策略库中):如:全攻全守,区域防守,6.1.3 角色动作层设计,角色动作层是对已经

18、分配角色的机器人进行一个连续动作的规划。这里设计到机器人之间的配合动作在角色动作被分配以后,随着场上形式的转变需要对角色动作进行切换操作。,角色动作层,组合动作库,6.1.3.1 组合动作库,组合动作库是建立在机器人基本动作上的。将机器人的基本动作进行组合,组合成一个角色的动作。,7.各种定位球,7.1 各种定位球坐标确定方法,载入两个空策略。点击Open Viewer菜单。打开RSViwer,选择Ball。,各种定位球坐标确定方法,将球移动到待测试点 后点击Start进入比赛状态。点击RSViwer中的Display 可以看到球的坐标。,7.2 自由球,7.2.1 球与机器人摆放原则,将场地

19、分成四个区域,每个区域都有一个自由球罚球点,在哪个区域犯规,就在那个区域罚自由球。球应该摆放在罚球点上。每对有一个机器人放在离球25厘米的发球线上。其他机器人应该放在这个犯规区域以外。防守方机器人应在靠近自己底线的一边。防守方先摆机器人。,7.2.2 自由球的判断,判断球场上所有机器人和球的速度非常小。判断球的位置是否在发球点上。判断我方和对方是否有且仅有一个机器人在球的附近(相距25厘米左右)。结合以上三个条件起来就可以判断是否在罚自由球。,7.3 点球,7.3.1 球与机器人摆放原则,踢球机器人必须放在球的后方。防守的守门员必须压球门线。除了踢球机器人和防守守门员外,其他机器人都在另外半场

20、。防守方先摆机器人。,7.3.2 自由球的判断,判断球场上所有机器人和球的速度非常小。判断球的位置是否在发球点上。判断我方和对方是否有且仅有一个机器人在发球的那个半场。结合以上三个条件起来就可以判断是否在罚自由球。,7.4 球门球,7.4.1 球与机器人摆放原则,发球方只允许有一个守门员在大禁区内。球应该放在大禁区内。防守方机器人必须在自己半场。防守方先摆机器人。,7.4.2 球门球的判断,判断球场上所有机器人和球的速度非常小。判断球的位置是否在大禁区内。判断我方是否有且仅有一个机器人在大禁区内。判断所有对方球员都不在我方半场。结合以上四个条件起来就可以判断是否在罚自由球。,8.比赛规则,8.

21、1 比赛时间,每次暂停时间为3 分钟,每场比赛最多叫两次暂停。如果一支球队在中场休息时没有准备好不能开始下半场比赛,休息时间可以延长5分钟。若在延时后球队仍未准备好继续比赛,则将取消其比赛资格。,8.2 比赛开始,比赛开始上、下半场开始时,总是蓝队先开球。上、下半场开球,以及进球后重新开球时,球放置在场地中心处,开球方必须先将球踢向自己半场。中场休息后,双方交换比赛场地。,8.3 得分方法,当球整体越过对方球门线并且没有犯规,那么算一次有效进球。淘汰赛在下半场结束之后出现平局的情况下,采用加时赛突然死亡法决定胜负(金球)。在点球决胜时,出现下列情况之一,罚点球结束:1 守门员在门区内抓住了球;

22、2 开球后球滚出球门区;3 开球后10 秒如果一方因为被剥夺比赛权利,技术故障或者主动弃权,则该方为比赛失利方,比分为0 比20。,8.4 犯规,如果裁判员认为被犯规方处于有利形势,可以不判罚犯规。除了极端情况外,控球队员没有犯规行为可不判罚犯规。是否处于“极端情况”由裁判员判断。,8.5 点球(Penalty Kick),防守方超过一个机器人在球门区内。守门员在十秒中之内没有把球踢出球门区。防守方超过三个机器人在大禁区。,8.6 球门球(Goal Kick),当进攻机器人将防守方守门员推到球门里面。进攻时超过一个机器人进入对方的球门区。当进攻方机器人在防守方球门区里面干扰防守方守门员。在球门区里面发生僵持情况超过十秒。,8.7自由球(Free Ball),在球门区外发生僵局十秒以上。,8.8 球和机器人的位置,仅当一个机器人有超过50%的体积处于某个区域时,才意味着该机器人进入此区域。当球的整体越过球门线才算进球。,8.9 说明,以上规则只是整个MLS规则的一部分,比赛的时候请完全参照fira关于MLS的官方规则文档。进入仿真平台,点击右下角的“HELP”按钮,即可弹出MLS平台的完全说明文档和MLS规则文档。,结束语,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号