机器人足球培训.ppt

上传人:wuy****n92 文档编号:88352230 上传时间:2023-04-25 格式:PPT 页数:47 大小:1.01MB
返回 下载 相关 举报
机器人足球培训.ppt_第1页
第1页 / 共47页
机器人足球培训.ppt_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《机器人足球培训.ppt》由会员分享,可在线阅读,更多相关《机器人足球培训.ppt(47页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、0.概述讲师:黄俊讲师:黄俊0.1实物半自主足球机器人01010.2仿真机器人足球比赛02020.3仿真比赛的特点仿真实物半自主机器人足球比赛;仿真实物半自主机器人足球比赛;所有的硬件设备均由计算机模拟实现;所有的硬件设备均由计算机模拟实现;简化比赛系统复杂度,减少硬件需求简化比赛系统复杂度,减少硬件需求 ;可控性好、无破坏性、可重复使用,不受硬件条件和场地可控性好、无破坏性、可重复使用,不受硬件条件和场地环境的限制;环境的限制;研究人工智能的绝佳平台研究人工智能的绝佳平台;03030.4仿真比赛的开发基础对对c c语言有一定的了解;语言有一定的了解;对对vcvc开发环境比较熟悉;开发环境比较

2、熟悉;有创造性思维和充分的想象力;有创造性思维和充分的想象力;有克服困难的能力;有克服困难的能力;04041.仿真平台使用介绍1.1演示一场比赛0101VSVS黄队黄队蓝队蓝队武汉工程大学代表队武汉工程大学代表队千人工程代表队千人工程代表队1.2机器人的编号HomeHome代表己方代表己方机器人机器人Opp Opp 代表对方代表对方机器人机器人箭头所指的方箭头所指的方向为机器人当向为机器人当前的正方向前的正方向0202home1home1home2home2home3home3home4home4opp1opp1opp2opp2opp3opp3opp4opp4opp0opp0home0home

3、01.3 机器人的辨认每方队员有五名,分别用不同的颜色来标示,中间是代表每方队员有五名,分别用不同的颜色来标示,中间是代表队伍的颜色,在左下角是区分不同队员的标识:队伍的颜色,在左下角是区分不同队员的标识:0号一般是号一般是守门员守门员,用大红色表示;,用大红色表示;1号用紫色表示,号用紫色表示,2号用紫红色表示;号用紫红色表示;3号用绿色表示,号用绿色表示,4号用蓝绿色表示;号用蓝绿色表示;03031.4 MLS平台系统特点机器人模型:机器人模型:Yujin Yujin机器人的物理模型。机器人的物理模型。模拟精确:模拟精确:碰撞检测完全,碰撞处理准确仿真极为真实碰撞检测完全,碰撞处理准确仿真

4、极为真实 (采用商业游戏引擎公司(采用商业游戏引擎公司HavokHavok的碰撞处理引擎的碰撞处理引擎 作品作品 帝国时代、帝国时代、CSCS等)。等)。系统界面:系统界面:3 3维(采用维(采用DirectorDirector设计界面,设计界面,3D Max3D Max建模)建模)。04041.5 MLS平台系统需求硬件需求:硬件需求:Pentium III 600 MHzPentium III 600 MHz或与其性能相当的或与其性能相当的CPUCPU;256M256M系统内存;系统内存;具有具有32M32M显存的显存的TNT2TNT2或其以上级别的显示卡;或其以上级别的显示卡;至少可以实

5、现至少可以实现800600800600分辨率的显示器;分辨率的显示器;软件需求:软件需求:Windows98Windows98或以上版本的操作系统;或以上版本的操作系统;DirectX 8.0DirectX 8.0或以上版本;或以上版本;05051.6 软件开发环境LingoLingoMicrosoft Visual CMicrosoft Visual C6.06.0Microsoft Visual CMicrosoft Visual C.NET 2003.NET 2003Microsoft Visual CMicrosoft Visual C.NET 2005.NET 20050606 1.

6、7 MLS平台模板程序平台提供了基本的策略开发框架平台提供了基本的策略开发框架,见安装目录下的见安装目录下的Strategy SourceStrategy Source目录目录 如如:C:Program FilesRobot:C:Program FilesRobot Soccer v1.5aStrategy Source)Soccer v1.5aStrategy Source)。其模板程序为其模板程序为DLLDLL动态联接库。动态联接库。07072.仿真平台与策略程序的关系2.1 什么是策略程序?定义:定义:策略程序就是自己编写的能够使仿真平台中机器人按照策略程序就是自己编写的能够使仿真平台中

7、机器人按照预定方式运动的程序。预定方式运动的程序。通俗的来说,就是能够打比赛的程序通俗的来说,就是能够打比赛的程序。01012.2 仿真平台与程序的通讯方式0202策略程序接受数据策略程序接受数据策略程序发送数据策略程序发送数据MLSMLS平台平台MLSMLS策略程序策略程序策略程序将接受的策略程序将接受的数据进行处理数据进行处理2.3 2.3 场地信息介绍场地信息介绍03030303(6.8118,6.37306.8118,6.3730)(6.8118,77.23926.8118,77.2392)(93.4259,77.239293.4259,77.2392)(93.4259,6.37309

8、3.4259,6.3730)(0,00,0)(单单位位:英英寸寸)说明:说明:说明:说明:1 1 1 1英寸英寸英寸英寸=2.54=2.54=2.54=2.54厘米厘米厘米厘米2.4 场地的各种标志及尺寸04040404(单单位位:厘厘米米)2.5 2.5 球与车的长度尺寸球与车的长度尺寸05050505前前约约4.3184.318球球机器人机器人约约7.97567.9756(0.0,0.0)(0.0,0.0)X XY Y转角方向转角方向 0 0(单单位位:厘厘米米)转角方向转角方向-179-1792.6 程序每周期接受的数据仿真平台传递给策略程序的数据仿真平台传递给策略程序的数据:己方、对方

9、机器人坐标、角度(当前周期,上一周期)。己方、对方机器人坐标、角度(当前周期,上一周期)。球的坐标(当前周期,上一周期)。球的坐标(当前周期,上一周期)。场地数据。场地数据。控球方。控球方。060606062.7 程序每周期发送的数据策略程序发送给仿真平台的数据策略程序发送给仿真平台的数据:己方己方(homei)(homei)每个机器人的左轮速度(每个机器人的左轮速度(vlvl)和右轮速)和右轮速度(度(vrvr)注:注:当前发送的数据要到下一周期才能执行。当前发送的数据要到下一周期才能执行。070707073.动作函数及演示3.1 Velocity 动作函数该动作可以给机器人自由的发轮速(在

10、该程序中可以简单该动作可以给机器人自由的发轮速(在该程序中可以简单的认为轮速就是机器人的推进力)。的认为轮速就是机器人的推进力)。小车速度被限制为小车速度被限制为 125 125 125125 之间。之间。/形参形参robot robot 指定小车号指定小车号 /形参形参vl vl 左轮速左轮速,vr,vr 右轮速右轮速void Velocity(Robot*robot,int vl,int vr);void Velocity(Robot*robot,int vl,int vr);3.1.1 3.1.1 机器人的运动控制机器人的运动控制02020202左轮速左轮速vlvl右轮速右轮速vrvr当

11、轮速为负时,当轮速为负时,机器人反向运动机器人反向运动注注:vl vr vl vr 机器人顺时针旋转机器人顺时针旋转 vl vr vl home2,20,20);Velocity(&env-home2,20,20);/让让1 1号机器人左轮子都以号机器人左轮子都以-20-20的轮速后退的轮速后退Velocity(&env-home1,-20,-20);Velocity(&env-home1,-20,-20);/给给3 3号机器人左轮发号机器人左轮发100,100,右轮发右轮发2020Velocity(&env-home3,100,20);Velocity(&env-home3,100,20);

12、030303033.2 Angle 动作函数 该动作可以让机器人转到指定的任意角度。并做直线运动。该动作可以让机器人转到指定的任意角度。并做直线运动。/形参形参robot robot 指定小车号指定小车号/形参形参desired_angledesired_angle为转角度数为转角度数void Angle(Robot*robot,int desired_angle);void Angle(Robot*robot,int desired_angle);040404043.2.1 机器人的转角控制0505050530度左轮速左轮速vlvl右轮速右轮速vrvr-180度度+180度度-60度左轮速左

13、轮速vlvl右轮速右轮速vrvr当角度为负时,当角度为负时,机器人反向运动机器人反向运动3.2.2 Angle例子void NormalAngle(Environment*env)void NormalAngle(Environment*env)/让让1 1号机器人转到号机器人转到3030度角度角Angle(&env-home1,30);Angle(&env-home1,30);/让让3 3号机器人转到号机器人转到-60-60度角度角Angle(&env-home3,-60);Angle(&env-home3,-60);060606063.3 Position 动作函数该动作可以让机器人跑到场

14、地上指定的任何地点。该动作可以让机器人跑到场地上指定的任何地点。/形参形参robot robot 指定小车号指定小车号 /形参形参 x x 目标位置目标位置X X坐标坐标 y y 目标位置目标位置Y Y坐标坐标void Position(Robot*robot,double x,void Position(Robot*robot,double x,double y);double y);070707073.3.1 机器人的指定点运动08080808?度度左轮速左轮速vlvl右轮速右轮速vrvr球位置球位置2 2球位置球位置1 1Position Position Position Positi

15、on 函数函数函数函数 根据目标位置可进行转角的控制。根据目标位置可进行转角的控制。3.3.2 Position例子void NormalPosition(Environment*env)void NormalPosition(Environment*env)/让让2 2号机器人追着球跑号机器人追着球跑Position(&env-home2,env-,Position(&env-home2,env-,env-);env-);/让让2 2号机器人跑到场地中心号机器人跑到场地中心double x=(env-fieldBounds.left+env-fieldBounds.right)/2;doub

16、le x=(env-fieldBounds.left+env-fieldBounds.right)/2;double y=(env-fieldBounds.bottom+env-fieldBounds.top)/2;double y=(env-fieldBounds.bottom+env-fieldBounds.top)/2;Position(&env-home2,x,y);Position(&env-home2,x,y);090909093.4 三个动作函数组合使用void Normal(Environment*env)void Normal(Environment*env)Position

17、(&env-home0,Position(&env-home0,env-goalBounds.left+10,env-goalBounds.left+10,env-)env-);/让让0 0号机器人在球门附近跟着球号机器人在球门附近跟着球 的的y y坐标跑坐标跑Velocity(&env-home1,10,70);Velocity(&env-home1,10,70);/让让1 1号机器人逆时针转圈号机器人逆时针转圈Position(&env-home2,Position(&env-home2,env-,env-,env-);env-);/让让2 2号机器人追着球跑号机器人追着球跑Angle(&

18、env-home3,-60);Angle(&env-home3,-60);/让让3 3号机器人追着球跑号机器人追着球跑Velocity(&env-home4,5,5);Velocity(&env-home4,5,5);/让让1 1号机器人逆时针转圈号机器人逆时针转圈 101010103.5 注意事项l轮数速度限制为轮数速度限制为 -125-125 125125l平台原始接口中提供了比赛状态平台原始接口中提供了比赛状态(GameStateGameState)以及控球方以及控球方(WhosBallWhosBall)两个参数,但经过实际开发时发展他们毫无任两个参数,但经过实际开发时发展他们毫无任何用

19、处,故需要自己判断。何用处,故需要自己判断。l开发时发现他们毫无任何用处开发时发现他们毫无任何用处,故需要自己判断故需要自己判断l场地度量单位为英寸,场地度量单位为英寸,1 1英寸英寸 =2.54=2.54厘米厘米l机器人角度的单位为角度(机器人角度的单位为角度(不是弧度不是弧度)l如果场地不同,队伍需要转换左右半场坐标如果场地不同,队伍需要转换左右半场坐标111111114.策略程序的结构4.1 4.1 策略文件组成策略文件组成010101014.2 4.2 策略类视图策略类视图020202024.3 InterFace.h4.3 InterFace.h接口文件接口文件 这个文件有与仿真平台

20、通讯的一个结构这个文件有与仿真平台通讯的一个结构EnvironmentEnvironment和三个函数的声明和三个函数的声明/比赛开始时系统调用一次比赛开始时系统调用一次extern C STRATEGY_API void Create(Environment*env);/比赛过程中由系统循环调用(比赛过程中由系统循环调用(策略都放在里面策略都放在里面)。)。extern C STRATEGY_API void Strategy(Environment*env);/比赛结束时系统调用一次比赛结束时系统调用一次extern C STRATEGY_API void Destroy(Environm

21、ent*env);03030303 StrategyStrategy 接口函数解析接口函数解析04040404 函数接口函数接口 Strategy是程序的主要执行逻辑,由系统反复调用,每次是程序的主要执行逻辑,由系统反复调用,每次调用时系统通过调用时系统通过Environment*env这个指针向我们传递当前周期系统这个指针向我们传递当前周期系统提供信息,在这里,我们必须处理针对赛场上每一时刻的对策,通过策提供信息,在这里,我们必须处理针对赛场上每一时刻的对策,通过策略运算设置己方小车的左右轮转速,来控制机器人进行足球比赛。略运算设置己方小车的左右轮转速,来控制机器人进行足球比赛。每秒调用次数

22、依靠机器能力来定,默认为每秒调用次数依靠机器能力来定,默认为60次,即仿真的一个周期次,即仿真的一个周期为为1/60秒。秒。extern C STRATEGY_API void Strategy(Environment*env);4.3.2 4.3.2 InterFaceInterFace.h.h05050505/主要的定义主要的定义,包含所有运行时的的信息包含所有运行时的的信息,由系统刷新由系统刷新typedef structRobot homePLAYERS_PER_SIDE;/我方机器人数组我方机器人数组OpponentRobot opp PLAYERS_PER_SIDE;/敌方机器人数

23、组敌方机器人数组Ball currentBall,/当前小球的位置当前小球的位置 lastBall,/上一次小球的位置上一次小球的位置 predictedBall;/预计的小预计的小球的位置球的位置Bounds fieldBounds,/场地范围场地范围 goalBounds;/球门的位置与范围球门的位置与范围long gameState;/当前游戏的状态当前游戏的状态long whosBall;/由谁控制球由谁控制球void*userData;/用户自定义信息用户自定义信息 Environment;/位置向量定义位置向量定义typedef structtypedef struct doubl

24、e x,y,z;double x,y,z;/x/x 和和 y y 为坐标值为坐标值 Vector3D;Vector3D;060606064.3.3 InterFace.h4.3.3 InterFace.h/己方机器人的信息定义己方机器人的信息定义typedef structVector3D pos;/机器人坐标机器人坐标double rotation;/机器人方向角机器人方向角double velocityLeft,velocityRight;/机器人左右轮速度机器人左右轮速度 Robot;070707074.3.4 InterFace.h4.3.4 InterFace.h/敌方机器人的信息的

25、定义敌方机器人的信息的定义typedef structVector3D pos;/机器人的坐标位置机器人的坐标位置double rotation;/机器人当前的转角机器人当前的转角 OpponentRobot;080808084.3.5 InterFace.h4.3.5 InterFace.h/小球的位置定义小球的位置定义typedef structtypedef struct Vector3D pos;Vector3D pos;/小球的坐标位置小球的坐标位置 Ball;Ball;090909094.3.6 InterFace.h4.3.6 InterFace.h101010104.3.7 I

26、nterFace.h4.3.7 InterFace.h/场地区域范围场地区域范围typedef structtypedef struct long left,long left,/场地左边界场地左边界 right,right,/场地右边界场地右边界top,top,/场地上边界场地上边界bottom;bottom;/场地下边界场地下边界 Bounds;Bounds;4.4 4.4 Strategy.h Strategy.h 简单策略函数简单策略函数11111111/防守球门防守球门void Goalie1(Robot*robot,Environment*env);/控制小车在球场边线的控制控制小

27、车在球场边线的控制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 Strategy.h 简单策略函数简单策略函数12121212/机器人向小球的位置移动的方法机器人向小球的位置移动的方法void MoonAttack(Robot*robot,Environment

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com