这篇文章主要讲述:从fresh的新鲜出炉的Ubuntu 12.04,一步一步到RoboCup 2D仿真平台的成功搭建,再到上场test搭建成功的全部过程。
请各位将这篇文章地址copy入Ubuntu里的浏览器以继续阅读。当然要保证Ubuntu能连接网络。
1 前期环境准备
1.1 OS平台环境
有学校机器支持当然好,像本人一样使用自己的笔记本单打独斗的同学,可以使用VMware安装好的虚拟机Ubuntu 12.04。
1.2 前期需要的软件
1.2.1 必要的解压缩软件
sudo apt-get install rar unrar p7zip
1.2.2 把终端Terminal添加到右键菜单中
sudo apt-get install nautilus-open-terminal
这个非常方便,配合右键“解压至此处”,可迅速将下载的gz压缩文件打开在terminal中,安装步骤执行之后需要重启才能生效。使用方法为:
直接找到你原本只能cd到的解压这个文件包之后的文件夹,右键单击该文件夹,选择靠下方的“Open in Terminal”,即可直接载入该目录下的终端terminal。
1.2.3 安装最基本的gcc编译器
sudo apt-get install build-essential
这个不解释。
2 必需的工具、函数库(重点)
往往后面无法成功安装server的都是这步出错,本人也失败了无数次(尤其是安装试图手动编译安装boost库太难),接下来我又做了次实验,给出可行的方案,尽量简单。
需要输入:
1 sudo apt-get install xorg-dev //ubuntu12.04没有默认安装,官方教程上没有,本人未实验不装是否可以
2 sudo apt-get install flex bison //与官方要求一致
3 sudo apt-get install libboost-dev libboost-all-dev //与官方要求一致,不要下载boost源文件自己编译,中间有好些问题会让你疯掉
4 sudo apt-get install libqt4-dev libqt4-gui qt4-dev-tools qt4-doc qt4-designer qt4-qtconfig //官方只说qt4,仅仅libqt4*的话,是没有qt4*的
5 sudo apt-get install libpng*//ubuntu12.04默认没有装这个 注:查到libglpng更新成libpng了!!!但是依然无法输入...libpng,tab后我也不知道装哪个不装哪个,所以我直接...libpng*即可
6 sudo apt-get install libglib2.0-dev //ubuntu12.04没有默认安装
7 sudo apt-get install libaudio-dev //ubuntu12.04没有默认安装,这个不装的话monitor无法make!
8 sudo apt-get install zlib* //可选的,官方推荐,不知道干什么的,我实验了一次装1-7没有装这个,一样可以。也许这个包含有上面的比如xorg等等,有明白清楚地请留言!
以后版本更新,一旦你看这篇文章,导致你无法按照以上命令安装某个库的话,一是要查在新的ubuntu中,库更新成什么了,比如在10.04是libglpng而在12.04变成了libpng。此外就是多使用键盘上的tab键,让ubuntu显示符合此前缀的所有库是什么。另外,对于tab出来一大堆,而你自己又不知道安装哪个不装哪个的时候,果断采用前缀紧跟*的,安装所有那些库,灵活运用这三条,应该可以解决一切变化问题。
又或者一些已经为ubuntu默认安装了,你看到终端里的提示就知道了。
3 安装三个simulation包
3.1 需要下载的安装包
RoboCup 2D soccer server system一共有三个安装包,它们分别是:
rcssserver
rcssmonitor
rcsslogplayer (可选,用来重看比赛的)
选择自己需要的版本,即点接下来的数字列表xx.x.x,比如这篇文章选择15.1.0,然后进入下个页面,依然不要粗心的点上面那个大大的“Download rcssserver-15.0.0-win.zip (1.9 MB)”,而是直接点接下来的“rcssmonitor-15.1.0.tar.gz”。
3.2 安装三个包
这篇文章三个全部采用最新的15.1.0(截止2012-07-08)版本来用作演示,有需要的同学请根据自己需要选择。
下载好三个.gz文件后,解压过后(位置无所谓),分别右键直接在终端打开解压过的文件夹,依次输入以下命令
1 ./configure
2 make
3 sudo make install //必须sudo
三个包都使用相同命令即可安装,一旦遇到错误。一定是第2步里某处做错了,导致缺少必要的库。
一旦遇到更多困难(按这篇文章应该不会),需参照官方对安装三个包这步的错误解决方案:请点击这里。
然后尝试打开server测试是否成功,在终端输入
rcsoccersim
4 编译球队和上场
下载你想要的base code,或者已经编译好的binaries,这里介绍一个底层:UvA base code 3.5
我使用了那个相对最新的Samira更新版本,即trilearn base code 3.5,前面的两个3.3和3.4我编译不过去有错误,索性使用最近一次更新的。
这里UvA的base里的start.sh开头是bin/tcsh,但是大家的Ubuntu12.04现在为止是没有这个库的。
需要在终端输入
sudo apt-get install tcsh
即可。
然后毅然老办法,解压过后右键打开在终端里,依次输入以下命令
1 ./configure
2 make CFLAGS="-O0 -D_FORTIFY_SOURCE=1" CPPFLAGS="-D_FORTIFY_SOURCE=0"
注:单独make是不行的,会出现kickoff开场后由于overflow溢出导致的球员莫名下场的问题。这应该是UvA代码太老了的缘故,方法我也是在开始提到的那篇文章里找到的,经我试验行之有效。另外这里推荐,可以直接到SourceForge.net的 The RoboCup Soccer Simulator / Forums / Help 里看看前人遇到了什么问题,很有帮助。
之后复制一份底层代码,进入start.sh里,在上面找到队名变量,将其修改队名另一个名字,然后同样方法make安装。
然后,首先用rcsoccersim打开server和monitor,之后在你的两份队伍的终端里(文件夹右键在终端打开)分别输入
./start.sh
即可看到monitor里两支队伍上场了。
最后,点击referee里的kickoff即可开始比赛,半场过后(3000周期默认),需要再次点击kickoff,平局后加时赛依然。
以上,完整的介绍了RoboCup 2D在Ubuntu 12.04下,从空白到整个平台环境的搭建,最后直至编译底层代码上场开赛的全部过程,祝大家学习顺利!