欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

[学习笔记]PCL使用心得

程序员文章站 2022-03-30 11:29:03
最近开始做研究生毕设,有一部分因为没有什么好的思路,就把以前用过的PCL点云搬出来,重新用源码装了一遍PCL,一开始装的过程中没什么大问题,在后面用的时候碰到了很多小问题,特此记录。 1.PCL版本问题 如果你用ROS的话,安装的时候会自带PCL的1.7版本,不过本着用源码安装的习惯,我们还是从gi ......

最近开始做研究生毕设,有一部分因为没有什么好的思路,就把以前用过的pcl点云搬出来,重新用源码装了一遍pcl,一开始装的过程中没什么大问题,在后面用的时候碰到了很多小问题,特此记录。

1.pcl版本问题

如果你用ros的话,安装的时候会自带pcl的1.7版本,不过本着用源码安装的习惯,我们还是从github上下载源码来自行安装。目前最新版是1.9,我自己安装1.9没碰到什么版本冲突问题,也就是在后面跑代码的时候会提示可能与已安装的1.7版本有冲突,不过是warning我也就懒得管了,不知道可否删掉ros中自带的那个pcl。但在跟同学的交流过程中,发现她以前源码安装1.8版本的时候跟自带的1.7冲突,至于到什么地步也没问,这么看来确实有版本的问题,但是网上那么多源码安装的教程,应该问题不严重。

2.cmakelists里指定pcl的版本

因为电脑里pcl有两个版本,我们想用的是1.9,因此需要指定版本。一般按照下面的写就足够了。

find_package(pcl 1.9 required)
include_directories(${pcl_include_dirs})
link_directories(${pcl_library_dirs})
add_definitions(${pcl_definitions})

不需要专门set安装的路径,最后一行的add_definitions一定要加上,不然会报错。最后记得在target_link_libraries里加上${pcl_libraries}。

3.关于vtk的版本问题

如果用到了pcl中visualization的模块,需要配置一下vtk,其实电脑里(ros?)自带了6.2版本的vtk,但是在安装pcl的时候提示版本有问题,我就用源码装了一遍vtk的最新的8.2版本,然后可以安装成功,我也就没管了。后来我想把算出来的点云可视化出来,用了pcl的visualization::cloudviewer函数,然后就报vtk的错,找不到vtk的库,没有对应函数之类的问题。在网上找了好久才发现,是vtk版本太新,7.1以后的版本有几个函数名变了。

gettuplevalue -> gettypedtuple
settuplevalue -> settypedtuple
inserttuplevalue -> inserttypedtuple
insertnexttuplevalue -> insertnexttypedtuple

最简单的办法就是重新下一个旧版本的vtk自己编译,于是我在上找到了对应的代码,我建议下.zip格式的包,我一开始下的tar.gz解压后总是安装失败。然后删掉之前最新版安装遗留下来的文件,慎用rm *。重新安装之后就没有显示的问题了。

先记这么多,以后如果有别的小问题会继续更新。