最近开始做研究生毕设,有一部分因为没有什么好的思路,就把以前用过的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自己编译,于是我在gitlab上找到了对应的代码,我建议下.zip格式的包,我一开始下的tar.gz解压后总是安装失败。然后删掉之前最新版安装遗留下来的文件,慎用rm *。重新安装之后就没有显示的问题了。

4.CMakelists.txt里需要添加的组件

一开始我只在find_package里加了PCL 1.9 REQUIRED,后来发现程序经常crash,我用的是QT,搞不太明白,后来看了一下Compile Output,给我警告io features可能被disabled,于是我就改了一下find_package

find_package(PCL 1.9 REQUIRED COMPONENTS common io)

还有

target_link_libraries(generate_point_cloud ${PCL_LIBRARIES} ${PCL_COMMON_LIBRARIES} ${PCL_IO_LIBRARIES})

这下程序就没有crash了。

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

[学习笔记]PCL使用心得的更多相关文章

  1. 学习笔记---C++析构函数心得

    1.动态分配的对象的析构函数 class man{ public: man(){ cout<<"man begin"<<endl; }; ~man(){ c ...

  2. 有关c#的学习笔记整理与心得

    [ 塔 · 第 一 条 约 定 ] 整理c#:Array Arraylist List Hashtable Dictionary Stack Queue等 Array 的容量是固定的,而 ArrayL ...

  3. Zim学习笔记 (Fedora)

    俗话说好记性不如烂笔头, 对于一个搞IT的人来说最好的笔毫无疑问就应该是电脑了, 但最好的本呢? 之前一直在找一款适合自己的笔记软件, 找来找去只有Zim适合自己, 当然对于有编辑器之神之美誉的ema ...

  4. Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...

  5. SpringBoot学习笔记(7):Druid使用心得

    SpringBoot学习笔记(7):Druid使用心得 快速开始 添加依赖 <dependency> <groupId>com.alibaba</groupId> ...

  6. 从实例学习 Go 语言、"并发内容" 学习笔记及心得体会、Go指南

    第一轮学习 golang "并发内容" 学习笔记,Go指南练习题目解析.使用学习资料 <Go-zh/tour tour>.记录我认为会比较容易忘记的知识点,进行补充,整 ...

  7. Java学习笔记心得——初识Java

    初识Java 拿到这本厚厚的<Java学习笔记>,翻开目录:Java平台概论.从JDK到TDE.认识对象.封装.继承与多态...看着这些似懂非懂的术语名词,心里怀着些好奇与担忧,就这样我开 ...

  8. 3年的坚持,最终造就著作——《Learninghard C#学习笔记》

    前言 起初开始写博文主要是记录学习过程中对学到内容的自我总结和理解,同时也希望本人的理解可以帮助到一些走在学习路上的朋友.但是令我没有想到的是,我总结的博文得到了广大园友的评论和支持,正是博友的支持, ...

  9. 《CSS 设计指南》学习笔记 一

    本篇文章是对这几天看完 Charles Wyke-Smit 的 <CSS 设计指南> 后的一些学习笔记与心得,笔者好像是大一的时候开始接触网页设计,由于并不是计算机专业的,所以所有都是自己 ...

随机推荐

  1. #006 dependencies和devDependencies的区别

    dependencies 和 devDependencies 区别 在 npm 中的 package.json ,有两种插件的依赖包配置形式。 dependencies 和 devDependenci ...

  2. IDEA 使用技巧 Update

    IDEA使用起来和Eclipse很大区别. 1.快捷键. 因为一个个熟悉起来费时间,就直接在Preferences—keymap里选择了Eclipse OS X,这样快捷键就转换到了Mac下Eclip ...

  3. Charles应用指南--安装与代理篇

    Charles是开发测试过程中十分常用的一款代理软件,之前也写了一点基本使用.最近有新同事入职头一次用这个,就写了这么一份基本的安装和配置笔记. Charles 下载地址 mac:链接: https: ...

  4. jQuery复制table header到表格的最下面

    为了让table具有更好的可读性,我们可以将表格的header信息克隆一份到表格的底部,这种特效通过JQuery就很容易实现: 1 2 3 4 5 var $tfoot = $(''); $($('t ...

  5. easyui 对form扩展

    功能描述 easyui 中  combobox 多选赋值方法如下: $('#cbx').combobox('setValues', ['01','02']) 然而,业务中是以  “01,02” 的形式 ...

  6. 2018年1月12日--微信小程序----出错报告(40kb的原因)---并解决方法

    一. 报错的原因是因为,图片的文件太大了,已经超过了40kb...不能超过40kb. 在这里查看图片文件的大小:

  7. django 模板关闭自动转义

    Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全.但是有的时候我们可能不希望这些HTML元素被转义,比如我们做一个内容管理系统,后台添加的文章中是经过修饰 ...

  8. python js 处理弹窗图片

    内置函数 : driver.execute_script() 2.自定义弹窗 由于alert弹窗不美观,现在大多数网站都会使用自定义弹窗,使用Selenium自带的方法就驾驭不了了,此时就要搬出JS大 ...

  9. P1877 [HAOI2012]音量调节

    题目描述 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都需要改变一次音量.在演出开始之前,他已经做好一个列表,里面写着每首歌开始之前他想要改变的音量是多少. ...

  10. 443 D. Teams Formation

    http://codeforces.com/contest/879/problem/D This time the Berland Team Olympiad in Informatics is he ...