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

机器人足球实验二


实验二
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 )); }

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


赞助商链接
更多相关文档:

机器人实验一

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

智能机器人实验二

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

机器人实验2

机器人实验2_计算机软件及应用_IT/计算机_专业资料。机器人创新对我的启迪怀着对机器人的好奇与热爱,我选修了谢斌老师的《机器人创新实验(2)》这 门课程。谢...

机器人足球实验报告

机器人足球实验报告_工学_高等教育_教育专区。武汉科技大学足球机器人试验特用。实验一 FIRA11VS11 程序设计 1. 实验目的 1. 了解知识系统的建立与使用 2. 掌握...

机器人足球竞赛与实验技术

机器人足球竞赛与实验技术_工学_高等教育_教育专区。教程第四章, 第四章,机器人足球策略系统的设计机器人足球策略系统是整个机器人足球系统的大脑。它实现对传感器...

实验二能力风暴实验二机器人直走实验

实验一、能力风暴机器人认... 3页 2财富值 能力风暴机器人足球实验 7页 ...《交互式程序设计》实验报告 实验二 实验二机器人直走实验一、实验目的:掌握简单...

足球机器人实验报告

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

机器人实验报告_图文

课程名称 实验序号 实验项目 实验地点 实验学时 指导教师专 业 _ 学号 机器人...要求:(1)机器人站在球门前。(2)机器人能实时的跟着 足球作位置的调整。当...

实验二 机器人的机械系统

实验二 2.1、实验目的 机器人的机械系统 1、了解机器人机械系统的组成; 2、...999感冒灵市场营销方案 汽车品牌的足球世界杯营销 网络营销部电商运营工作计划文档...

机器人足球竞赛规则(电教2012)

机器人足球竞赛规则该规则适用于 2 对 2 和 1 对 1 对抗赛,不同之处有注明。小学组 为 1 对 1 竞赛,初中组和高中组为 2 对 2 竞赛。 一、竞赛场地...

更多相关标签:
网站地图

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