学习PCL之——PCL安装指南(一)

来源:互联网 发布:掰弯体验知乎 编辑:程序博客网 时间:2024/06/05 23:56

PCL(http://pointclouds.org/)——点云工具库是一个大型的,独立的且开源的3D点云处理工具。PCL工具库中包含了大量的关于滤波,特征估计,体面重建,配准,模型匹配和分割相关的算法以及关于mapping和物体识别方面高级的工具。PCL具有BSD的license,免费用于商业和研究。此项目受到了许多大型公司和研究机构的支持比如Willow Garage, 英伟达,谷歌, 丰田还有SandiaIntelligent Systems and Robotics。

PCL是OPENCV的姐妹项目,所以我从这项工程开始建设(2011年初)就开始关注它了,但是那个时候只有源编译(built from source)版本的安装,且不支持VS2008。鉴于我目前的项目受某些function的制约无法移植到VS2010,我只好放弃了play around的机会,不过过了一年以后,PCL有了很大的发展,最新的PCL1.4中新加入的预编译(Pre-built)版本已经开始支持VS2008,并且支持windows,linux还有mac os等多种操作平台。

所以我决定安装并且开始学习PCL的相关知识。首先我去了它的官方页面下载最新的Pre-built版本(http://pointclouds.org/downloads/)。这儿有2种选择,因为PCL需要运用其他的工具包比如VTK,EIGEN还有BOOST,所以你可以找到对应的编译器和操作系统版本然后下载所有要用工具包的安装文件,但是我强烈建议下载Pre-buit版本的All-In-OneInstaller 文件,这样做的好处一是节约时间,最重要的是你不会miss任何一个相关的package。当你安装完这些文件后,你将会在当前的安装路径下找到PCL 1.4.0的文件夹。


其中有一个叫3rdParty的文件夹中包含了所有的第三方工具包。

 

现在我们开始用一个demo来检验其是否安装成功。首先去它的tutorials网站下载一个demo,我用的是“Projectingpoints using a parametric model”

http://pointclouds.org/documentation/tutorials/project_inliers.php#project-inliers

首先将code粘贴到project_inliers.cpp的文件中,然后将cmake语句粘到CMakeLists.txt的文件中。打开cmake(注意最小版本要求2.8),copy源文件(project_inliers.cpp和CMakeLists.txt)的位置,然后输入目的文件即VS2008编译后的文件夹(一般都是在相应文件夹中建一个VS2008,如图所示)。


当开始编译后,会出现一些error,但是绝对都是正常的。常见的error有

1.  找不到PCL的DIR:解决方法是手动配置路径,一般在<PROGAMFILES>\PCL 1.4.0\cmake里面。我这儿再介绍一下为什么是这个文件夹,原因是cmake链接编译需要找到对应的 .cmake文件,而PLCConfig.cmake就在刚刚的路径下面。

2.  找不到 PCL 的include DIR: 解决办法是手动设置<PROGAMFILES>\PCL 1.4.0\include\pcl-1.4为其路径,没什么好说的,里面有所以PCL要用的重要头文件,相信配置过opencv的童鞋不会陌生。

3.  找不到PCL 的lib DIR: 解决方法是手动设置

<PROGAMFILES>\PCL1.4.0\lib为其路径,也没什么说的。

上述以PCL工具包举例子,其他的以此类推。一般情况设置好了DIR,什么include还有lib都会自动匹配上的。

好了,下面说关键的大BUG。它困扰了1天时间,后来求助论坛神牛才得以解决。我实际安装的时候,什么问题都解决了,只有一个问题反复出现,就是VTK DIRNOT FOUND. 我对此表示非常吃惊,因为实际上我的DIR设置的是

<PROGAMFILES>\PCL1.4.0\3rdParty\VTK\lib\vtk-5.8。这个文件夹中包含了一切的VTK.cmake文件,理论上不会出现问题。但是cmake总是不让我过。后来问题解决了(多谢Mourad大牛帮助http://www.pcl-users.org/Couldn-t-find-VTK-DIR-VS2008-32-BIT-Windows-OS-td3761563.html#a3761665)。这应该算一个bug,在Pre-built安装文件安装的时候,VTK包的文件名就叫VTK,但是可能是cmake内部代码找DIR的时候用的是VTK5.8.0因此你就算设置了也找不到DIR。解决方法很简单,用<PROGAMFILES>\PCL 1.4.0\3rdParty\VTK 5.8.0替换安装时自动产生的文件夹名<PROGAMFILES>\PCL 1.4.0\3rdParty\VTK即可。接着configure然后generate,哈哈,没错误的感觉真好(如图)!

 

接着是release模式下运行,最后一步别忘了把PCL的bin文件夹路径填到system的path中去。然后demo顺利运行成功,安装完成(如图)!