机器人实验报告组长超_第1页
机器人实验报告组长超_第2页
机器人实验报告组长超_第3页
机器人实验报告组长超_第4页
机器人实验报告组长超_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机与信息学院机器人足球实验计算机科学与技术实验一一、实验目的掌握RoboCup仿真机器人足球比赛相关知识点,具体内容如下:(1)(2)Linux操作系统的熟悉及了解其基本操作。掌握Linux下如何进行C++编程,了解gcc编译器以及一些简单编辑vi、emacs、gedijuta、Kdevelope等。(计算机与信息学院机器人足球实验计算机科学与技术实验一一、实验目的掌握RoboCup仿真机器人足球比赛相关知识点,具体内容如下:(1)(2)Linux操作系统的熟悉及了解其基本操作。掌握Linux下如何进行C++编程,了解gcc编译器以及一些简单编辑vi、emacs、gedijuta、Kdevelope等。(3)RoboCup仿真(2D)足球队的比赛。二、实验设备硬件环境:PC机软件环境:操作系统linux三、实验内容(1)Linux一些常用令a)如何找到用户主目录的绝对路径名?在自己的系统上,用户主目录的绝对路径名是什么?pwd/home/student如何显示当前目录?cd/home/Tsinghua如何在当前目录下建立子目录RoboCup?mkdir RobcupRoboCup?rmdirRobcup?ls使用什么命令?(6)start.sh的权限设定为:start.sh属于可读、可写、可执行?od777start.sh(7)如何将当前目录包括所有子目录全部做备份文件,备份文件名为.tar?tarxvf dir1.tar(8)如何将目录/home下每一个文件压缩成.gz文件?tar-zcwf.tar(9)如何把上例中每个压缩的文件解压,并列出详细的信息?tarxvfLs-lg.tar实验二1了解Demeer5的工作原理学会对Demeer5进行简单的修改二、实验设备硬件环境:PCLinux三、实验内容(1)如果可踢球就用最大力踢球elseif(WM->isBallKickable())我脚下(可踢){//如果球已知,而且当前球在ition=(PITCH_LENGTH/2.0,(-1+2*(WM->getCurrentCycle()%2))*0.4*SS->getGoalWidth());,SS->getBallSpeedMax());ACT->ACT->实验二1了解Demeer5的工作原理学会对Demeer5进行简单的修改二、实验设备硬件环境:PCLinux三、实验内容(1)如果可踢球就用最大力踢球elseif(WM->isBallKickable())我脚下(可踢){//如果球已知,而且当前球在ition=(PITCH_LENGTH/2.0,(-1+2*(WM->getCurrentCycle()%2))*0.4*SS->getGoalWidth());,SS->getBallSpeedMax());ACT->ACT->mandInQueue(soc);//放入命令队列mandInQueue(turnNeckToObject(OBJECT_BALL,soc));}(2)如果球不可踢且我是队友中最快到达球的队员,则去截球elseif(WM->getFastestInSetTo(OBJECT_SET_TEAMMATES,OBJECT_BALL,&iTmp)&&!WM->isDeadBallThem())//如果球不在抢球动作{控制范围下,但是当前能最快抢到球的是我,去执行Log.log(100,"Iamfastesttoball;cangettherein%dcycles",iTmp);soc= ercept(false);mandInQueue(soc);mandInQueue( turnNeckToObject( OBJECT_BALL,soc));(3)其他情况按点跑位elseif(Agent.getDis ition())>1.5+fabs(Agent.getX()-Ball.getX())/10.0)//到了这里就是其他距离球相对远一点的人了,如果离自己的阵形点太远,就跑回自己的阵形点去。{if(WM->getAgentStamina().getStamina()>SS->getRecoverDecThr()*SS->getStaminaMax()+800){soc=(WM->getStrategicmandInQueue(soc);mandInQueue(OBJECT_BALL,soc));}(4)将球踢方球门elseif(WM->isBallKickable())下(可踢){//如果球已知,而且当前球在我脚ition=(PITCH_LENGTH/2.0,(-1+2*(WM->getCurrentCycle()%2))*0.4*SS->getGoalWidth());坐标//得到对方球门的Max()+800){soc=(WM->getStrategicmandInQueue(soc);mandInQueue(OBJECT_BALL,soc));}(4)将球踢方球门elseif(WM->isBallKickable())下(可踢){//如果球已知,而且当前球在我脚ition=(PITCH_LENGTH/2.0,(-1+2*(WM->getCurrentCycle()%2))*0.4*SS->getGoalWidth());坐标//得到对方球门的ACT->ACT->mandInQueue(soc);mandInQueue(turnNeckToObject(OBJECT_BALL,soc));(5)将球踢向距自己最近的球员elseif(WM->isBallKickable())下(可踢){//如果球已知,而且当前球在我脚ition vec=WM->globalition(WM->getClosestInSetToAgent));mandInQueue(soc);mandInQueue(turnNeckToObject(OBJECT_BALL,soc));}DRIBBLE_SLOWdribble(vec,DRIBBLE…)快速带球DRIBBLE_WITHBALL安全带球的模式带球(8)方球门带球elseif(WM->isBallKickable()){AngDegang=0.0;mandInQueue(soc);mandInQueue(turnNeckToObject(OBJECT_BALL,soc));}(9)不同的带球组合elseif(WM->isBallKickable()){if(WM->is heirPenaltyArea(WM->getBall{()))ition=(PITCH_LENGTH/2.0,(-1+2*(WM->getCurrentCycle()%2))}(9)不同的带球组合elseif(WM->isBallKickable()){if(WM->is heirPenaltyArea(WM->getBall{()))ition=(PITCH_LENGTH/2.0,(-1+2*(WM->getCurrentCycle()%2))*0.4*SS->getGoalWidth());soc=kickTo( ,SS->getBallSpeedMax());}else{AngDegang=0.0;}AngDegang=0.0;mandInQueuesoc放入命令队列mandInQueue(turnNeckToObject(OBJECT_BALL,soc));}实验三一、.实验目的熟悉demeer5并学会demeer5的基本使用方法,具体内容如下:二、实验设备:硬件设备:pc机软件设备:操作系统linux三、实验内容7实验三一、.实验目的熟悉demeer5并学会demeer5的基本使用方法,具体内容如下:二、实验设备:硬件设备:pc机软件设备:操作系统linux三、实验内容7、8、9号队友就超前方带球,其他队9号elseif(WM->isBallKickable()){if(WM->is heirPenaltyArea(WM->getBall{()))ition=(PITCH_LENGTH/2.0,(-1+2*(WM->getCurrentCycle()%2))*0.4*SS->getGoalWidth());,SS->getBallSpeedMax());}else{{AngDegang=0.0;}else{soc=leadingPass(OBJECT_OPPONENT_9,1);}}AngDegang=0.0;mandInQueue(soc);mandInQueue(turnNeckToObject(OBJECT_BALL,soc));}(2)如果队员的位置在自己半场就elseif(WM->isBallKickable()<=0){方球门踢球,否则就向前方带球if(WM->getBall{().getX()<=0)ition=(PITCH_LENGTH/2.0,(-1+2*(WM->getCurrentCycle()%2))*0.4*SS->getGoalWidth());,SS->getBallSpeedMax());}else{AngDegang=0.0;}AngDegang=0.0;mandInQueue(soc);0.4*SS->getGoalWidth());,SS->getBallSpeedMax());}else{AngDegang=0.0;}AngDegang=0.0;mandInQueue(soc);mandInQueue(turnNeckToObject(OBJECT_BALL,soc));}(3)担忧人来抢球时,就将球传给离自己最近的队友,否则就自己带球elseif(WM->isBallKickable()){Circlecir(Agent,2.5);if(num<2){itionvec=WM->getGlobal));Agentsoc=kickTo(vec,2.0);}else{}mandInQueue(soc放入命令队列mandInQueue(turnNeckToObject(OBJECT_BALL,soc));}实验四一、实验目的进一步了解demeer5并能熟悉的修改demeer5的内容以达到对场上的球员的控制能理解UVAdemeerdemeer中的全部控制demeer5中的具体函数内容实现对场上球员的控制worldmwoeldm,basicplayer里添加新函数二、实验设备linux三、实验内容(1)判断守门员的位置,朝门空隙较大的一方射门elseif(WM->isBallKickable()){itionvec=WM->getGlobalition(WM->getOppGoa if(vec.getY()>0){ition=(52.2,-6.5);,SS->getBallSpeedMax());}else{实验四一、实验目的进一步了解demeer5并能熟悉的修改demeer5的内容以达到对场上的球员的控制能理解UVAdemeerdemeer中的全部控制demeer5中的具体函数内容实现对场上球员的控制worldmwoeldm,basicplayer里添加新函数二、实验设备linux三、实验内容(1)判断守门员的位置,朝门空隙较大的一方射门elseif(WM->isBallKickable()){itionvec=WM->getGlobalition(WM->getOppGoa if(vec.getY()>0){ition=(52.2,-6.5);,SS->getBallSpeedMax());}else{ition1=(52.5,6.5);1,SS->getBallSpeedMax());}}mandInQueue(soc);mandInQueue(turnNeckToObject(OBJECT_BALL,soc));力添加一个带球函数,要求如果无人阻挡就向球门带球,否则想办法避开对方球员带球前进isOpponen.h,在里面预定义函数,即写入boolAngleEx(AngDegangA,AngDegangB,doubledDist;该函数用来angA~angB之间距离小于dDist的范围内是否有对方队员WorldM.c在里面填加一个新函数::isOpponenAngleEx(AngDegangA,AngDegangB,doubledDist){itionitionAgentOpp;angOpp;=getAgentGlobalition();AngDegiIndex;for(ObjectTo=iterateObjectStart(iIndex,OBJECT_SET_OPPONENTS);o!=OBJECT_ILLEGAL;o=iterateObjectNext(iIndex,OBJECT_SET_OPPONENTS)){OppangOpp=getGlobal ition(o);=(Opp-Agent).getDirection();if(angA<=angOpp&&angOppo!=OBJECT_ILLEGAL;o=iterateObjectNext(iIndex,OBJECT_SET_OPPONENTS)){OppangOpp=getGlobal ition(o);=(Opp-Agent).getDirection();if(angA<=angOpp&&angOpp<=angB&&returntrue;Agent.getDisOpp)<dDist)}iterateObjectDone(iIndex);returnfalse;}在playerteams.cpp中添加elseif(WM->isBallKickable()){Circlecir(Agent,2.5);if(num<2){doubleang=(Vecition(52.5,0)-Agent).getDirection();if(WM->isOpponenang+=45;AngleEx(ang-45,ang,6))elseif(WM->isOpponenang-=45;AngleEx(ang,ang+45,6))mandsoc=dribble(ang,DRIBBLE_SLOW);}else{}mandInQueue(soc);mandInQueue(turnNeckToObject(OBJECT_BALL,soc));}实验五视觉改变:mand view1122333(mandsoc );)做定义;mandsoc )函数做定义如下:view1122333mandsocBasicplayer.cpp中view1122333((“1”60度,“2”120,“3”180)*/mandBasicPlayer::view1122333(mandsoc){实验五视觉改变:mand view1122333(mandsoc );)做定义;mandsoc )函数做定义如下:view1122333mandsocBasicplayer.cpp中view1122333((“1”60度,“2”120,“3”180)*/mandBasicPlayer::view1122333(mandsoc){-->7份itionAgent=WM->getAgentGlobalition();le();AngDegangBody=WM->getAgentGlobalBodAngDegangTurn=30;switch(WM->getCurrentCycle()%7){case0:angTurn-=60;case1:mandInQueue(mandInQueue(turnNeckToPo (ition(Turn),POLAR),5,Vec ition::normalizeAngle(angBodsoc));break;case2:case3:mandInQueue(POLAR),soc));break;case4:case5:case6:Act->break;default:;}}mandInQueue(turnNeckToPo (ition(5,angBody,mandinqueue(mand(cmd_changeview,va_wide,vq_high));mandInQueue(view1122333(soc));就可看到明显的视觉变化实验六特殊比赛模式的设计模式一:单纯的比赛模式来判断中球可踢情况下加入如下特殊模式elseif(WM->isBallKickable()){if(WM->isKickInUs())//我方界外球{//

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论