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

下载本文档

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

文档简介

1、机器人全课程2022/9/26机器人全课程机器人全课程2022/9/24机器人全课程欢迎词机器人全课程欢迎词机器人全课程大纲介绍机器人全课程大纲介绍机器人全课程0. 概述机器人全课程0. 概述机器人全课程0.1 实物半自主足球机器人机器人全课程0.1 实物半自主足球机器人机器人全课程0.2 仿真机器人足球比赛机器人全课程0.2 仿真机器人足球比赛机器人全课程0.3 仿真比赛的特点仿真实物半自主机器人足球比赛;所有的硬件设备均由计算机模拟实现;简化比赛系统复杂度,减少硬件需求 ;可控性好、无破坏性、可重复使用,不受硬件条件和场地环境的限制;研究人工智能的绝佳平台;机器人全课程0.3 仿真比赛的特

2、点仿真实物半自主机器人足球比赛;机器人全0.4 仿真比赛开发基础对c语言有一定的了解;对vc开发环境比较熟悉;有创造性思维和充分的想象力;有克服困难的能力;机器人全课程0.4 仿真比赛开发基础对c语言有一定的了解;机器人全课程1. 仿真平台使用介绍机器人全课程1. 仿真平台使用介绍机器人全课程1.1 演示一场比赛VS武汉工程大学代表队千人工程代表队黄队蓝队机器人全课程1.1 演示一场比赛VS武汉工程大学代表队千人工程代表队黄队1.2 MLS平台开发者:澳大利亚的Dr. Jun Jo领导的Griffith大学信息技术学院RSS开发小组机器人全课程1.2 MLS平台开发者:机器人全课程1.3 机器

3、人的编号home1home2home3home4opp1opp2opp3opp4opp0home0Home代表己方机器人 Opp 代表对方机器人箭头所指的方向为机器人当前的正方向机器人全课程1.3 机器人的编号home1home2home3home41.4 机器人的辨认0号一般是守门员,用大红色表示;1号用紫色表示,2号用紫红色表示;3号用绿色表示,4号用蓝绿色表示;每方队员有五名,分别用不同的颜色来标示,中间是代表队伍的颜色,在左下角是区分不同队员的标识:机器人全课程1.4 机器人的辨认0号一般是守门员,用大红色表示;每方队员1.5 鼠标和键盘操作鼠标: 在比赛开始前或比赛暂停时,可以用鼠标

4、拖动球或机器人到场地的任何位置。键盘: 在比赛开始前或比赛暂停时,当鼠标点击某一个机器人后可以用或键来调整该机器人的角度。机器人全课程1.5 鼠标和键盘操作鼠标:机器人全课程1.6 MLS平台系统特点机器人模型: Yujin机器人的物理模型。模拟精确: 碰撞检测完全,碰撞处理准确仿真极为真实 (采用商业游戏引擎公司Havok的碰撞处理引擎 作品 帝国时代、CS等)。系统界面: 3维(采用Director设计界面,3D Max建模)。机器人全课程1.6 MLS平台系统特点机器人模型:模拟精确:系统界面:机1.7 MLS平台系统需求Windows98或以上版本的操作系统;DirectX 8.0或以

5、上版本;硬件需求:Pentium III 600 MHz或与其性能相当的CPU;256M系统内存;具有32M显存的TNT2或其以上级别的显示卡;至少可以实现800600分辨率的显示器;软件需求:机器人全课程1.7 MLS平台系统需求Windows98或以上版本的操作1.8软件开发环境LingoMicrosoft Visual C6.0Microsoft Visual C.NET 2003机器人全课程1.8软件开发环境Lingo机器人全课程1.9 MLS平台模板程序 平台提供了基本的策略开发框架,见安装目录下的Strategy Source目录 如:C:Program FilesRobot So

6、ccer v1.5aStrategy Source)。 其模板程序为DLL动态联接库。机器人全课程1.9 MLS平台模板程序 平台提供了基本的策略开发框2.仿真平台与策略程序的关系机器人全课程2.仿真平台与策略程序机器人全课程2.1 什么是策略程序?定义:策略程序就是自己编写的能够使仿真平台中机器人按照预定方式运动的程序。通俗的来说,就是能够打比赛的程序。机器人全课程2.1 什么是策略程序?机器人全课程2.2 仿真平台与策略程序的通讯方式策略程序接受数据策略程序发送数据MLS平台MLS策略程序策略程序将接受的数据进行处理机器人全课程2.2 仿真平台与策略程序的通讯方式策略程序接受数据策略程序2

7、.3 场地信息介绍(6.8118, 6.3730)(6.8118, 77.2392)(93.4259, 77.2392)(93.4259, 6.3730)(0,0)(单位:英寸)说明:1英寸= 2.54厘米机器人全课程2.3 场地信息介绍(6.8118, 6.3730)(6.82.4 场地的各种标志及尺寸(单位:厘米)机器人全课程2.4 场地的各种标志及尺寸(单位:厘米)机器人全课程前约4.318球机器人约7.9756(0.0 ,0.0)XY转角方向 02.5 球与车的长度尺寸(单位:厘米)机器人全课程前约4.318球机器人约7.9756(0.0 ,0.0)XY2.6策略程序每个周期接受的数据

8、仿真平台传递给策略程序的数据:己方、对方机器人坐标、角度(当前周期,上一周期)。球的坐标(当前周期,上一周期)。场地数据。控球方。机器人全课程2.6策略程序每个周期接受的数据仿真平台传递给策略程序的数据2.7 策略程序每个周期发送的数据策略程序发送给仿真平台的数据:己方(homei)每个机器人的左轮速(vl)和右轮速(vr)。注: 当前发送的数据要到下一周期才能执行。机器人全课程2.7 策略程序每个周期发送的数据策略程序发送给仿真平台的数4. 动作函数及演示机器人全课程4. 动作函数及演示机器人全课程4.1 Velocity动作函数 该动作可以给机器人自由的发轮速(在该程序中可以简单的认为轮速

9、就是机器人的推进力)。 小车发轮树被限制为 125 125 之间。 /形参robot 指定小车号 /形参vl 左轮速 vr 右轮速void Velocity ( Robot *robot, int vl, int vr ); 机器人全课程4.1 Velocity动作函数机器人全课程4.1.1机器人的运动控制左轮速vl右轮速vr注: vl vr 机器人顺时针旋转 vl home2, 20, 20); /让1号机器人左轮子都以-20的轮速后退Velocity(&env- home1, -20, -20); /给3号机器人左轮发100, 右轮发20Velocity(&env- home3, 100,

10、 20);机器人全课程4.1.2 Velocity例子/ 一般动作机器人全课程4.2 Angle动作函数 该动作可以让机器人转到指定的任意角度。 并做直线运动。 /形参robot 指定小车号 /形参desired_angle为转角度数void Angle ( Robot *robot, int desired_angle);机器人全课程4.2 Angle动作函数机器人全课程4.2.1 机器人的转角控制30度左轮速vl右轮速vr- 180度+180度-60度左轮速vl右轮速vr当角度为负时,机器人反向运动机器人全课程4.2.1 机器人的转角控制30度左轮速vl右轮速vr- 14.2.2 Angl

11、e例子void NormalAngle( Environment* env)/让1号机器人转到30度角Angle(&env-home1, 30); /让3号机器人转到-60度角Angle(&env-home3, -60);机器人全课程4.2.2 Angle例子机器人全课程4.3 Position动作函数 该动作可以让机器人跑到场地上指定的任何地点。 /形参robot 指定小车号 /形参 x 目标位置X坐标 y 目标位置Y坐标void Position( Robot *robot, double x, double y );机器人全课程4.3 Position动作函数机器人全课程4.3.1 机器

12、人的指定点运动?度左轮速vl右轮速vr球位置2球位置1Position 函数 根据目标位置可进行转角的控制。机器人全课程4.3.1 机器人的指定点运动?度左轮速vl右轮速vr球位置4.3.2 Position例子void NormalPosition( Environment* env )/让2号机器人追着球跑Position( &env-home2, env-lastBall.pos.x, env-lastBall.pos.y);/让2号机器人跑到场地中心double x = ( env-fieldBounds.left + env-fieldBounds.right ) / 2;doubl

13、e y = ( env-fieldBounds.bottom + env-fieldBounds.top ) / 2;Position(&env-home2, x, y);机器人全课程4.3.2 Position例子机器人全课程4.4 三个动作函数组合使用的例子void Normal( Environment* env )Position(&env-home0, env-goalBounds.left + 10, env-currentBall.pos.y); /让0号机器人在球门附近跟着球的y坐标跑Velocity(&env-home1, 10 , 70 ); /让1号机器人逆时针转圈Pos

14、ition(&env-home2, env-currentBall.pos.x, env-currentBall.pos.y ); /让2号机器人追着球跑Angle(&env-home3, -60); /让3号机器人追着球跑Velocity(&env-home4, 5 , 5 ); /让1号机器人逆时针转圈机器人全课程4.4 三个动作函数组合使用的例子机器人全课程4.5 注意事项轮速度限制为 -125 125平台原始接口中提供了比赛状态(GameState)以及控球方(WhosBall)两个参数,但经过实际开发时发现他们毫无任何用处,故需要自己判断场地度量单位为英寸,1英寸 = 2.54厘米机

15、器人角度的单位为角度(不是弧度)如果场地不同,队伍需要转换左右半场坐标机器人全课程4.5 注意事项轮速度限制为 -125 125机器人全课5. 策略程序的结构机器人全课程5. 策略程序的结构机器人全课程5.1 策略文件组成机器人全课程5.1 策略文件组成机器人全课程5.2 策略类视图机器人全课程5.2 策略类视图机器人全课程5.3 InterFace.h接口文件 这个文件有与仿真平台通讯的一个结构Environment和三个函数的声明/比赛开始时系统调用一次extern C STRATEGY_API void Create ( Environment *env ); /比赛过程中由系统循环调用

16、(策略都放在里面)。extern C STRATEGY_API void Strategy ( Environment *env );/比赛结束时系统调用一次extern C STRATEGY_API void Destroy ( Environment *env );机器人全课程5.3 InterFace.h接口文件 这个文件有与仿5.3.1 Strategy 接口函数解析 函数接口 Strategy是程序的主要执行逻辑,由系统反复调用,每次调用时系统通过Environment* env这个指针向我们传递当前周期系统提供信息,在这里,我们必须处理针对赛场上每一时刻的对策,通过策略运算设置己方

17、小车的左右轮转速,来控制机器人进行足球比赛。 每秒调用次数依靠机器能力来定,默认为60次,即仿真的一个周期为1/60秒。 extern C STRATEGY_API void Strategy ( Environment *env );机器人全课程5.3.1 Strategy 接口函数解析 5.3.2 InterFace.h/主要的定义,包含所有运行时的的信息,由系统刷新typedef structRobot homePLAYERS_PER_SIDE; /我方机器人数组OpponentRobot opp PLAYERS_PER_SIDE; /敌方机器人数组Ball currentBall,/当

18、前小球的位置 lastBall,/上一次小球的位置 predictedBall;/预计的小球的位置Bounds fieldBounds,/场地范围 goalBounds;/球门的位置与范围long gameState;/当前游戏的状态long whosBall;/由谁控制球void *userData;/用户自定义信息 Environment;机器人全课程5.3.2 InterFace.h/主要的定义,包含所有运5.3.3 InterFace.h/位置向量定义typedef structdouble x, y, z; / x 和 y 为坐标值 Vector3D;机器人全课程5.3.3 Inte

19、rFace.h/位置向量定义机器人全课5.3.4 InterFace.h/己方机器人的信息定义typedef structVector3D pos;/机器人坐标double rotation;/机器人方向角double velocityLeft, velocityRight;/机器人左右轮速度 Robot;机器人全课程5.3.4 InterFace.h/己方机器人的信息定义机5.3.5 InterFace.h/敌方机器人的信息的定义typedef structVector3D pos;/机器人的坐标位置double rotation;/机器人当前的转角 OpponentRobot;机器人全课程

20、5.3.5 InterFace.h/敌方机器人的信息的定义5.3.6 InterFace.h/小球的位置定义typedef structVector3D pos;/小球的坐标位置 Ball; 机器人全课程5.3.6 InterFace.h/小球的位置定义机器人全5.3.7 InterFace.h/场地区域范围typedef structlong left, /场地左边界 right, /场地右边界 top, /场地上边界 bottom; /场地下边界 Bounds;机器人全课程5.3.7 InterFace.h/场地区域范围机器人全课5.4 Strategy.h 简单策略函数/ 防守球门voi

21、d 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 );机器人全课程5.4 Strategy.h 简单策略函数/ 防守球门机Strate

22、gy.h 简单策略函数/ 机器人向小球的位置移动的方法void MoonAttack (Robot *robot, Environment *env );/ 对敌方的跟踪void MoonFollowOpponent ( Robot *robot, OpponentRobot *opponent );/ 预估小球的位置void PredictBall ( Environment *env );机器人全课程Strategy.h 简单策略函数/ 机器人向小球的位置移5.5 Action.h 基本动作函数/设置小车轮子速度void Velocity ( Robot *robot, int vl, i

23、nt vr );/ 小车转角控制void Angle ( Robot *robot, int desired_angle);/移动小车到指定位置void Position( Robot *robot, double x, double y );机器人全课程5.5 Action.h 基本动作函数/设置小车轮子速度6. 策略系统设计机器人全课程6. 策略系统设计机器人全课程6.1 策略系统的分层结构策略库平台接口数据预处理层角色层角色动作层组合动作库机器人全课程6.1 策略系统的分层结构策略库平台接口数据预处理层角色层角6.1.1 预处理层设计 输入信息预处理,包括对接口参数进行英寸到厘米及坐标方

24、向的转换,计算个体的线速度、角速度,个体间的距离、角度等。机器人全课程6.1.1 预处理层设计机器人全课程6.1.2 角色层设计 角色层是决策的最高层,它接受经预处理过的比赛数据,包括所有机器人和球的位置。根据这些数据判断场上的形势,从策略库中抽取合适的协作模式,定出合作的意图并将意图传人下一层。 角色层的关键有两点:判断场上形势和角色的分配。在对形式分析得时候需要加入规则得判断。策略库角色层机器人全课程6.1.2 角色层设计 角色层是决策的最高层,它接 角色层-区域划分一般将球场分成三个区域:进攻区、防守区和过渡区进攻区在对方球门区附近防守区在已方球门区附近过渡区在前两者之间机

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

26、防守机器人全课程 角色层-角色分配例如:机器人全课程6.1.3 角色动作层设计 角色动作层是对已经分配角色的机器人进行一个连续动作的规划。 这里设计到机器人之间的配合动作在角色动作被分配以后,随着场上形式的转变需要对角色动作进行切换操作。角色动作层组合动作库机器人全课程6.1.3 角色动作层设计 角色动作层是对已经分配角 组合动作库 组合动作库是建立在机器人基本动作上的。 将机器人的基本动作进行组合,组合成一个角色的动作。 机器人全课程 组合动作库 组合动作库是建立在机器人7. 各种定位球机器人全课程7. 各种定位球机器人全课程7.1 各种定位球坐标确

27、定方法载入两个空策略。 点击Open Viewer菜单。打开RSViwer,选择Ball。机器人全课程7.1 各种定位球坐标确定方法机器人全课程各种定位球坐标确定方法将球移动到待测试点 后点击Start进入比赛状态。点击RSViwer中的Display 可以看到球的坐标。机器人全课程各种定位球坐标确定方法机器人全课程7.2 自由球机器人全课程7.2 自由球机器人全课程7.2.1 球与机器人摆放原则将场地分成四个区域,每个区域都有一个自由球罚球点,在哪个区域犯规,就在那个区域罚自由球。球应该摆放在罚球点上。每对有一个机器人放在离球25厘米的发球线上。其他机器人应该放在这个犯规区域以外。防守方机器

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

29、人全课程7.3.1 球与机器人摆放原则踢球机器人必须放在球的后方。机7.3.2 自由球的判断判断球场上所有机器人和球的速度非常小。判断球的位置是否在发球点上。判断我方和对方是否有且仅有一个机器人在发球的那个半场。结合以上三个条件起来就可以判断是否在罚自由球。机器人全课程7.3.2 自由球的判断判断球场上所有机器人和球的速度非常小7.4 球门球机器人全课程7.4 球门球机器人全课程7.4.1 球与机器人摆放原则发球方只允许有一个守门员在大禁区内。球应该放在大禁区内。防守方机器人必须在自己半场。防守方先摆机器人。机器人全课程7.4.1 球与机器人摆放原则发球方只允许有一个守门员在大禁7.4.2 球门球的判断判断球场上所有机器人和球的速度非常小。判断球的位置是否在大禁区内。判断我方是否有且仅有一个机器人在大禁区内。判断所有对方球员都不在我方半场。结合以上四个条件起来就可以判断是否在罚自由球。机器人全课程7.4.2 球门球的判断判断球场上所有机器人和球的速度非常小8. 比赛规则机器人全课程8. 比赛规则机器人全课程8.1 比赛时间每次暂停时间为3 分钟,每场比赛最多叫两次暂停。如果一支球队在中场休息时没有准备好不能开始下半场比赛,休息时间可以延长5分钟。若在延时后球队仍未准备好继续比赛,则将取消其比赛资格。机器人全课程8.1 比赛时间机器

温馨提示

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

评论

0/150

提交评论