MSL是UIUC的Steve Lavalle等人用C++写的机器人运动规划仿真平台,其中给出了多种PRM算法和RRT算法的完整实现和仿真,是研究机器人运动规划的有力工具。UIUC最初提供的软件包是工作在redhat linux平台上的,后来国内的王伟博士成功将其移植到windows平台上。
然而,毫无疑问的是,linux对于我的吸引力远胜于windows。基于本人所使用的ubuntu 12.04,我决定将编译安装MSL软件包的整个过程写下来,只为后来人能少走弯路,在运动规划的科研道路上走得更顺畅一点。
首先,去http://msl.cs.uiuc.edu/msl/ 下载安装包。这里要注意,本人推荐下载经过牛津大学的Ian Baldwin升级的软件包。与UIUC原始的软件包相比,这个包的源码修正了很多bug。
安装MSL,首先需要安装一些MSL所依赖的软件包或者库文件,下载MSL的页面上列出了这些包的清单:FOX、PQP以及OpenGL。这些包通常都是要亲自动手编译安装的,当然,你可以上新立得,但是我自己是分别从官网下载然后手动安装的。PQP及OpenGL的安装都比较简单,稍微复杂的FOX安装可参照我的另一篇文章http://blog.youkuaiyun.com/qtyl1988/article/details/7703648。
解压软件包,得到目录msl-2.0.mod,进入该目录,先打开Makefile.config。看名字就知道,这是个用于编译的配置文件。你会发现如下的代码:
#FOXINC = @FOX_INC_F@
#FOXLIB = @FOX_LIB_F@ @PNG_LIB_F@ @JPEG_LIB_F@ -lFOX -ljpeg -lpng
FOXLIB = -lFOX -ljpeg -lpng
FOXFLAGS = -DTIME_WITH_SYS_TIME=1 -DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_ZLIB_H=1 -DHAVE_JPEGLIB_H=1 -DHAVE_PNG_H=1 -DHAVE_OPENGL -DHAVE_JPEG
######### PQP Configuration
#PQPINC = @INCPQP@
#PQPLIB = @LDPQP@ -lPQP
PQPLIB = -lPQP
PQPFLAGS =
######### X11 Configuration
XINC=-I
XLIB=-L -lX11 -lXmu -lXext -lXi
######## GL Configuration
#GLINC = @GL_INC_F@ @GLUT_INC_F@
#GLLIB = @GL_LIB_F@ @GLUT_LIB_F@ -lglut -lGLU -lGL
GLLIB = -lglut -lGLU -lGL
GLFLAGS =
其中给出了多个MSL必须依赖的库,包括libFOX、libjpeg、libpng、PQP碰撞检测包(可从http://gamma.cs.unc.edu/SSV/下载)libPQP、与xWindow相关的libX11、libXmu、libXext、libXi以及openGL的libglut等等。请确保以上所有库文件都在你的电脑里,不然在后面编译时你会遇到各种麻烦。
也许有人会问,既然PQP和FOX都是自己动手编译安装的,那么他们的lib和include目录都在哪里呢?Good question! 在ubuntu 12.04下,FOX的include被安装在/usr/local/include下,而起lib则位于/usr/l