机器人足球实验报告

上传人:feng****ing 文档编号:58275742 上传时间:2022-02-27 格式:DOC 页数:19 大小:327.50KB
返回 下载 相关 举报
机器人足球实验报告_第1页
第1页 / 共19页
机器人足球实验报告_第2页
第2页 / 共19页
机器人足球实验报告_第3页
第3页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
计算机与信息学院机器人足球实验报告计算机科学与技术实验一一、实验目的掌握RoboCup仿真机器人足球比赛相关知识点,具体内容如下:(1) Linux操作系统的熟悉及了解其基本操作。(2) 掌握Linux下如何进行C+编程,了解gcc编译器以及一些简单编辑工 具,如: vi、emacs gedit、Anjuta、Kdevelope 等。(3) 启动RoboCup仿真(2D)足球队的比赛。二、实验设备硬件环境:PC机软件环境:操作系统linux三、实验内容(1) 掌握Linux 些常用的命令a)如何找到用户主目录的绝对路径名 ?在自己的系统上,用户主目录的绝对路径名 是什么?pwd /home/stude nt(2) 将当前工作目录从/home/UVA转到/home/Tsinghua需要使用什么命令? 如何显示当前目录?cd /home/Ts in ghua(3) 如何在当前目录下建立子目录RoboCup?mkdir Robcup(4) 如何删除子目录 RoboCup?rmdir Robcup(5) 如何查看当前目录下的内容?ls如何将文件start.sh的权限设定为:start.sh属于可读、可写、可执行? chmod 777 start.sh(7) 如何将当前目录包括所有子目录全部做备份文件,备份文件名为first.tar?tar xvf dirl first.tar(8) 如何将目录/home下每一个文件压缩成.gz文件?tar -zcwf store.tar(9) 如何把上例中每个压缩的文件解压,并列出详细的信息?tar xvf store.tarLs -lg g a user(2useruser-106: /uva/uva_base_v13.2 x useruser-106: -/uva/uva_base_v13.20-vs-AA 0.rcg 0-vs-AA 0.rcl Gvsaaa Greg 0-vs-aaa O.rcl 3vsaaa_0.reg 0-vs-aaa O.rcl 0-vs-aa O.rcg 0-vs-aa_0.rcl 0vs-aaa 0reg 0-vs-aaa O.rcl 0vs-nullrcg 0-vs-null.rcl 0-vs-aaa Greg 0-vs-aaa O.rcl 0-vs-aaa_0.reg 0-vs-aaa O.rcl 0-vs-aa 0.reg 0-vs-aa_0.rcl evsaa O.rcg 0-vs-aa O.rcl Gvsnullreg 0-vs-null.rcluva_base_vl3.2 uva_base_vl3.2 (2) uvabase vl3.2.tar.gz useruser-106:*/uva$ cd uva base_vl3.2useruser-106:*/uva/uva base vl3.2$ Is 201211160355-UvA Base 2003 1-vs-ss l.rcg 201211160355-UvA Base 2003 1-vs-ss 1.rcl aclocal.m4AUTHORS ChangeLog config.guess config.h config.h.in config.log config.status config.sub configure useruser-106:*/uva/uva base vl3.2$ |configure.ac COPYING depcomp Doxyfile formations.conf Hfut_ReadMe INSTALL install-sh kk.txt libtool Itmain.sh MakefileMakefile.am Makefile.in messtxt missing mkinstalldirs NEWSREADMEsre stamp-hl start.bash start.sh 201211160424-UvA Base 2003 201211160424-UvA2Base_20e3 201211160426UvABas2%3 201211160426-UvA2Base 2003 201211160431-UvA_Base 2003 201211160431-UvABase2003 201211160436-UvA2Base 2093 201211160436-UvA Base 20G3 201211160438-UvABase-2093 201211160438-UvA Base 2003 201211160441-UvA Base 2003 261211168441-UvABase 2003 201211160444-UvA2Base20e3 201211160444-UvA2Base_2003 201211160449-UvA Base 2003 2ei211160449-UvABase20e3 201211160451-UvA2Base 2003 201211160451-UvA Base 2003 201211160455-UvABase20e3 201211160455-UvA Base 2003 201211180422-UvA Base 2003 201211180422-UvA2Base-2003 examples.desktopuseruser伽:$ cd uva useruser-166:*/uva$ Is 3 user(g)user-106: /uva/uvabasevU.Zuseruser-106: */uva/uva_base_v13.2user(a)user-106: */uva/uva_base_v13.2useruser-106:*$ Is201204272041-UvA Base 2003201204272041-UvA Base2612e4272057-UvAlBase261204272057-UvA Base 201204272059-UvA Base 261264272059-UvA Base2063 2693 206320032063201210140435-nuU-vs-null. reg2-vs-null.rcg2- vs-null.rcl3- vs-null.rcg 3-vs-n讥l.rcl 5-vs-null.rcg 5-vs-null.rcl201210140435-null-vs-null.rcl20030-2003e-26030-20030-20930-20930-20630-20030-20930-20930-26030-20930-20930-20630-20630-20030-20030-26030-20030-20930-20030-20630-20030-20939-20030-20030-20930-2063e-vs-aaa_0 ixg vs-aaa_0.rcl vs-aa_0.reg vs-aa 6cl vsaaa 0 rtg vs-aaa G.rcl vs-AA O.rcg vs-AA 0.rcl vsaaa 0.reg vsaaa_0.rcl vsaaa_0eg vsaaa 0 rtl vs-aa O.rcg vs-aa e.rcl vs-aaa O.rcg vs-aaa 0.rcl vs-null.rcg vsnull.rcl vs-aaa 0reg vsaaa 0 rtl vsaaa 3reg vs-aaa O.rcl vs-aa 0.reg vs.rcl vsaa_0 reg vsaa 0.rcl vs-null.reg vs-null.rcl201211020496-n讥lvsnull.reg201211020406-null-vs-nullrcl 2ei21116e3ee-nuU-vs-null. reg2ei21116039O-nuU-vs-null.rcl 201211160352-UvA_Base 201211160352-UvABase 201211160414-UvA2Base 201211160414-UvA2Base 261211160421-UvA Base 2ei211160421-UvAZBase 261211160424-UvA Base 201211160424-UvA Base 201211160426-UvA Base 201211160426-UvA2Base 201211160431-UvA2Base 201211160431-UvA2Base 201211160436-UvA Base 201211160436-UvABase 201211160438-UvA Base 201211160438-UvA Base 201211160441-UvA2Base 201211160441-UvA2Base 201211160444-UvA2Base 261211160444-UvA Base 261211160449-UvAZBase 201211160449-UvA Base 201211160451-UvA Base 201211160451-UvA Base 201211160455 UvABase 201211160455-UvA2Base 201211180422-UvA2Base 201211180422-UvA Base examples.desktopUbuntu One实验.doc l.odt实验二1、实验目的(1) 了解Demeer5的工作原理(2) 学会对Demeer5进行简单的修改二、实验设备 硬件环境:PC 软件环境:Lin ux三、实验内容(1) 如果可踢球就用最大力踢球else if( WM-isBallKickable()/如果球已知,而且当前球在我脚下(可踢)VecPositi onpos=(PITCH_LENGTH/2.0,(-1+2*(WM-getCurre ntCycle()%2) *0.4 * SS-getGoalWidth(); soc=kickTo(pos,SS-getBallSpeedMax();ACT-putCommandlnQueue( soc );/ 放入命令队列ACT-putComma ndl nQueue( turnNeckToObject( OBJECT_BALL, soc ); _(2) 如果球不可踢且我是队友中最快到达球的队员,则去截球else if( WM-getFastestInSetTo( OBJECT_SET_TEAMMATES, OBJECT_BALL, & iTmp )=WM-getAge ntObjectType() & !WM-isDeadBallThem()/如果球不在我的控制范围下,但是当前能最快抢到球的是我,那我就去执行 抢球动作Log .log( 100, I am fastest to ball; can get there in %d cycles, iTmp ); soc = in tercept( false );ACT-putComma ndln Queue( soc );ACT-putCommandlnQueue( turnNeckToObject( OBJECT_BALL, soc );(3) 其他情况按战略点跑位else if( posAge nt.getDista nceTo(WM-getStrategicPositio n() 1.5 + fabs(posAgent.getX()-posBall.getX()/10.0) / 到了这里就 是其他距离球相对远一点的人了,如果离自己的阵形点太远,就跑回自己的阵形点去。 if(WM-getAge ntStami na().getStami na()SS-getRecoverDecThr()*SS-getStami naMax()+800)soc=moveToPos(WM-getStrategicPositio n( ),PS-getPlayerWhe nToTurnA ngle();ACT-putComma ndln Queue( soc );ACT-putComma ndl nQueue( turnNeckToObject( OBJECT_BALL, soc );(4) 将球踢向对方球门else if( WM-isBallKickable()/如果球已知,而且当前球在我脚下(可踢)VecPositi onpos=(PITCH_LENGTH/2.0,(-1+2*(WM-getCurre ntCycle()%2) *0.4 * SS-getGoalWidth() );/得到对方球门的坐标soc=kickTo(pos,SS-getBallSpeedMax();ACT-putComma ndln Queue( soc );ACT-putComma ndl nQueue( turnNeckToObject( OBJECT_BALL, soc );(5) 将球踢向距自己最近的球员else if( WM-isBallKickable()/如果球已知,而且当前球在我脚下(可踢)VecPosition vec=WM-globalPosition(WM-getClosestInSetTo(OBJECT_SET_TEAMMATES,posAge nt);soc=kickTo(vec,2.0);ACT-putComma ndl nQueue(soc);ACT-putComma ndl nQueue( turnNeckToObject( OBJECT_BALL, soc ); _(7) 用不同的带球模式带球dribble(vec,DRIBBLE )快速带球慢速带球安全带球的模式带球分别用 DRIBBLE_FAST DRlBBLE_SLOW DRIBBLE_WITHBALL(8) 向对方球门带球else if( WM-isBallKickable()An gDeg an g=0.0; soc=dribble(a ng,DRIBBLE_FAST);ACT-putComma ndl nQueue(soc);ACT-putComma ndl nQueue( turnNeckToObject( OBJECT_BALL, soc );(9) 不同的带球组合else if( WM-isBallKickable()if(WM-isl nTheirPe naltyArea(WM-getBallPos()VecPositi onpos=(PITCH_LENGTH/2.0,(-12*(WM-getCurre ntCycle()%2) *0.4 * SS-getGoalWidth(); soc=kickTo(pos,SS-getBallSpeedMax();elseAn gDeg an g=0.0;soc=dribble(a ng,DRIBBLE_FAST);An gDeg an g=0.0;soc=dribble(a ng,DRIBBLE_FAST);ACT-putComma ndl nQueue( soc ); / 放入命令队列ACT-putComma ndl nQueue( turnNeckToObject( OBJECT_BALL, soc ); _ Qq useruser-106: -/uva/uva_base_v13.2user(a)user-106: /uva/uv useruser-106: -/uva/uv.useruser-106: /uva/uv useruser106:*/uva/uva base_vl3Copyright (C) 1995, 1996, 1997f 1998, 1999 Electrotechnical Laboratory 2000 2011 RoboCup Soccer Simulator Maintenance Group.Simulator Random Seed: 1353785042CSVSaver: ReadySTDOutSaver: ReadyUsing simulators random seed as Hetero Player Seed: 1353785042wind factor: rand: 0.000000, vector: (0.606000, 0.006660)Hit CTRL-C to exitraslogpSyer由。创 IS 03:2$ Quser 0未令名文件矣incompletc.rcgScrcrrwhot- tcrCliftCf-IOG:- bsie vt3.Copyright (Cl 2$W 2911 RoboCup Soccer Siaulator Mintenance Cro9plyeruser .rcssloplayer由。创 Q 33:27 Quser Ox user. x user. . x user. x user x user. UvA Tri.earn 7083 University of Assterdaa, Tbc Netherlands Base code version Created by:Jelle Kok cicorch Cordinotr:Hlk& 讥 Teat Coordinator:Frans Grow Copyright 2eee 2661.lie Kok mmI Rcnco de Boer Copyright 2eei 2802Jelle Kok Copyright 2902-2893Jelle Kok All rights reserved UVA Sowxe file Modify by Ming Gm for Server v!4 use reuser 166: */uva/wa bd$e_v!3.2$ /start. $h localhost ddaU) 【4】 (7) 18) 3255 3257 3259 3261 3263 3265 3268 3270 327210 327411 327612 32wruser 166:/uva/w base vl3.2$ (clang (clang (clang Ung (clang (clang (clang (clang (Ung (cUng (cUng (clang (clang (clang (Ung Ung (clang (clang (clang (clang (Clang Ungie6;*/uva7a vl3.2t(verIPaaa* 9) 8 8)J(ver(Paaa* 10) 8 8)(wr(Paaa* S) 8 8)(wr(PUvA Base 2W3) 8 81)(verIPaaa* 3) 8 8)(ver 8 8M(*erUvA Ba* 2W3 8 81)(wr(PUvA Base 2W8 8 81)(ver 8 8I(ver(Pf 6) 8 8)(wr(PUvA Bae 29O35) 8 8|(wr(PUvA Ba* 2WJ*ID 8 8)(ver(PUvA Base 2W6) 8 81)(verIPdaa* 2) 8 8)(verIPaaa* ID 8 8)(verIPaaa 7) 8 8)(ver(Paaa- 8) 8 8)(wr(PUvA Base 2W3*1 QMlle)(wr(PUvA Bas 2W2 S 8Mbefore kick cffUvA Base 2093 0:0 aaal-ii -m.41 O0G rcsslo9playr实验三一、实验目的熟悉demeer5并学会demeer5的基本使用方法,具体内容如下:(1) 理解UVA程序的的么而内容(2) 能修改 demeer5(3 )能进行底层动作的组合二、实验设备:硬件设备:pc机软件设备:操作系统linux三、实验内容(1) 如果在对方禁区内就射门,否则,如果时7、8 9号队友就超前方带球,其他队 友传球给9号else if( WM-isBallKickable()if(WM-isl nTheirPe naltyArea(WM-getBallPos()VecPosition pos=( PITCH_LENGTH/2.0, (-1 + 2*(WM-getCurre ntCycle()%2) *0.4 * SS-getGoalWidth(); soc=kickTo(pos,SS-getBallSpeedMax();elseif(WM-getAge ntObjectType()=OBJECT_TEAMMATE_7|WM-getAge ntObjectType()=OBJECT_TEAMMA TE_8|WM-getAgentObjectType()=OBJECT_TEAMMATE_9)An gDeg an g=0.0;soc=dribble(a ng,DRIBBLE_FAST);elsesoc=lead in gPass(OBJECT_OPPONENT_9,1);An gDeg an g=0.0;soc=dribble(a ng,DRIBBLE_FAST);ACT-putComma ndln Queue( soc );ACT-putComma ndl nQueue( turnNeckToObject( OBJECT_BALL, soc );(2) 如果队员的位置在自己半场就向对方球门踢球,否则就向前方带球else if( WM-isBallKickable()getBallPos().getX()getCurre ntCycle()%2) *0.4 * SS-getGoalWidth();soc=kickTo(pos,SS-getBallSpeedMax();elseAn gDeg an g=0.0;soc=dribble(a ng,DRIBBLE_FAST);An gDeg an g=0.0;soc=dribble(a ng,DRIBBLE_FAST);ACT-putComma ndln Queue( soc );ACT-putComma ndl nQueue( turnNeckToObject( OBJECT_BALL, soc );(3) 担忧人来抢球时,就将球传给离自己最近的队友,否则就自己带球else if( WM-isBallKickable()Circle cir(posAge nt,2.5);int num=WM-getNrl nSetI nCircle(OBJECT_SET_OPPONENTS,cir);if(n umgetGlobalPositio n( WM-getClosestI nSetTo(OBJECT_SET_TEAMMATES,posAge nt );soc=kickTo(vec,2.0);elsesoc=dribble(0.0,DRIBBLE_FAST);ACT-putComma ndl nQueue( soc ); / 放入命令队列ACT-putComma ndl nQueue( turnNeckToObject( OBJECT_BALL, soc );实验四一、实验目的进一步了解demeer5并能熟悉的修改 demeer5的内容以达到对场上的球员的控制(1) 能理解UVA程序中原来的demeer中原来的demeer中的全部控制(2) 能通过修改demeer5中的具体 函数内容实现对场上球员的控制(3 )能通过底层动作的简单组合控制场上队员做出一些复杂动作决策(4) 对 worldmodel有初步的认识,学会在woeldmodel, basicplayer里添加新函数二、实验设备硬件环境:PC软件环境:操作系统linux三、实验内容(1) 判断守门员的位置,朝门空隙较大的一方射门else if( WM-isBallKickable()VecPosition vec=WM-getGlobalPositio n( WM-getOppGoalieType();if(vec.getY()0)VecPosition pos=(52.2,-6.5);soc=kickTo(pos,SS-getBallSpeedMax();elseVecPosition pos1=(52.5,6.5); soc=kickTo(pos1,SS-getBallSpeedMax();ACT-putComma ndln Queue( soc );ACT-putComma ndl nQueue( turnNeckToObject( OBJECT_BALL, soc );(2) 在Basicplay力添加一个带球函数,要求如果无人阻挡就向球门带球,否则想办法避开对方球员带球前进.打开 WorldModel.h,在里面预定义函数,即写入boolisOpponentAtAngleEx( AngDeg angA , AngDeg angB ,double dDist );该函数用来判断当前球员角度在angAangB之间距离小于dDist的范围内是否有对方队员.找到并打开WorldModel.c在里面填加一个新函数bool WorldModel:isOppo nentAtAn gleEx( An gDeg angA , An gDeg an gB ,doubledDist )VecPositi on posAge nt = getAge ntGlobalPositi on();VecPositi on posOpp;An gDegan gOpp;intiln dex;for( ObjectT o = iterateObjectStart( iln dex, OBJECT_SET_OPPONENTS );o != OBJECT_ILLEGAL;o = iterateObjectNext ( iln dex, OBJECT_SET_OPPONENTS )posOpp= getGlobalPositi on( o );an gOpp = ( posOpp - posAge nt ).getDirect ion();if( an gA=a ngOpp & an gOpp =a ngB & posAge nt.getDista nceTo( posOpp ) isBallKickable()Circle cir(posAge nt,2.5);int num=WM-getNrI nSetl nCircle(OBJECT_SET_OPPONENTS,cir);if(n umisOppo nen tAtA ngleEx(a ng-45, ang, 6)an g+=45;else if ( WM-isOppo nentAtAn gleEx(a ng,a ng+45,6)an g-=45;SoccerComma nd soc = dribble ( ang , DRIBBLE_SLOW);elsesoc=dribble(0.0,DRIBBLE_FAST);ACT-putComma ndln Queue( soc );ACT-putComma ndl nQueue( turnNeckToObject( OBJECT_BALL, soc );实验五视觉改变:先在Basicplayer.h中输入SoccerComma ndview1122333 (SoccerComma nd soc );给 view1122333 (SoccerCommand soc )做定义;再在 Basicplayer.cpp 中 view1122333 (SoccerCommand soc )函数做定义如下:/*将视觉分成1122333的视觉模式(“ 1代表60度,“ 2代表120, “ 3代表180)*/SoccerComma nd BasicPlayer:view1122333(SoccerComma nd soc)7 -共分成7份VecPosition posAge nt = WM-getAge ntGlobalPositio n();An gDeg an gBody = WM-getAge ntGlobalBodyA ngle();An gDeg an gTur n=30;switch( WM-getCurre ntCycle()%7 )case 0:an gTur n -= 60;case 1:ACT-putComma ndln Queue(SoccerComma nd(CMD_CHANGEVIEW, VA_NARROW, VQ_HIGH);ACT-putComma ndln Queue(tur nN eckToPo in t(posAge nt+VecPositi on(5, VecPositi on: normalizeA ngle(a ngBody+a ngTurn), POLAR), soc);break;case 2:case 3:ACT-putComma ndln Queue(SoccerComma nd(CMD_CHANGEVIEW, VA_NORMAL, VQ_HIGH);ACT-putComma ndln Queue(tur nN eckToPo in t(posAge nt+VecPositi on(5, an gBody, POLAR), soc);break;case 4:case 5:case 6:Act-putcomma ndinq ueue(soccercomma nd(cmd_cha ngeview, va_wide, vq_high); break;default:;再在playerTeams.cpp球可踢的条件下增加ACT-putComma ndl nQueue(view1122333(soc);就可看到明显的视觉变化实验六特殊比赛模式的设计模式一:单纯的比赛模式来判断在playertreams.cpp中球可踢情况下加入如下特殊模式else if ( WM-isBallKickable()if(WM-isKickl nUs() 我方界外球if(WM-getAge ntObjectType()=OBJECT_TEAMMATE_11)soc =leadingPass(OBJECT_TEAMMATE_9,2);传球给 9 号if(WM-getAge ntObjectType()=OBJECT_TEAMMATE_10)soc=leadingPass(OBJECT_OPPONENT_9,2);/传球给 9 号if(WM-getAge ntObjectType()=OBJECT_TEAMMATE_5)if(WM-getAge ntObjectType()=OBJECT_TEAMMATE_4)if(WM-getAge ntObjectType()=OBJECT_TEAMMATE_7)else if(WM-isKickl nThem() 对方界外球ObjectT o;ObjectT WorldModel:getSeco ndClosest In SetTo(ObjextSetT objectSet, ObjectT o,double *dDist=NULL, double dCo nfThr=-1.0); 返回最近对象Dash to向对象进行盯防else if(WM-isCornerKickUs() 我方角球ObjectT o;SoccerComma nd sctemp;o = WM-getSeco ndClosestl nSetTo(OBJECT_SET_TEAMMATES, OBJECT_BALL);if ( o = WM-getAge ntObjectType() )sctemp=ACT-putComma ndl nQueue(moveToPos(poi ntToKickTo(),PS-getPlayerWhe nToT urnAn gle();ACT-putComma ndl nQueue( turnNeckToObject( OBJECT_BALL, sctemp );else if(WM-isCornerKickThem() 对方角球ObjectT o;ObjectT WorldModel:getSeco ndClosest In SetTo(ObjextSetT objectSet, ObjectT o, double *dDist=NULL, double dCo nfThr=-1.0);放回最近对象Dash to向对象进行盯防else if(WM-isFreeKickUs() 我方任意球else if(WM-isFreeKickThem() 对方任意球
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!