(完整word版)机器人足球仿真实验报告.doc

上传人:hs****ma 文档编号:559790432 上传时间:2023-09-08 格式:DOC 页数:10 大小:69.01KB
返回 下载 相关 举报
(完整word版)机器人足球仿真实验报告.doc_第1页
第1页 / 共10页
(完整word版)机器人足球仿真实验报告.doc_第2页
第2页 / 共10页
(完整word版)机器人足球仿真实验报告.doc_第3页
第3页 / 共10页
(完整word版)机器人足球仿真实验报告.doc_第4页
第4页 / 共10页
(完整word版)机器人足球仿真实验报告.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《(完整word版)机器人足球仿真实验报告.doc》由会员分享,可在线阅读,更多相关《(完整word版)机器人足球仿真实验报告.doc(10页珍藏版)》请在金锄头文库上搜索。

1、合肥工业大学 计算机与信息学院 机器人足球仿真 实 验 报 告 班级: 计算机科学与技术 11-1 班 姓名: 魏慷 学号: 20112425 2012 年 12 月 5 日 1 实验一 机器人足球比赛编程预备知识 1. 实验目的 掌握 RoboCup 仿真机器人足球比赛相关知识点,具体内容如下: (1) Linux 操作系统的熟悉及了解其基本操作。 (2) 掌握 Linux 下如何进行 C+编程,了解 gcc 编译器以及一些简单编辑工 具,如:vi、emacs、gedit、Anjuta、Kdevelope 等。 (3) 启动 RoboCup 仿真(2D)足球队的比赛。 2. 实验设备 硬件环

2、境:PC 机 软件环境:操作系统 linux 3. 实验内容 (1) 掌握 Linux 一些常用的命令 l 文件或目录处理 格式:ls -atFlgRname 第一项是一些语法加量。第二项是文件名。 常用的方法有: ls 列出当前目录下的所有文件。 ls a 列出包括以 开始的隐藏文件的所有文件名。 ls t 依照文件最后修改时间的顺序列出文件名。 ls F 列出当前目录下的文件名及其类型。以/结尾表示为目录名、以* 结尾表示未可执行文件、以结尾表示为符号连接。 ls l 列出目录下所有文件的权限、所有者、文件大小、修改时间及名 称。 ls lg 同上,并显示出文件的所有者工作组名。 ls R

3、 显示出目录下以及其所有子目录的文件名。 l 改变工作目录 格式:: cd name name :目录名、路径或目录缩写。 常用的方法有: cd 改变目录位置至用户登录时的工作目录。 cd dirl 改变目录位置至 dirl 目录下。 cd user 改变目录位置至用户的工作目录。 cd . 改变目录位置至。 cd ./user 改变目录位置至相对路径 user 的目录下。 cd /./. 改变目录位置至绝对路径的目录位置下。 l 复制文件 格式:cp -r 源地址 目的地址 2 常用的方法有: cp file1 file2 将文件 file1 复制成 file2 cp file1 dir1

4、将文件 file1 复制到目录 dir1 下,文件名仍为 file1。 cp /tmp/file1 将目录/tmp 下的文件 file1 复制到当前目录下,文件名仍为 file1。 cp /tmp/file1 file2 将目录/tmp 下的文件 file1 复制到当前目录下,文件名 仍为 file2。 cp -r dir1 dir2 复制整个目录。 l 移动或更改文件、目录名称 格式:mv 源地址 目的地址 常用的方法有: mv file1 file2 将文件 file1 更名为 file2。 mv file1 dir1 将文件 file1 转移到目录 dir1 下,文件名仍为 file1。

5、 mv dir1 dir2 将目录 dir1 更改为目录 dir2。 l 建立新目录 格式:mkdir 目录名 删除目录 格式:rmdir 目录名|文件名 常用的方法有: rm r dir1 删除目录 dir1 及其子目录下的所有文件。 l 列出当前所在的目录位置 格式:pwd l 查看文件内容 格式: cat 文件名 l 文件权限的设定 格式:chmod -R mode name name:文件名或目录名。 mode:3 个或 8 个数字或 rwx 的组合。r-read(读权限)、w-write(写权限)、 x-execute(执行) 常用的方法有: chmod 777 file1 给所有用

6、户 file1 全部的权限。 l 文件的打包和解压缩 格式:tar option file gzipoption file tar 主要来进行打包而不压缩,而 gzip 则进行压缩。 option 主要有: -c 创建一个新归档。 -f 当与 -c 选项一起使用时,创建的 tar 文件使用该选项指定的文件名; 当与-x 选项一起使用时,则解除该选项指定的归档。 -t 显示包括在 tar 文件中的文件列表。 -v 显示文件的归档进度。 -x 从归档中抽取文件。 -z 使用 gzip 来压缩 tar 文件。 如使用:tar -cvf filename.tar /home/mine/work /ho

7、me/mine/school 上面的命令把 /home/mine 目录下的 work 和 school 子目录内的所有文件3 都放入当前目录中一个叫做 filename.tar 的新文件里。 (2) 完成以下操作: 1. 如何找到用户主目录的绝对路径名?在自己的系统上,用户主目录的绝对 路径名是什么? 执行 cd;执行 pwd;即显示用户主目录的绝对路径名。 用户主目录的绝对路径名是”/home/username” 2. 将当前工作目录从/home/UVA 转到/home/Tsinghua 需要使用什么命令? 如何显示当前目录? cd /home/Tsinghua 或 cd ./Tsinghu

8、a 3. 如何在当前目录下建立子目录 RoboCup? mkdir Robcup 4. 如何删除子目录 RoboCup? rmdir Robcup 5. 如何查看当前目录下的内容? ls 6. 如何将文件 start.sh 的权限设定为:start.sh 属于可读、可写、可执行? 可读:chmod g+rr start.sh 可写:chmod g+rw start.sh 可执行:chmod g+rx start.sh 7. 如何将当前目录包括所有子目录全部做备份文件,备份文件名为 first.tar? tar czvf first.tar dir1 8. 如何将目录/home 下每一个文件压缩

9、成.gz 文件? tar -cvf store.tar dir1 9. 如何把上例中每个压缩的文件解压,并列出详细的信息? tar xvf store.tar ls -lg 4. 启动球队上场比赛 完成以下操作: rcssserver rcsslogplayer 在球队路径下: ./start.sh 在本地启动第二个球队: ./start.sh localhost aaa 实验二 Demeer5 基本动作 1 1. 实验目的 (1) 了解 Demeer5 的工作原理 4 (2) 学会对 Demeer5 进行简单的修改 2. 实验设备 硬件环境:PC 软件环境:Linux 3. 实验内容 (1)

10、 Demeer5 的工作原理: Demeer5 函数是整个球队的核心,它最终返回一个可以执行的动作,底层的 模块负责将此动作发送给 server,然后由 server 执行。可以说,Demeer5 就是我 们想法的体现,是一支球队的大脑。在 Demeer5 中有一系列的判断来决定每个 周期的动作。下面对 Demeer5 进行简要的分析. Demeer5()是一个决策函数,在策略上使用的是下面这个简单的策略: 如果球可踢,则用最大力量踢球; 如果球不可踢且我是队友中最快到球的队员,则去截球; 其他情况按战略点跑位。 我们现在只要看一下球可踢时的代码: else if( WM-isBallKick

11、able() / 如果球可踢 /确定踢向的点 VecPosition posGoal( PITCH_LENGTH/2.0, -1+2*(WM-getCurrentCycle()%2)* 0.4 * SS-getGoalWidth() ); /调用踢球的动作 soc = kickTo( posGoal, SS-getBallSpeedMax() ); / kick maximal /将动作放入命令队列中 ACT-putCommandInQueue( soc ); /将脖子转向球 ACT-putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc )

12、 ); /记录调试信息 Log.log( 100, kick ball ); 这一小段函数决定了当球在球员 Agent 的可踢范围之内时应当做的动作,这 里是一个简单的把球向前踢而不考虑任何其他情况的方法。该程序段的条理是很 清晰的。 5 (2) 对 Demeer5 进行简单的修改: 现在我们对 Demeer5 进行简单的修改,让它在球可踢的时候进行带球的动作。 带球就是 kick 和 dash 动作序列的结合。带球的函数在 BasicPlayer 中,函数为 dribble()它接收两个参数,第一个参数为带球的方向,第二个参数为带球的 类型。 带球类型解释如下: DRIBBLE_FAST:快

13、速带球; DRIBBLE_SLOW:慢速带球; DRIBBLE_WITHBALL:安全带球; 所以,对 dribble 的一种调用形式为:dribble(ang,DRIBBLE_FAST ) 其中 ang 为 AngDeg(是一个 double)类型 该函数的返回值是一个 SoccerCommand 类型。 知道了如何调用 dribble,我们来对 Demeer5 进行替换: else if( WM-isBallKickable() AngDeg ang = 0.0; soc = dribble(ang,DRIBBLE_FAST ); / 进行带球 /将动作放入命令队列中 ACT-putCom

14、mandInQueue( soc ); /将脖子转向球 ACT-putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc ) ); /记录调试信息 Log.log( 100, kick ball ); 这样,在球可踢的时候,球员智能体将把球带向前方,这里取的是 0 度角, 即沿 x 轴一直向前快速带球。 我们再次对 Demeer5 函数进行修改,这次是让球员 Agent 将球踢向各个不同 的地方。 这将调用 kickTo()函数来完成。下面简要说明一下 kickTo()函数 的使用方法:这个函数有两个参数,第一个参数是目标点的坐标,第二个参数是

15、 球到达目标点是的速度,返回一个踢球的动作。可以使用下面的形式来调用: VecPosition pos( x, y ); double speed = 1.0; kickTo( pos , speed ); kickTo()函数在其内部将会决定踢球时所用力量的大小,并且会判断是否能 够将球踢到该点,并作出相应的调整。比如,将球一直踢向( 0, 0)点, 1.0 的末速度: else if( WM-isBallKickable() soc = kickTo( VecPosition( 0, 0 ),1.0); 6 /将动作放入命令队列中 ACT-putCommandInQueue( soc ); /将脖子转向球 ACT-putCommandInQueue( turnNeckToObject( OBJECT_BALL, soc ) ); /记录调试信息 Log.log( 100, kick ball ); (3) 根据上述操作,完成以下踢球操作: 将球踢向对方的球门。 VecPosi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 项目/工程管理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号