当前位置:首页 >> 计算机软件及应用 >> 机器人足球实验二

机器人足球实验二


实验二
20112429 徐斌 计算机科学与技术 11-1 班 1、 实验目的

(1)了解 Demeer5 的工作原理 (2)学会对 Demeer5 进行简单的修改

二、实验设备
硬件环境:PC 软件环境:Linux

三、实验内容
(1)如果可踢球就用最大力踢球 else if( WM->isBallKickable()) { // 如果球已知,而且当前球在我脚下(可踢)

VecPosition pos=( PITCH_LENGTH/2.0,(-1 + 2*(WM->getCurrentCycle()%2)) * 0.4 * SS->getGoalWidth() ); soc=kickTo(pos,SS->getBallSpeedMax());

ACT->putCommandInQueue( soc ); // 放入命令队列 ACT->putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc )); } (2)如果球不可踢且我是队友中最快到达球的队员,则去截球
else if( WM->getFastestInSetTo( OBJECT_SET_TEAMMATES, OBJECT_BALL, &iTmp ) == WM->getAgentObjectType() && !WM->isDeadBallThem() ) // 如果球不在我的控制范围下,但是当前能最快抢到球的是我,那我就去执行抢球动作 { Log.log( 100, "I am fastest to ball; can get there in %d cycles", iTmp ); soc = intercept( false ); ACT->putCommandInQueue( soc ); ACT->putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc ));

(3)其他情况按战略点跑位 else if( posAgent.getDistanceTo(WM->getStrategicPosition()) > 1.5 + fabs(posAgent.getX()-posBall.getX())/10.0) // 到了这里就是其他距离 球相对远一点的人了,如果离自己的阵形点太远,就跑回 自己的阵形点去。 { if(WM->getAgentStamina().getStamina()>SS->getRecoverDecThr()*SS->getStaminaMax()+800) {

soc = moveToPos(WM->getStrategicPosition(),PS->getPlayerWhenToTurnAngle()); ACT->putCommandInQueue( soc ); ACT->putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc ) ); } (4)将球踢向对方球门 else if( WM->isBallKickable()) {

// 如果球已知,而且当前球在我脚下(可踢)

VecPosition pos=( PITCH_LENGTH/2.0, (-1 + 2*(WM->getCurrentCycle()%2)) * 0.4 * SS->getGoalWidth() ); soc=kickTo(pos,SS->getBallSpeedMax()); //得到对方球门的坐标

ACT->putCommandInQueue( soc ); ACT->putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc )); (5)将球踢向距自己最近的球员 else if( WM->isBallKickable()) {
VecPosition

// 如果球已知,而且当前球在我脚下(可踢)

vec=WM->globalPosition(WM->getClosestInSetTo (OBJECT_SET_TEAMMATES,posAgent));

soc=kickTo(vec,2.0);

ACT->putCommandInQueue(soc); ACT->putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc )); } (7)用不同的带球模式带球 dribble(vec,DRIBBLE…) 分别用 DRIBBLE_FAST 快速带球 DRIBBLE_SLOW 慢速带球 DRIBBLE_WITHBALL 安全带球的模式带球 (8)向对方球门带球 else if( WM->isBallKickable()) { AngDeg ang=0.0; soc=dribble(ang,DRIBBLE_FAST); ACT->putCommandInQueue(soc); ACT->putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc )); } (9)不同的带球组合 else if( WM->isBallKickable()) {
if(WM->isInTheirPenaltyArea(WM->getBallPos())) { VecPosition pos=( PITCH_LENGTH/2.0,(-1 + 2*(WM->getCurrentCycle()%2)) *

0.4 * SS->getGoalWidth() ); soc=kickTo(pos,SS->getBallSpeedMax()); } else { AngDeg ang=0.0; soc=dribble(ang,DRIBBLE_FAST); } AngDeg ang=0.0; soc=dribble(ang,DRIBBLE_FAST);

ACT->putCommandInQueue( soc ); // 放入命令队列 ACT->putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc )); }

四、实验收获
通过这次实验课练习了一些带球动作, 同时对上次实验课的内容进行了复习和巩固。 加 深了对机器人足球的了解。


更多相关文档:

机器人足球仿真实验报告

实验目的 掌握 RoboCup 仿真机器人足球比赛相关知识点, 具体内容如下: (1) Linux 操作系统的熟悉及了解 其基本操作。 (2) 掌握 Linux 下如何进行 C++编程,了解...

机器人实验一

机器人足球进攻代码 8页 免费机​器​人​实​验​一 ...机器人仿真平台的应用 综 B— 910 实验类型 实验员班级 09 计本 2 班 验证...

机器人足球实验报告

实验一一、实验目的掌握 RoboCup 仿真机器人足球比赛相关知识点,具体内容如下: (1) Linux 操作系统的熟悉及了解其基本操作。 (2) 掌握 Linux 下如何进行 C++编程...

二对二足球机器人比赛规则(中学组)

二对二足球机器人比赛规则(中学组)_其它课程_初中教育_教育专区。二对二足球机器人比赛规则(中学组)一、场地及比赛环境 1、场地:长 240cm,宽 160cm, 高 18cm...

足球机器人实验报告

4页 7下载券 足球机器人简介 50页 1下载券 足球机器人图片 9页 2下载券喜欢...机器人足球实验报 告 专 业: 计算机科学与技术 足球机器人理论与实践 刘钊 ...

智能机器人实验二

智能机器人实验二_学习总结_总结/汇报_应用文书。实验二智能机器人控制技术的研究一.实验目的 1.熟悉机器人控制系统的组成与与相关控制技术。 2.熟悉轮式移动机器人...

机器人足球

如果是多人踢球, 则应沟通信息,以实现配合[2]。因此,根据足球机器人实际比赛...实验表明,在机器人之间频繁发生碰撞的比赛过程中该主 板仍能稳定地工作。PCM ...

实验二 机器人操作与编程

实验二一、实验目的 机器人操作与编程 1、了解机器人系统的操作过程; 2、了解...汽车品牌的足球世界杯营销 网络营销部电商运营工作计划1028988份文档 教学...

2015年机器人足球竞赛规则

2015年机器人足球竞赛规则_其它课程_初中教育_教育专区。附件 3 机器人足球竞赛规则该规则适用于全国活动决赛中 2 对 2 和 1 对 1 对抗赛, 不同之处 有注明...

二、智能机器人实验

二、智能机器人实验_计算机硬件及网络_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档二、智能机器人实验_计算机硬件及网络_IT/计算机_专业资料。上机实验...
更多相关标签:
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com