FIRA培训第二课程PPT推荐.ppt

上传人:b****1 文档编号:14308748 上传时间:2022-10-22 格式:PPT 页数:47 大小:1.21MB
下载 相关 举报
FIRA培训第二课程PPT推荐.ppt_第1页
第1页 / 共47页
FIRA培训第二课程PPT推荐.ppt_第2页
第2页 / 共47页
FIRA培训第二课程PPT推荐.ppt_第3页
第3页 / 共47页
FIRA培训第二课程PPT推荐.ppt_第4页
第4页 / 共47页
FIRA培训第二课程PPT推荐.ppt_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

FIRA培训第二课程PPT推荐.ppt

《FIRA培训第二课程PPT推荐.ppt》由会员分享,可在线阅读,更多相关《FIRA培训第二课程PPT推荐.ppt(47页珍藏版)》请在冰豆网上搜索。

FIRA培训第二课程PPT推荐.ppt

有克服困难的能力;

04,1.仿真平台使用介绍,1.1演示一场比赛,01,VS,黄队,蓝队,武汉工程大学代表队,千人工程代表队,1.2机器人的编号,Home代表己方机器人Opp代表对方机器人箭头所指的方向为机器人当前的正方向,02,1.3机器人的辨认,每方队员有五名,分别用不同的颜色来标示,中间是代表队伍的颜色,在左下角是区分不同队员的标识:

0号一般是守门员,用大红色表示;

1号用紫色表示,2号用紫红色表示;

3号用绿色表示,4号用蓝绿色表示;

03,1.4MLS平台系统特点,机器人模型:

Yujin机器人的物理模型。

模拟精确:

碰撞检测完全,碰撞处理准确仿真极为真实(采用商业游戏引擎公司Havok的碰撞处理引擎作品帝国时代、CS等)。

系统界面:

3维(采用Director设计界面,3DMax建模)。

04,1.5MLS平台系统需求,硬件需求:

PentiumIII600MHz或与其性能相当的CPU;

256M系统内存;

具有32M显存的TNT2或其以上级别的显示卡;

至少可以实现800600分辨率的显示器;

软件需求:

Windows98或以上版本的操作系统;

DirectX8.0或以上版本;

05,1.6软件开发环境,LingoMicrosoftVisualC6.0MicrosoftVisualC.NET2003MicrosoftVisualC.NET2005,06,1.7MLS平台模板程序,平台提供了基本的策略开发框架,见安装目录下的StrategySource目录如:

C:

ProgramFilesRobotSoccerv1.5aStrategySource)。

其模板程序为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场地的各种标志及尺寸,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.1Velocity动作函数,该动作可以给机器人自由的发轮速(在该程序中可以简单的认为轮速就是机器人的推进力)。

小车速度被限制为125125之间。

/形参robot指定小车号/形参vl左轮速,vr右轮速voidVelocity(Robot*robot,intvl,intvr);

3.1.1机器人的运动控制,02,左轮速vl,右轮速vr,当轮速为负时,机器人反向运动,注:

vlvr机器人顺时针旋转vlvr机器人逆时针旋转,3.12Velocity例子,/一般动作voidNormalVelocity(Environment*env)/让2号机器人两个轮子都以10的轮速前进Velocity(,03,3.2Angle动作函数,该动作可以让机器人转到指定的任意角度。

并做直线运动。

/形参robot指定小车号/形参desired_angle为转角度数voidAngle(Robot*robot,intdesired_angle);

04,3.2.1机器人的转角控制,05,30度,左轮速vl,右轮速vr,-180度,+180度,-60度,左轮速vl,右轮速vr,当角度为负时,机器人反向运动,3.2.2Angle例子,voidNormalAngle(Environment*env)/让1号机器人转到30度角Angle(,06,3.3Position动作函数,该动作可以让机器人跑到场地上指定的任何地点。

/形参robot指定小车号/形参x目标位置X坐标y目标位置Y坐标voidPosition(Robot*robot,doublex,doubley);

07,3.3.1机器人的指定点运动,08,?

度,左轮速vl,右轮速vr,球位置2,球位置1,Position函数根据目标位置可进行转角的控制。

3.3.2Position例子,voidNormalPosition(Environment*env)/让2号机器人追着球跑Position(,09,3.4三个动作函数组合使用,voidNormal(Environment*env)Position(/让1号机器人逆时针转圈,10,3.5注意事项,轮数速度限制为-125125平台原始接口中提供了比赛状态(GameState)以及控球方(WhosBall)两个参数,但经过实际开发时发展他们毫无任何用处,故需要自己判断。

开发时发现他们毫无任何用处,故需要自己判断场地度量单位为英寸,1英寸=2.54厘米机器人角度的单位为角度(不是弧度)如果场地不同,队伍需要转换左右半场坐标,11,4.策略程序的结构,4.1策略文件组成,01,4.2策略类视图,02,4.3InterFace.h接口文件,这个文件有与仿真平台通讯的一个结构Environment和三个函数的声明/比赛开始时系统调用一次externCSTRATEGY_APIvoidCreate(Environment*env);

/比赛过程中由系统循环调用(策略都放在里面)。

externCSTRATEGY_APIvoidStrategy(Environment*env);

/比赛结束时系统调用一次externCSTRATEGY_APIvoidDestroy(Environment*env);

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

每秒调用次数依靠机器能力来定,默认为60次,即仿真的一个周期为1/60秒。

4.3.2InterFace.h,05,/主要的定义,包含所有运行时的的信息,由系统刷新typedefstructRobothomePLAYERS_PER_SIDE;

/我方机器人数组OpponentRobotoppPLAYERS_PER_SIDE;

/敌方机器人数组BallcurrentBall,/当前小球的位置lastBall,/上一次小球的位置predictedBall;

/预计的小球的位置BoundsfieldBounds,/场地范围goalBounds;

/球门的位置与范围longgameState;

/当前游戏的状态longwhosBall;

/由谁控制球void*userData;

/用户自定义信息Environment;

/位置向量定义typedefstructdoublex,y,z;

/x和y为坐标值Vector3D;

06,4.3.3InterFace.h,/己方机器人的信息定义typedefstructVector3Dpos;

/机器人坐标doublerotation;

/机器人方向角doublevelocityLeft,velocityRight;

/机器人左右轮速度Robot;

07,4.3.4InterFace.h,/敌方机器人的信息的定义typedefstructVector3Dpos;

/机器人的坐标位置doublerotation;

/机器人当前的转角OpponentRobot;

08,4.3.5InterFace.h,/小球的位置定义typedefstructVector3Dpos;

/小球的坐标位置Ball;

09,4.3.6InterFace.h,10,4.3.7InterFace.h,/场地区域范围typedefstructlongleft,/场地左边界right,/场地右边界top,/场地上边界bottom;

/场地下边界Bounds;

4.4Strategy.h简单策略函数,11,/防守球门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简单策略函数,12,/机器人向小球的位置移动的方法voidMoonAttack(Robot*robot,Environment*env);

/对敌方的跟踪voidMoonFollowOpponent(Robot*robot,OpponentRobot*opponent);

/预估小球的位置voidPredictBall(Environment*env);

4.5Action.h基本动作函数,13,/设置小车轮子速度voidVelocity(Robot*robot,intvl,intvr);

/小车转角控制voidAngle(Robot*robot,intdesired_angle);

/移动小车到指定位置voidPosition(Robot*robot,doublex,doubley);

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

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1