




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章PCL入门 1 本章依次详细介绍了在Windows下安装配置PCL开发环境 Linux下配置搭建PCL开发环境 以及其他操作系统下用户如何配置 最后利用实例介绍如何建立自己的PCL应用程序 对于Windows和Linux用户可以跳过与自己所用系统无关的小节 最后利用CMake编程模式建立实例应用程序 适用于各个平台的用户 阅读完本章 读者可以掌握PCL开发环境搭建的流程和注意事项及关键配置选项 以及如何开发自己基于PCL的应用程序 注意 本章假设读者熟悉CMake svn make和C 编译链接等工具和基础知识 2 本章各小节目录 2 1Windows下配置安装PCL开发环境2 2Linux下配置搭建PCL开发环境2 3其他操作系统2 4建立自己的PCL应用程序 3 2 1Windows下配置安装PCL开发环境 PCL为了方便Windows用户的安装 提供预编译的安装文件 但是只限于用户使用VisualStudio2010或VisualStudio2008 如果用户采用其他编译器或长期采用PCL作为开发平台或者因为编译包不是对应最新的源代码 需要使用最新功能的用户 这些情况下就需要自己从源码安装 本节依次详细介绍这两种情况 笔者建议初学者最好使用安装包安装方式 步骤较简单 简单几步即可体验PCL的强大功能 如果读者为Linux用户 可以阅读2 2节Linux下配置安装PCL开发环境 但如果是从源码编 4 译则需要从2 1 2小节阅读 因为该小节对PCL的Cmake选项进行了详细的解释 5 2 1 1从预编译包搭建开发环境1 准备工作 1 获取Allinone安装包 PCL提供了配置为VisualStudio2010的32位和64位 VisualStudio2008的32位和64位下的该安装包 该包包含了PCL中所使用全部第三方编译包 除了Qt编译包 2 获取Allinone包对应的PDB文件包 该包用于后期单步调试时使用 3 获取PCL源码包 4 安装开发工具VisualStudio2010或VisualStudio2008和CMake开发工具 需要CMake版本大于2 8 3 主要考虑到PCL中用到了高版本的一些宏定义 低版本不兼容 6 注意 http pointclouds org downloads windows html可下载Allinone安装包和其对应的PDB文件包 源码包可在http pointclouds org downloads 处下载 以上所有包都在本书提供的光盘中对应第2章的文件夹中可以找到 本章编写时以2012年2月22日官方发布的1 51版本为准 如果用户安装了RGBD相关设备驱动与中间件 则需要卸载OpenNI相关的驱动 中间件 避免与Allinone提供的驱动与中间件冲突 如果没有 忽略此项 OpenNI RGBD相关的内容后续章节I O有介绍 图2 1所示为准备工作最终需要的文件 源码 调试包 编译包 7 2 安装安装过程很简单 笔者配置为VisualC 2008ExpressEdition CMake2 8 5 32位系统 单击安装上一步所准备的文件PCL 1 5 1 AllInOne masvc2008 win32 exe 运行如图2 2 图2 8所示 按照提示默认安装即可 如果需要改变安装路径到非C盘 后面CMake配置时需要自行设置各个第三方库的路径以及PCL头文件与链接库路径 因为PCL中提供的CMake相关搜索路径默认只会在C盘下搜索相关的库 8 安装组件库选择界面时 可以通过是否打勾来确定用户自己需要的模块相关的头文件和库文件 对于首次使用PCL的用户直接默认 全选即可 9 成功安装之后 安装目录下有6个文件夹3rdParty bin cmake include lib share 其中3rdParty内部有6个开源包预编译库 Boost Eigen Flann OpenNI Qhull VTK 如图2 9所示 预编译中文件夹中包含了安装包对应的编译器版本编译的链接库以及include头文件等 bin目录下包含编译好的PCL相关的 DLL文件与EXE文件 此处编译好的EXE文件有很多是示例 用户可以自行运行测试 例如和kinect相关的kinfu重建工具 PCD可视化工具pcdviewer等 CMake内包含开发包相关的Cmake配置文件 在建立工程时 利用此文件中包含的宏寻找第三方包和PCL相应的include和lib目录 include文件夹包含了PCL的头文件 lib文件夹包含PCL相关的 LIB文件 share文件夹包含帮助文件等 10 将PDB解压文件复制到安装好的PCL目录下bin文件夹中 如图2 10所示 以实现后期单步PCL源码调试 至此就在Windows下准安装配置好PCL开发环境还需要最后一步进行测试确保安装的正确性 3 测试安装是否成功建立两个文件 源程序文件project inliers cpp和Cmake配置文件CMakeLists txt 如图2 11所示 其内容复制链接http pointclouds org documentation tutorials project inliers php project inliers中对应的代码及CMakeLists的 11 代码 此处也可以从光盘本章中test文件夹中复制得到对应的文件 放在同一文件夹source下 在source同一目录下建立cmake bin文件夹 打开Cmake程序 设置源文件目录与编译目录 如图2 12所示 选择对应的编译器 如图2 13所示 笔者选择对应visualstudio92008 单击Finish按钮 再单击配置与生成按钮 如图2 14所示 即可得到工程文件 如图2 15所示 12 找不到OpenNI 虽然我查看了环境变量存在 没办法 我是自己加进去的 参考文献 13 打开工程文件编译链接生成EXE文件 如图2 16所示 打开cmd exe 到编译输出的project inliers exe文件目录下运行该程序文件 可以看到 工程文件 14 对于使用类kinect设备的用户可以使用bin目录下的kinect viewer cuda release exe测试是否配置好OpenNI相关的驱动等 运行测试结果如上图所示 至此就完成了PCL在Windows上的开发环境搭建 用户可以自行体验官方网站提供的大量实例代码了 如果用户只是使用稳定的PCL版本 就可以直接去2 4节阅读如何建立自己的PCL应用程序了 需要安装KinectSDK并且需要Kinect摄像头吧 15 2 1 2用第三方预编译包从源码搭建开发环境如果是除VisualStudio之外的第三方开发环境 16 2 1 2从源码搭建开发环境从源码搭建开发环境是指读者需要自行编译链接第三方库 然后按照2 1 2小节所介绍的编译安装PCL库 所以在这里只介绍如何从第三方库的源码编译链接得到第三方库 后续编译安装测试PCL与2 1 2小节一样 17 2 2Linux下配置搭建PCL开发环境 对于Linux用户 搭建PCL开发环境同样有两种选择 一是基于定期更新维护的PCL开发包 二是通过源码编译搭建PCL开发环境 前者目前只限于Ubuntu Debian和Fedora版本的Linux 后者需要用户自行编译所有的第三方库 再编译PCL 对于初级用户较困难 主要是各个库版本之间的兼容性必须选择官方测试过的版本 18 2 2 1预编译包搭建1 Ubuntu上安装目前通过PPA支持Ubuntu Lucid Maverick Natty Oneiric 系统 其安装命令为 sudoadd apt repositoryppa v launchpad jochen sprickerhof de pclsudoapt getupdatesudoapt getinstalllibpcl all 19 2 2 2从源代码安装对于未提供预编译安装包的Linux版本的用户需要自行从源代码编译生成PCL开发环境 20 2 3其他操作系统 目前PCL还提供对MacOS的支持 21 2 4建立自己的PCL应用程序 PCL开发模式采用CMake工具来进行开发 所有应用程序源码可以通过CMake跨平台在不同的开发工具下使用 所以本小节内容适合Linux和Windows等系统的用户 本节利用一个简单的工程演示基于PCL的应用程序的CMake开发模式 22 2 4 1先决条件假设用户已经在机器上下载 编译并安装了PCL 如果没有安装PCL请参考本章前面小节 23 2 4 2工程设置首先建立放源文件的文件夹source 将其放在 PATH TO MY GRAND PROJECT目录下 在source文件夹下 创建名为pcd write cpp的单独的cpp文件 从http pointclouds org documentation tutorials writing pcd php下载或者从本书提供的CD中复制 然后在该文件夹中新建一个名为CMakeLists txt的文件 内容如下 cmake minimum required VERSION2 6FATAL ERROR project MY GRAND PROJECT find package PCL1 3REQUIREDCOMPONENTScommonio inlcude directories PCL INCLUDE DIRS link directories PCL LIBRARY DIRS add definitions PCL DEFINITIONS add executable pcd write testpcd write cpp target link libraries pcd write test PCL COMMON LIBRARIES PCL IO LIBRARIES 24 下面 让我们解读这段CMakeLists txt中的代码 cmake minimum required VERSION2 6FATAL ERROR 这是对CMake版本的最低要求 由于做的是非常基础的工程 不需要CMake2 8或者更高版本中的功能 project MY GRAND PROJECT 这一行为工程命名 同时CMake会自动产生一些有用的CMake变量 例如源代码目录路径变量名为 MY GRAND PROJECT SOURCE DIR 工程存储目录变量名为 MY GRAND PROJECT BINARY DIR 这些都是CMake在内部根据上面定义的工程名称自动生成的 不需要用户定义 而用户只需要利用project XX 宏即可引发其他变量的内部定义 find package PCL1 3REQUIREDCOMPONENTScommonio 这行要求该工程依赖PCL最低1 3的版本 并且该版本需 25 要至少包含common和I O两个模块 即在Cmake配置生成工程文件时 必须找到符合要求的PCL库相关模型所在的库和头文件路径 这里的REQUIRED意味着如果对应的库不能找到 则Cmake配置过程将完全失败 因为PCL是模块化的 也可以作如下的要求 一个组件 find package PCL1 3REQUIREDCOMPONENTSio 多个组件 find package PCL1 3REQUIREDCOMPONENTSiocommon 所有组件 find package PCL1 3REQUIRED 下面语句是利用CMake的宏完成对PCL的头文件路径和链接路径变量的配置和添加 即如果缺省下面几句 在生成的过程文件编译时会提示找不到相关头文件错误 或者在链接的时候出现无法解析的外部符号等错误提示 26 include directories PCL INCLUDE DIRS link directories PCL LIBRARY DIRS add definitions PCL DEFINITIONS 在配置CMake时 当CMake找到了安装的PCL 下面相关的包含文件 链接库路径变量等就会自动设置 PCL FOUND 如果找到了PCL 被设置为1 否则不设置 PCL INCLUDE DIRS 被设置成PCL安装头文件和依赖头文件的目录 PCL LIBRARIES 被设置成所建立和安装的PCL库的文件名 PCL LIBRARY DIRS 被设置成PCL库和第三方依赖文件所在的目录 PCL VERSION 所找到的PCL的版本 PCL COMPONENTS 列出所有可用组件 PCL DEFINITIONS 列出所需要的预处理器定义和编译器标志 为了让CMake知道包含到自己工程中的外部头文件 需 27 要使用include directories 宏 在实例中为PCL INCLUDE DIRS 精确地包含了我们所需要的PCL相关的头文件 因此CMake会自动根据找到的PCL安装目录自动搜索PCL所有可能包含的目录 add executable pcd write testpcd write cpp 该句告诉CMake 我们正试图从单个源文件pcd write cpp来新建一个名为pcd write test的可执行文件 CMake会注意到后缀 在Windows平台上为 exe 在unix平台上为空 和权限 target link libraries pcd write test PCL COMMON LIBRARIES PCL IO LIBRARIES 到目前为止 我们仅仅包含了PCL头文件 因此编译器知道我们现在访问所用的方法 我们也需要让链接器知道所链接的库 PCL找到库文件由PCL LIBRARIES变量指示 剩下的是通过访问target link libraries 这个宏来触发链接操作 28 2 4 3编译和运行工程1 使用CMake命令此处是在Linux下为例说明的 在Windows下多数使用用户界面 但也可以同样使用命令行方式 建立一个称做build的目录 编译工作将在其中进行 在SHELL中利用以下命令完成 现在我们可以编译链接程序了 简单地输入 make结果应该和下面一样 该工程已经编译 链接完成 并且准
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年烟草设备维修工新员工岗位专业知识笔试题目及答案
- 2025年乘务人员考试题库及答案
- 药用植物学与生药学测试题及答案
- 高校经济合同模板(3篇)
- 综评面试题库及答案书
- 安全输液考试题及答案
- 高粱地种植合同模板(3篇)
- 大连淘宝店铺产品生命周期管理代运营协议
- 2025国家公务员面试题及答案
- 体育公司与个人运动员参赛合同
- 2025网络设备购销合同文本
- 成都产业投资集团有限公司所属产业投资板块企业2025年招聘投资管理等岗位的考试参考试题及答案解析
- 乡镇综合行政执法队队长试用期满转正工作总结
- 2025天津医科大学眼科医院第三批招聘1人备考考试试题及答案解析
- 2025年法院书记员招聘考试笔试试题含答案
- 4.6.2.2神经调节(第二课时)课件-人教版(2024)生物八年级上册
- 银行积分培训课件
- CPK、PPK和SPC(X-R控制图)模板
- 汉诺塔课件教学课件
- 校企合作实习生管理制度与考核办法
- 2025年北京市高考英语试卷真题(含答案解析)
评论
0/150
提交评论