仿真机器人足球比赛11vs11策略浅谈.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
仿真机器人足球比赛11vs11策略浅谈

仿真机器人足球比赛11vs11策略浅谈摘要:仿真系统所要做的是在计算机系统上给用户提供一个类似于真实世界的虚拟环境。仿真机器人足球比赛程序:根据赛方给定的仿真平台和底层,研究了底层函数以及机器人足球比赛参数传递机制后,选手需要在底层中的StrategySystem.cpp中编写自己的策略部分,然后双方球队把策略加载到平台上进行比赛,按照既定的规则决出正负。 关键词:机器人足球比赛仿真平台(11vs11)使用;仿真机器人足球比赛(11vs11)底层优化方法 中图分类号:TP242 文献标识码:A 文章编号:1007-9599 (2012) 11-0000-02 仿真机器人足球比赛(SimuroSot) 仿真机器人足球比赛,就是在计算机系统上给用户提供一个类似于真实世界的虚拟环境,我们可以在平台上通过运行编写好的底层程序来实现机器人足球的比赛。 一、机器人足球仿真平台 机器人足球仿真平台相当于现实中的球场场地,主要提供机器人比赛的场地。 (一)平台三大部分 1.CStrategySystem(); //系统层----用编写基本动作函数和处理数据的辅助函数 2.void ReceiveData(ReceiveRobot *r,double GameTime,int GameMode); //数据层-----用以获取平台返还数据 3.void Action(); //执行层----实现机器人的具体动作 (二)台常用变量定义 FPoint KickTag; //踢球目标,KickTag含(x,y,angle)三个参数 CPoint KickTag; //踢球目标,KickTag含(x,y)两个参数 Robot robot[23]; //22号为足球,0——10为我方球员,11——21为对方球员。 Robot *Home[11],*Ball; //我方队员和足球。由于以上两个变量是结构指针,调用时应该用以下形式 例如: Home[0]-Position.xBall-Position.x Robot *OGK,*OMK;//对方守门员、主要踢球者 int WhichK; //踢球者 double LenH,LenO; //足球距自己大门,对方大门的距离 二、仿真机器人足球比赛底层优化 (一)底层的主要结构 主函数:Action()——决策函数,在此进行策略编写构造函数:CStrategySystem()——对成员变量初始值的设定初始计算:CalcSpeed()——对平台数据的计算以及状态判断 数据恢复:DataReset() ——数据的重置 (二)基本函数功能分析 void CalcSpeed(); //计算速度、角度 void PositionAcc(int which, FPoint point, bool NeedSlow=false); //精确跑位 void Position(int which, FPoint point); //一般跑位 void Position Slow(int which,FPoint point);//慢速跑位 解析:通常用一般跑位函数进行机器的跑位,效果较好。11vs11机器人在比赛时速度都较快,移动速度很快,不适宜用精确跑位和慢速跑位。 void PositionGoal(FPoint point); //守门员跑位 解析:一般不用守门员跑位函数,底层自带的守门员函数已经比较强大了,守门员的主要任务就是防守,所以通常比赛不用守门员函数。 double PositionDirCircle(int which, FPoint tag, double r=CircleR, int lr=0); //切线圆跑位 解析:切线圆跑位函数是个很优质的跑位的函数,它能保证机器人沿切线取很短的距离和很大速度跑出去。这个函数在比赛进攻和防守中都常用到。 void PositionDirMiddle(int which, FPoint tag); //中位线跑位 解析:中位线跑位就是沿着cy() void Velocity(int which, int vL, int vR); //设置机器人左右轮速 Kick(); //踢球 解析:(缺点)踢球方向不准,未对球运动方向预测,机器人存在卡死现象。 方法调用条件不满足:无防碰撞机制。 三、仿真机器人足球比赛策略 (一)编写策略建议 1.分区不要太细 2.相邻分区阵型要相容 3.不要随意更换机器人角色 4.注意函数使用条件 5.严格控制犯规 (二)比赛

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档