您的位置:首页 > 其它

PCL1.8.1 VS2015 X64系统点云配置经验

2018-02-11 16:49 846 查看

最近接触了3D轮廓建模,pcl安装与使用。PCL已经广泛使用在各种轮廓扫描建模中,在机器人自主导航和ROS中都有很大用处。官网和论坛都有很多资料,但是很少看到有介绍在vs2015下配置PCL1.8.1(目前最新2018年)的经验分享,而这些涉及到PCL本身的安装配置,还有个人项目里的配置。在此做个经验分享交流。

主要难点在于lib的配置,源文件里如max min 等的修改,如果使用结合MFC来显示的话,还需要相应的头文件,模板文件,实现文件(.h .hpp .cpp).相关头文件,库文件路径及在工程属性里各项的设置!!!! 
sensor_msgs::PointCloud2    ------------------------>pcl::PCLPointCloud2 


 下载相关文件1.下载PCL-1.8.1-AllInOne-msvc2015-win32.exehttps://github.com/PointCloudLibrary/pcl/releases/tag/pcl-1.8.1二、Windows7下安装步骤:1.点击CL-1.8.1-AllInOne-msvc2015-win32.exe一键安装,可以默认也可以自己选择安装路径,如本文所选择的路径D:\Program Files;(放在D盘更好,避免有时没有权限修改或者移动C盘缺省文件!!!!);2.在安装过程中,OpenNI2在安装时会弹出界面。其他教程中说可以自己选择路径(选择第一步的),但本人安装时并没有弹出该界面,而是默认安装,但安装位置不对,需要手动将错误的文件夹下的OpenNI2移到C:\Program Files\PCL;3.等待一段时间,则安装完成。注意事项:在安装点击“我接收(I)”之后弹出来的对话框中一定要选择第二项Add PCL to the systemPATH for all users:(如图)


三、系统配置步骤1.点击win7的控制面板->系统->高级系统设置->在系统属性的“高级选项”卡下点击“环境变量”;2.在系统子菜单里面找到“Path”,如图(这里面显示的C盘的安装):

3.点击编辑,依次加入C:\Qt\4.8.0\bin;C:\Program Files (x86)\PCL 1.8.1\bin;%PCL_ROOT%\bin;%OPENNI2_REDIST%;C:\Program Files(x86)\PCL 1.8.1\3rdParty\FLANN\bin;C:\Program Files(x86)\PCL 1.8.1\3rdParty\Qhull\bin;C:\Program Files(x86)\PCL 1.8.1\3rdParty\OpenNI2\Tools;C:\Program Files(x86)\PCL 1.8.1\3rdParty\VTK\bin注意,第一项在“一键安装”时就已经添加。4.重启电脑四、VS2015工程配置步骤1.打开VS2015,创建新的win32控制台工程;2.点击项目菜单的属性,如图:

3.在弹出的对话框中,①       点击“包含目录”下拉箭头->编辑,添加文件路径:C:\ProgramFiles (x86)\PCL 1.8.1\3rdParty\VTK\include\vtk-8.0C:\ProgramFiles (x86)\PCL 1.8.1\3rdParty\VTK\includeC:\ProgramFiles (x86)\PCL 1.8.1\3rdParty\Qhull\includeC:\ProgramFiles (x86)\PCL 1.8.1\3rdParty\FLANN\includeC:\Program Files (x86)\PCL 1.8.1\3rdParty\Eigen\eigen3C:\ProgramFiles (x86)\PCL 1.8.1\3rdParty\Boost\include\boost-1_6
4000
4C:\ProgramFiles (x86)\PCL 1.8.1\3rdParty\Boost\include\boost-1_64\boostC:\ProgramFiles (x86)\PCL 1.8.1\3rdParty\Boost\includeC:\ProgramFiles (x86)\PCL 1.8.1\include\pcl-1.8C:\ProgramFiles (x86)\PCL 1.8.1\include\pcl-1.8\pcl完成后点击确定;②   点击“库目录”下拉箭头->编辑,添加文件路径: 完成后点击确定;4.点击连接器->输入->附加依赖项:PCL1.8.0 的一些库文件为1.6.1或7.0lib。PCL1.8.1 的大部分库文件为1.6.4或8.0lib。点击下拉箭头->编辑,添加下列文件:pcl_common_debug.libvtknetcdf_c++-gd.libpcl_features_debug.libpcl_filters_debug.libpcl_io_ply_debug.libpcl_io_debug.libpcl_kdtree_debug.libpcl_keypoints_debug.libpcl_ml_debug.libpcl_octree_debug.libpcl_outofcore_debug.libpcl_people_debug.libpcl_recognition_debug.libpcl_registration_debug.libpcl_sample_consensus_debug.libpcl_search_debug.libpcl_segmentation_debug.libpcl_stereo_debug.libpcl_surface_debug.libpcl_tracking_debug.libpcl_visualization_debug.liblibboost_atomic-vc140-mt-gd-1_64.liblibboost_bzip2-vc140-mt-gd-1_64.liblibboost_chrono-vc140-mt-gd-1_64.liblibboost_container-vc140-mt-gd-1_64.liblibboost_context-vc140-mt-gd-1_64.liblibboost_coroutine-vc140-mt-gd-1_64.liblibboost_date_time-vc140-mt-gd-1_64.liblibboost_exception-vc140-mt-gd-1_64.liblibboost_fiber-vc140-mt-gd-1_64.liblibboost_filesystem-vc140-mt-gd-1_64.liblibboost_graph-vc140-mt-gd-1_64.liblibboost_graph_parallel-vc140-mt-gd-1_64.liblibboost_iostreams-vc140-mt-gd-1_64.liblibboost_locale-vc140-mt-gd-1_64.liblibboost_log-vc140-mt-gd-1_64.liblibboost_log_setup-vc140-mt-gd-1_64.liblibboost_math_c99-vc140-mt-gd-1_64.liblibboost_math_c99f-vc140-mt-gd-1_64.liblibboost_math_c99l-vc140-mt-gd-1_64.liblibboost_math_tr1-vc140-mt-gd-1_64.liblibboost_math_tr1f-vc140-mt-gd-1_64.liblibboost_math_tr1l-vc140-mt-gd-1_64.liblibboost_mpi-vc140-mt-gd-1_64.liblibboost_numpy3-vc140-mt-gd-1_64.liblibboost_numpy-vc140-mt-gd-1_64.liblibboost_prg_exec_monitor-vc140-mt-gd-1_64.liblibboost_program_options-vc140-mt-gd-1_64.liblibboost_python3-vc140-mt-gd-1_64.liblibboost_python-vc140-mt-gd-1_64.liblibboost_random-vc140-mt-gd-1_64.liblibboost_regex-vc140-mt-gd-1_64.liblibboost_serialization-vc140-mt-gd-1_64.liblibboost_signals-vc140-mt-gd-1_64.liblibboost_system-vc140-mt-gd-1_64.liblibboost_test_exec_monitor-vc140-mt-gd-1_64.liblibboost_thread-vc140-mt-gd-1_64.liblibboost_timer-vc140-mt-gd-1_64.liblibboost_type_erasure-vc140-mt-gd-1_64.liblibboost_unit_test_framework-vc140-mt-gd-1_64.liblibboost_wave-vc140-mt-gd-1_64.liblibboost_wserialization-vc140-mt-gd-1_64.liblibboost_zlib-vc140-mt-gd-1_64.libflann-gd.libflann_cpp-gd.libflann_cpp_s-gd.libflann_s-gd.libqhull_d.libqhullcpp_d.libqhullstatic_d.libqhullstatic_r_d.libqhull_p_d.libqhull_r_d.libvtkalglib-8.0-gd.libvtkChartsCore-8.0-gd.libvtkCommonColor-8.0-gd.libvtkCommonComputationalGeometry-8.0-gd.libvtkCommonCore-8.0-gd.libvtkCommonDataModel-8.0-gd.libvtkCommonExecutionModel-8.0-gd.libvtkCommonMath-8.0-gd.libvtkCommonMisc-8.0-gd.libvtkCommonSystem-8.0-gd.libvtkCommonTransforms-8.0-gd.libvtkDICOMParser-8.0-gd.libvtkDomainsChemistry-8.0-gd.libvtkexoIIc-8.0-gd.libvtkexpat-8.0-gd.libvtkFiltersAMR-8.0-gd.libvtkFiltersCore-8.0-gd.libvtkFiltersExtraction-8.0-gd.libvtkFiltersFlowPaths-8.0-gd.libvtkFiltersGeneral-8.0-gd.libvtkFiltersGeneric-8.0-gd.libvtkFiltersGeometry-8.0-gd.libvtkFiltersHybrid-8.0-gd.libvtkFiltersHyperTree-8.0-gd.libvtkFiltersImaging-8.0-gd.libvtkFiltersModeling-8.0-gd.libvtkFiltersParallel-8.0-gd.libvtkFiltersParallelImaging-8.0-gd.libvtkFiltersPoints-8.0-gd.libvtkFiltersProgrammable-8.0-gd.libvtkFiltersSelection-8.0-gd.libvtkFiltersSMP-8.0-gd.libvtkFiltersSources-8.0-gd.libvtkFiltersStatistics-8.0-gd.libvtkFiltersTexture-8.0-gd.libvtkFiltersTopology-8.0-gd.libvtkFiltersVerdict-8.0-gd.libvtkfreetype-8.0-gd.libvtkGeovisCore-8.0-gd.libvtkgl2ps-8.0-gd.libvtkhdf5-8.0-gd.libvtkhdf5_hl-8.0-gd.libvtkImagingColor-8.0-gd.libvtkImagingCore-8.0-gd.libvtkImagingFourier-8.0-gd.libvtkImagingGeneral-8.0-gd.libvtkImagingHybrid-8.0-gd.libvtkImagingMath-8.0-gd.libvtkImagingMorphological-8.0-gd.libvtkImagingSources-8.0-gd.libvtkImagingStatistics-8.0-gd.libvtkImagingStencil-8.0-gd.libvtkInfovisCore-8.0-gd.libvtkInfovisLayout-8.0-gd.libvtkInteractionImage-8.0-gd.libvtkInteractionStyle-8.0-gd.libvtkInteractionWidgets-8.0-gd.libvtkIOAMR-8.0-gd.libvtkIOCore-8.0-gd.libvtkIOEnSight-8.0-gd.libvtkIOExodus-8.0-gd.libvtkIOExport-8.0-gd.libvtkIOExportOpenGL-8.0-gd.libvtkIOGeometry-8.0-gd.libvtkIOImage-8.0-gd.libvtkIOImport-8.0-gd.libvtkIOInfovis-8.0-gd.libvtkIOLegacy-8.0-gd.libvtkIOLSDyna-8.0-gd.libvtkIOMINC-8.0-gd.libvtkIOMovie-8.0-gd.libvtkIONetCDF-8.0-gd.libvtkIOParallel-8.0-gd.libvtkIOParallelXML-8.0-gd.libvtkIOPLY-8.0-gd.libvtkIOSQL-8.0-gd.libvtkIOTecplotTable-8.0-gd.libvtkIOVideo-8.0-gd.libvtkIOXML-8.0-gd.libvtkIOXMLParser-8.0-gd.libvtkjpeg-8.0-gd.libvtkjsoncpp-8.0-gd.libvtklibharu-8.0-gd.libvtklibxml2-8.0-gd.libvtklz4-8.0-gd.libvtkmetaio-8.0-gd.libvtkNetCDF-8.0-gd.libvtkoggtheora-8.0-gd.libvtkParallelCore-8.0-gd.libvtkpng-8.0-gd.libvtkproj4-8.0-gd.libvtkRenderingAnnotation-8.0-gd.libvtkRenderingContext2D-8.0-gd.libvtkRenderingContextOpenGL-8.0-gd.libvtkRenderingCore-8.0-gd.libvtkRenderingFreeType-8.0-gd.libvtkRenderingGL2PS-8.0-gd.libvtkRenderingImage-8.0-gd.libvtkRenderingLabel-8.0-gd.libvtkRenderingLIC-8.0-gd.libvtkRenderingLOD-8.0-gd.libvtkRenderingOpenGL-8.0-gd.libvtkRenderingVolume-8.0-gd.libvtkRenderingVolumeOpenGL-8.0-gd.libvtksqlite-8.0-gd.libvtksys-8.0-gd.libvtktiff-8.0-gd.libvtkverdict-8.0-gd.libvtkViewsContext2D-8.0-gd.libvtkViewsCore-8.0-gd.libvtkViewsInfovis-8.0-gd.libvtkzlib-8.0-gd.libopengl32.lib完成后点击确定;注意:上面为在debug下运行的文件,如果想在release下运行,则将其中的gd改成r即可!!!

后面就可以使用PCL相关的定义,数据类型,和算法等等!! 主要可以用在相机或激光传感器扫描的数据中,生成相应的3D环境!!下图为结合激光测距做出的3D图形。 

如有相关技术交流,可联系:yyjqr789@sina.com 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息