Ubuntu 8.10安装Gazebo-0.8pre3 [Player/Stage/Gazebo]
/*声明:如果您觉得这篇文章的格式看着很累,那要怪就怪CSDN太挫了,这种下三滥水平的博客编辑器也就CSDN做的出来:在Firefox下,跟本无法设置字体大小,段落格式...以至于每次都要用IE重新打开编辑若干次*/ /*二次声明:如果您觉得这篇文章格式看上去很舒服,那就是我很NB:用这么差的编辑器都能写出这么整齐的文章,我也忒NB了不是?*/ Linux下有很多好用的软件,但更多
/*声明:如果您觉得这篇文章的格式看着很累,那要怪就怪CSDN太挫了,这种下三滥水平的博客编辑器也就CSDN做的出来:在Firefox下,跟本无法设置字体大小,段落格式...以至于每次都要用IE重新打开编辑若干次*/
/*二次声明:如果您觉得这篇文章格式看上去很舒服,那就是我很NB:用这么差的编辑器都能写出这么整齐的文章,我也忒NB了不是?*/
Linux下有很多好用的软件,但更多的是不好用的软件。比如不好用到跟CSDN的博客有一拼的软件:gazebo。就算我已经对安装过程非常熟练了,但是依然需要一整天的时间来装完它。因为它依赖的包太多。
同Player/Stage一样,Gazebo也是由University of South California开发的。作为一个3D仿真软件,gazebo 0.8 pre-release 版依赖于ODE 以及OGRE 来模拟具有真实世界中的物理参数的物体的运动状态。与之类似的还有由University of Pittsburg开发的USARSim 软件,前者基于开源3D图像引擎OGRE;后者基于游戏引擎Unreal Tournament .
安装gazebo需要的dependencies请参考[1]。(并不是全部包的列表)
它要求独立显支持。所以在此之前需要安装显卡的驱动。Nvidia的显卡还要装Cg-toolkit
运行glxinfo |grep render
命令,得到的结果应该为:Yes
1. 首先检查系统的内核版本以及gcc和g++版本:
root@ubuntu:~# uname -a
Linux ubuntu 2.6.27-7-generic #1 SMP Fri Oct 24 06:40:41 UTC 2008 x86_64 GNU/Linux
root@ubuntu:~# gcc --version
gcc-4.3.real (Ubuntu 4.3.2-1ubuntu12) 4.3.2
root@ubuntu:~# g++ --version
gcc-4.3.real (Ubuntu 4.3.2-1ubuntu12) 4.3.2
2. 设置环境变量 Environment Variables:
export PATH=/usr/local/bin:$PATH
export CPATH=/usr/local/include:$CPATH
export LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
3. 安装所需的包
包括:fltk zziplib FreeImage, ois, scons
root@ubuntu:/host# apt-get install libfltk 1.1 -dev libzzip-dev libfreeimage3 libfreeimage-dev libois-dev scons
4. 安装OGRE-1.4.9 及 CEGUI-0.6.2
SVN版的gazebo需要OGRE1.6.*;这里需要的是1.4.9.我用的是Ogre-1.4.9的svn包:
root@ubuntu:/host# svn co https://svn.ogre3d.org/svnroot/ogre/branches/v1-4 ogre
root@ubuntu:/host# cd ogre
root@ubuntu:/host/ogre# ./bootstrap
root@ubuntu:/host/ogre# ./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
...
checking for Cppunit - version >= 1.10.0... checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ZZIPLIB... yes
checking X11/Intrinsic.h usability... yes
checking X11/Intrinsic.h presence... yes
checking for X11/Intrinsic.h... yes
checking X11/Xaw/Command.h usability... no checking X11/Xaw/Command.h presence... no checking for X11/Xaw/Command.h... no configure: error: "libxaw headers not found"
configure: error: "libxf86vm headers not found"
如上所述,[1]中没有给全所有的依赖包,所以缺啥装啥:
root@ubuntu:/host# atp-get install libxaw7-dev libxxf86vm1-dev
装完发现没有CEGUI支持。。。
到官网下载 CEGUI(0.6.2)源码包:
解压:
root@ubuntu:/host# tar zxvf CEGUI-0.6.2b.tar.gz
root@ubuntu:/host# cd CEGUI-0.6.2
root@ubuntu:/host/CEGUI-0.6.2# ./bootstrap
root@ubuntu:/host/CEGUI-0.6.2# ./configure
看来依然需要很多东西:
root@ubuntu:/host/CEGUI-0.6.2# apt-get install libglew1.5-dev libcario-directfb2-dev libgtk-drectfb-dev
root@ubuntu:/host/CEGUI-0.6.2# ./configure
参考[2], 在"/host/CEGUI-0.6.2/RendererModules/directfbRenderer/directfb-render.cpp" 中添加头文件:
root@ubuntu:/host/CEGUI-0.6.2# make && make install
#include<algorithm>
即可安装通过
继续安装OGRE,幸运的话就没什么问题 -_-!
root@ubuntu:/host/CEGUI-0.6.2# cd ../ogre
root@ubuntu:/host/ogre# ./configure
root@ubuntu:/host/ogre# make
root@ubuntu:/host/ogre# make install
6. 安装ODE-0.11.1
Gazebo 0.8要求ODE的版本高于0.10,所以下载0.11.1版,经测试OK:
下载地址为: http://sourceforge.net/project/downloading.php?group_id=24884&filename=ode-0.11.1.tar.bz2
解压并编译 :
root@ubuntu:/host/ode-0.11.1# tar jxvf /home/ysong/Desktop/ode-0.11.1.tar.bz2 -C /host/
root@ubuntu:/host/ode-0.11.1# cd ode-0.11.1/
root@ubuntu:/host/ode-0.11.1# sh autogen.sh
root@ubuntu:/host/ode-0.11.1# ./configure
root@ubuntu:/host/ode-0.11.1# make
root@ubuntu:/host/ode-0.11.1# make install
(以前编译经常出问题的,这次好像比较顺利)
7.编译Gazebo源码包:
相比gazebo-0.7.0的一大改进除了OGRE的应用之外就是用了SCONS这么一个python工具(0.7.0用的是wxPython),这个东西还是比autotools好用。有篇对scons的简介[4],写的很明了。详细的介绍参考[5].
root@ubuntu:/host/gazebo-0.8-pre3# scons
(缺啥装啥。原则:先用apt-get或者yum,不行再从源码包装)
root@ubuntu:/host/gazebo-0.8-pre3# apt-get install libxml++2.6-2-dev
再次编译时又出现了关于StatusBar.cc中有错;原因还是少引了一个头文件<cstring>:
root@ubuntu:/host/gazebo-0.8-pre3# vim server/gui/StatusBar.cc
添加:
#include <cstring>
然后继续scons
root@ubuntu:/host/gazebo-0.8-pre3# scons
我相信多数人会遇到关于libode.a的错误:
"/usr/local/lib/libode.a: could not read symbols: Bad Value"
这个错误真是太TM经典了!
解决方案:
root@ubuntu:/host/gazebo-0.8-pre3# apt-get install libode0debian1 libode0-dev
root@ubuntu:/host/gazebo-0.8-pre3# cp /usr/lib/libode.a /usr/local/lib/libode.a
(就是从/usr/lib下复制好的libode.a到/usr/local/lib/)
这个错误解决后安装就应该很顺利了:
root@ubuntu:/host/gazebo-0.8-pre3# scons
root@ubuntu:/host/gazebo-0.8-pre3# scons install
root@ubuntu:/host/gazebo-0.8-pre3# gazebo worlds/test.world
8. 参考文档:
[1] http://irobotics.org/gazebo08.html
[2] http://www.cegui.org.uk/phpBB2/viewtopic.php?t=3779
[3] http://www.cegui.org.uk/wiki/index.php/HOWTO:_Obtain_the_library_source_from_subversion
[4] 使用scons软件构建工具
[5] Scons: A Software Construction Tool
更多推荐
所有评论(0)