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

机器人足球实验二


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

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


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

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

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

实验二 机器人操作与编程

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

实验二 机器人CO2气体保护焊实验

了解 CO2 焊接方法,熟悉机器人“示教—再现” CO2 焊接参数的选择和调整。 二、实验概述焊接机器人主要包括机器人和焊接设备两部分。机器人机器人本体和控制柜(...

制作机器人实验报告二心得

机器人实验报告二仿生机器人、人形机器人运动控制 [实验目的] 熟悉仿生机器人、人形机器人运动控制方法。制作仿生机器人 取物品的动作,制作人形机器人行走动作。 【...

实验二避障机器人

实验二 避障机器人一 实验目的 1 熟悉创意之星标准版模块搭建方法 2 掌握简单...汽车品牌的足球世界杯营销 网络营销部电商运营工作计划160份文档 2014...

竞赛机器人技术基础实验报告2

竞赛机器人技术基础实验报告2 - 课程名称 实验序号 实验项目 实验地点 中小学机器人竞赛分析 2 机器人程序设计基础的练习 综 B-507 验证性 孔艺权 14 计本 ...

实验二 机器人的机械系统

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

实验二 工业机器人示教编程

实验二 工业机器人示教编程 一、实验目的与要求 1、了解工业机器人示教再现的概念、原理和实现方法; 2、学会用示教盒对机器人进行示教编程; 3、用示教再现...

《移动机器人综合实验》实验报告

《移动机器人综合实验》实验报告 - 《移动机器人综合实验》 实验报告 姓名: 学号: 南京理工大学自动化学院 目录 实验一 实验二 实验三 实验四 实验五 AS-UII...

实验2 基于碰撞开关的循迹机器人

实验2 基于碰撞开关的循迹机器人_机械/仪表_工程科技_专业资料。碰撞开关的具体...机器人足球实验二 3页 免费 实验二机器人焊接实验 2页 免费 制作...

更多相关标签:
网站地图

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