机器人足球培训.ppt

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

《机器人足球培训.ppt》由会员分享,可在线阅读,更多相关《机器人足球培训.ppt(47页珍藏版)》请在三一办公上搜索。

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

2、指的方向为机器人当前的正方向,02,1.3 机器人的辨认,每方队员有五名,分别用不同的颜色来标示,中间是代表队伍的颜色,在左下角是区分不同队员的标识:0号一般是守门员,用大红色表示;1号用紫色表示,2号用紫红色表示;3号用绿色表示,4号用蓝绿色表示;,03,1.4 MLS平台系统特点,机器人模型:Yujin机器人的物理模型。模拟精确:碰撞检测完全,碰撞处理准确仿真极为真实(采用商业游戏引擎公司Havok的碰撞处理引擎 作品 帝国时代、CS等)。系统界面:3维(采用Director设计界面,3D Max建模)。,04,1.5 MLS平台系统需求,硬件需求:Pentium III 600 MHz或

3、与其性能相当的CPU;256M系统内存;具有32M显存的TNT2或其以上级别的显示卡;至少可以实现800600分辨率的显示器;软件需求:Windows98或以上版本的操作系统;DirectX 8.0或以上版本;,05,1.6 软件开发环境,LingoMicrosoft Visual C6.0Microsoft Visual C.NET 2003Microsoft Visual C.NET 2005,06,1.7 MLS平台模板程序,平台提供了基本的策略开发框架,见安装目录下的Strategy Source目录 如:C:Program FilesRobot Soccer v1.5aStrateg

4、y Source)。其模板程序为DLL动态联接库。,07,2.仿真平台与策略程序的关系,2.1 什么是策略程序?,定义:策略程序就是自己编写的能够使仿真平台中机器人按照预定方式运动的程序。通俗的来说,就是能够打比赛的程序。,01,2.2 仿真平台与程序的通讯方式,02,策略程序接受数据,策略程序发送数据,MLS平台,MLS策略程序,策略程序将接受的数据进行处理,2.3 场地信息介绍,03,(6.8118,6.3730),(6.8118,77.2392),(93.4259,77.2392),(93.4259,6.3730),(0,0),(单位:英寸),说明:1英寸=2.54厘米,2.4 场地的各

5、种标志及尺寸,04,(单位:厘米),2.5 球与车的长度尺寸,05,前,约4.318,球,机器人,约7.9756,(0.0,0.0),X,Y,转角方向 0,(单位:厘米),转角方向-179,2.6 程序每周期接受的数据,仿真平台传递给策略程序的数据:己方、对方机器人坐标、角度(当前周期,上一周期)。球的坐标(当前周期,上一周期)。场地数据。控球方。,06,2.7 程序每周期发送的数据,策略程序发送给仿真平台的数据:己方(homei)每个机器人的左轮速度(vl)和右轮速度(vr)注:当前发送的数据要到下一周期才能执行。,07,3.动作函数及演示,3.1 Velocity 动作函数,该动作可以给机

6、器人自由的发轮速(在该程序中可以简单的认为轮速就是机器人的推进力)。小车速度被限制为 125 125 之间。/形参robot 指定小车号/形参vl 左轮速,vr 右轮速void Velocity(Robot*robot,int vl,int vr);,3.1.1 机器人的运动控制,02,左轮速vl,右轮速vr,当轮速为负时,机器人反向运动,注:vl vr 机器人顺时针旋转 vl vr 机器人逆时针旋转,3.12 Velocity 例子,/一般动作void NormalVelocity(Environment*env)/让2号机器人两个轮子都以10的轮速前进Velocity(,03,3.2 An

7、gle 动作函数,该动作可以让机器人转到指定的任意角度。并做直线运动。/形参robot 指定小车号/形参desired_angle为转角度数void Angle(Robot*robot,int desired_angle);,04,3.2.1 机器人的转角控制,05,30度,左轮速vl,右轮速vr,-180度,+180度,-60度,左轮速vl,右轮速vr,当角度为负时,机器人反向运动,3.2.2 Angle例子,void NormalAngle(Environment*env)/让1号机器人转到30度角Angle(,06,3.3 Position 动作函数,该动作可以让机器人跑到场地上指定的任

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

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

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

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

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

13、uble velocityLeft,velocityRight;/机器人左右轮速度 Robot;,07,4.3.4 InterFace.h,/敌方机器人的信息的定义typedef structVector3D pos;/机器人的坐标位置double rotation;/机器人当前的转角 OpponentRobot;,08,4.3.5 InterFace.h,/小球的位置定义typedef structVector3D pos;/小球的坐标位置 Ball;,09,4.3.6 InterFace.h,10,4.3.7 InterFace.h,/场地区域范围typedef structlong le

14、ft,/场地左边界 right,/场地右边界top,/场地上边界bottom;/场地下边界 Bounds;,4.4 Strategy.h 简单策略函数,11,/防守球门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 l

15、ow,double high);,Strategy.h 简单策略函数,12,/机器人向小球的位置移动的方法void MoonAttack(Robot*robot,Environment*env);/对敌方的跟踪void MoonFollowOpponent(Robot*robot,OpponentRobot*opponent);/预估小球的位置void PredictBall(Environment*env);,4.5 Action.h 基本动作函数,13,/设置小车轮子速度void Velocity(Robot*robot,int vl,int vr);/小车转角控制void Angle(Robot*robot,int desired_angle);/移动小车到指定位置void Position(Robot*robot,double x,double y);,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号