robocup机器人足球仿真第6章ppt课件.ppt

robocup机器人足球仿真第6章ppt课件.ppt

ID:58880074

大小:1.45 MB

页数:75页

时间:2020-09-30

robocup机器人足球仿真第6章ppt课件.ppt_第1页
robocup机器人足球仿真第6章ppt课件.ppt_第2页
robocup机器人足球仿真第6章ppt课件.ppt_第3页
robocup机器人足球仿真第6章ppt课件.ppt_第4页
robocup机器人足球仿真第6章ppt课件.ppt_第5页
资源描述:

《robocup机器人足球仿真第6章ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章球员智能体的基本动作本章概要原子动作中间动作高级动作6.1原子动作catchAngDegang=(posBall-posGolia).getDirection();ang=VecPosition::normalizeAngle(ang-WM->getAgentGlobalBodyAngle());soc.makeCommand(CMD_CATCH,ang);ACT->putCommandInQueue(soc);turnsoc=SoccerCommand(CMD_TURN,45);turn_ne

2、ckSoc=SoccerCommand(CMD_TURNNECK,-60);6.1原子动作moveSoc=SoccerCommand(CMD_MOVE,0,0);dashSoc=SoccerCommand(CMD_DASH,80,45);kickSoc=SoccerCommand(CMD_KICK,100,90);saySoc.makeCommand(CMD_SAY,“ABC123”);6.2中间动作Dribble带球kickTo踢球mark盯防turnBodyToPoint转身体到某点interce

3、pt截球……….6.2中间动作-Dribble带球的原型:SoccerCommanddribble(AngDegang,DribbleTdribbleT);该方法使球员智能体带球。即与球一起移动,并把球保持在一定的距离内。这实际上是重复做将球在一定的速度下踢向期望的方向,然后将其再次截住。参数ang表示带球球的方向。其中第二个参数有三种形式:DRIBBLEFAST:速度较快的带球动作,球员智能体每次将球踢向相对自己较远的前方。DRIBBLESLOW:速度较慢的带球动作,球员智能体将球保持在相对自己较近

4、的位置。DRIBBLEWITHBALL:非常安全的带球动作,球员智能体将球保持在离自己身体非常近的位置。6.2中间动作-DribbleAngDegangDribble=(VecPosition(52.5,0)-posAgent).getDirection();Circlecir(posAgent,9);//定义这样一个圆形区域,以我为圆心,6为半径intnum=WM->getNrInSetInCircle(OBJECT_SET_OPPONENTS,cir);//这样就从对方球员集合中计算所有在cir中

5、的个数。if(num>0){cout<<"我是"<getPlayerNumber()<<"号,现在周围敌人多,我要慢点带球!"<getPlayerNumber()<<"号,现在周围没人,快带球冲刺!"<putCommandInQueue(soc);returnsoc;

6、6.2中间动作-kickTo踢球kickTo函数原型:SoccerCommandkickTo(VecPositionposTarget,doubledEndSpeed)该方法使球员智能体将球从当前位置,踢向指定的位置,并保持球的末速度为dEndSpeed。通过一个单独的kick命令,球的末速度很可能达不到指定的速度,原因有两个指定的速度大于球的最大速度当前的球速结合其相对于球员智能体的位置无法使球加速到指定速度。对于第一个原因,如果目标速度超过最大速度某个百分比,则踢球命令将被执行个忽略该速度。第二个

7、原因,球员智能体使用kickBallCloseToBody将球直接踢向靠近自己的位置,这样球员智能体可以在下个周期使用更大的power将球踢出。6.2中间动作-kickTo代码事例:将球踢向最近的队友doubledist;ObjectTobjTea=WM->getClosestInSetTo(OBJECT_SET_TEAMMATES,WM->getAgentObjectType(),&dist);//获得距离我最近的队友,距离由dist返回。VecPositionposTea=WM->getGloba

8、lPosition(objTea);soc=kickTo(posTea,SS->getBallSpeedMax());//最大速度踢向队友所在点ACT->putCommandInQueue(soc);returnsoc;6.2中间动作-向某点转身体向某点转身体的函数原型:SoccerCommandturnBodyToPoint(VecPositionpos,intiCycle=1)该方法将球员智能体的身体转向某一点。它接受一个场上绝对坐标作为参数,返回一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。