机器人足球实验报告
更新时间:2023-12-08 07:46:01 阅读量: 教育文库 文档下载
实验一
一、实验目的
掌握RoboCup仿真机器人足球比赛相关知识点,具体内容如下: (1) Linux操作系统的熟悉及了解其基本操作。 (2) 掌握Linux下如何进行C++编程,了解gcc编译器以及一些简单编辑工具,如:vi、
emacs、gedit、Anjuta、Kdevelope等。 (3) 启动RoboCup仿真(2D)足球队的比赛。
二、实验设备
硬件环境:PC机
软件环境:操作系统linux
三、实验内容
(1)掌握 Linux 一些常用的命令
a)如何找到用户主目录的绝对路径名?在自己的系统上,用户主目录的绝对路径名是 什么?
pwd /home/student
(2)将当前工作目录从/home/UVA 转到/home/Tsinghua 需要使用什么命令? 如何显示当前目录? cd /home/Tsinghua
(3)如何在当前目录下建立子目录 RoboCup? mkdir Robcup
(4)如何删除子目录 RoboCup? rmdir Robcup
(5)如何查看当前目录下的内容? ls
(6)如何将文件 start.sh 的权限设定为:start.sh 属于可读、可写、可执行? chmod 777 start.sh
(7)如何将当前目录包括所有子目录全部做备份文件,备份文件名为 first.tar? tar xvf dir1 first.tar
(8)如何将目录/home 下每一个文件压缩成.gz 文件? tar -zcwf store.tar
(9)如何把上例中每个压缩的文件解压,并列出详细的信息? tar xvf store.tar Ls -lg
实验二
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, \ 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 )); }
实验三
一、.实验目的
熟悉demeer5并学会demeer5的基本使用方法,具体内容如下: (1)理解UVA程序的的么而内容 (2)能修改demeer5
(3)能进行底层动作的组合
二、实验设备:
硬件设备:pc机
软件设备:操作系统linux
三、实验内容
(1)如果在对方禁区内就射门,否则,如果时7、8、9号队友就超前方带球,其他队友传球给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 {
if(WM->getAgentObjectType()==OBJECT_TEAMMATE_7||WM- >getAgentObjectType()==OBJECT_{
AngDeg ang=0.0;
soc=dribble(ang,DRIBBLE_FAST);
TEAMMATE_8||WM->getAgentObjectType()==OBJECT_TEAMMATE_9)
}
else
{
soc=leadingPass(OBJECT_OPPONENT_9,1); }
}
AngDeg ang=0.0;
soc=dribble(ang,DRIBBLE_FAST); ACT->putCommandInQueue( soc );
ACT->putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc )); }
(2)如果队员的位置在自己半场就向对方球门踢球,否则就向前方带球 else if( WM->isBallKickable()<=0)
{
if(WM->getBallPos().getX()<=0) {
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)担忧人来抢球时,就将球传给离自己最近的队友,否则就自己带球
else if( WM->isBallKickable())
{
Circle cir(posAgent,2.5);
int num=WM->getNrInSetInCircle(OBJECT_SET_OPPONENTS,cir); if(num<2) {
VecPosition
vec=WM->getGlobalPosition(WM->getClosestInSetTo(OBJECT_SET_TEAMMATES,posAgent)); soc=kickTo(vec,2.0); } else {
soc=dribble(0.0,DRIBBLE_FAST); }
正在阅读:
机器人足球实验报告12-08
PDSOFT软件快速入门手册01-12
2009年成都重点中学内部小升初数学测试真题及答案05-15
塔吊通道搭设方案03-03
新沂六中学生心理问题预警与应急预案10-24
成功营销人员十大秘诀迈向成功的关键-精品合集 - 图文01-07
发电厂电气部分填空、选择题 熊信银四版03-09
20XX年中国银行笔试经验09-20
集安庄稼院主题餐馆策划书03-22
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 机器人
- 实验
- 足球
- 报告
- 货币银行学复习题目1
- 五层电梯模型PLC控制系统设计
- 《过秦论》 第1课时
- 福建师范大学17年2月课程考试《高等代数选讲》作业考核试题 - 图文
- 分析化学自测题
- 教研论文
- 赞美诗歌
- 炬程嘉星工程勘察报告--西安-陕西工程勘察研究院
- 人教版七年级上历史《秦统一中国》教学设计
- 测试技术思考题与习题
- 关于金融投资收益与风险的分析
- TSC ERP项目 - 质量管理操作手册V1.0
- 酸碱平衡和酸碱滴定法(自测题) - 129002864
- 散装食品安全管理制度
- 公司网站建设方案详细方案模板
- 2014届高考化学夺冠易错题专项检测18 Word版含解析
- 大学英语(一)答案
- 校园安全工作先进个人事迹材料
- 2015年人民警察执法资格基本级试题
- 《秦皇岛市城市总体规划(2008-2020年)》