ubuntu18.04编译稠密点云orbslam2问题汇总,D435i,一种可能的段错误(核心已转储)解决方案,总结:一定要选择合适的库!

目录

关于卸载自己版本的库:

关于VTK:

情况一:找不到FindVTK.cmake文件

情况二:找不到一些.so库

关于PCL:

特别值得提一点:段错误(核心已转储)

方法一:删除原有系统的eigen库,安装合适版本,推荐3.1版本

方法二:在CMakeLists里面取消编译器的一些设置,具体看链接,这里不再赘述

仍无法解决:可能是高版本的pcl库没有删干净

 关于opencv和ros:

总结:遇到其他的问题,大都能从csdn上找到答案,如果实在找不到,很有可能是版本的问题!版本不适配会遇到各种问题!


我主要follow的文章如下:

Orbslam2 稠密点云 +D435i实现(Ubuntu18.04)_d435运行orbslam2-CSDN博客

这篇文章只是讲了个大概,中途会遇到很多问题,我不停地解决问题,目前已经能跑通。

总结下来,最大的问题就是各个库的版本一定要适配

先查看一下自己的关键库:opencv,eigen3,vtk和pcl的版本

pkg-config --modversion eigen3 #查看eigen3版本
pkg-config --modversion opencv #查看opencv版本
sudo find | grep "VTK"  #查看vtk版本
dpkg -l libpcl-*  #查看pcl版本

 经过我不断的试错,合适的版本为

opencv:3.2.0

eigen3:  3.1.0

vtk:  7.1.1

pcl:  1.8.1

pangolin: 0.5

如果按照这样子装,可以一路顺风,这里特别特别要注意的点就是,不要用git clone或者sudo apt-get来安装库,这样会直接帮你安装最新版本,而最新版本之间不适配,会带来很多错误!!!!!一定要去下载源码,然后老套路,mkdir build一直到sudo  make  install(大家一定知道我在讲什么)

以本人为例,刚开始通过git clone或sudo apt-get装的库:

eigen3版本好像为3.3.4,pcl版本为1.13.1.99,vtk 是sudo apt-get下载的,出现了很多错误。

关于卸载自己版本的库:

一定要去仔细搜终端代码,不然可能删不干净,会很麻烦,有一些库可以在build文件夹里面通过以下代码删除:

sudo make uninstall

关于VTK:

首先很重要的一点:安装pcl之前一定要先安装vtk,ubuntu18.04可能会自带vtk,但是这个vtk里面其实是不全的,运行orbslam2的时候会报错!

这里尤其要说明一点,我刚开始vtk和pcl安装是按照这篇文章安装的:(最新)Ubuntu18.04安装pcl点云库(遇坑大全,解决方法)_ubuntu已经安装no module named 'pcl-CSDN博客

这个博主讲的很好,但是vtk的安装,他是让我们用sudo apt-get的方式安装的,虽然最后也能将pcl安装好,但是在cmake..  orbslam2的时候,可能会报如下的错误:

情况一:找不到FindVTK.cmake文件

CMake Warning at /usr/share/pcl-1.13/PCLConfig.cmake:268 (find_package):
  By not providing "FindVTK.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "VTK", but
  CMake did not find one.

CMake Warning at /usr/share/pcl-1.13/PCLConfig.cmake:268 (find_package):
  By not providing "FindVTK.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "VTK", but
  CMake did not find one.

情况二:找不到一些.so库

/usr/bin/ld: 找不到 -lvtkIOMPIImage
/usr/bin/ld: 找不到 -lvtkIOMPIParallel
/usr/bin/ld: 找不到 -lvtkFiltersParallelDIY2
collect2: error: ld returned 1 exit status
io/CMakeFiles/pcl_io.dir/build.make:818: recipe for target 'lib/libpcl_io.so.1.13.1.99' failed
make[2]: *** [lib/libpcl_io.so.1.13.1.99] Error 1
CMakeFiles/Makefile2:1418: recipe for target 'io/CMakeFiles/pcl_io.dir/all' failed
make[1]: *** [io/CMakeFiles/pcl_io.dir/all] Error 2
make[1]: *** 正在等待未完成的任务....

/usr/bin/ld: 找不到 -lvtkIOMPIImage
/usr/bin/ld: 找不到 -lvtkIOMPIParallel
/usr/bin/ld: 找不到 -lvtkFiltersParallelDIY2
collect2: error: ld returned 1 exit status
io/CMakeFiles/pcl_io.dir/build.make:818: recipe for target 'lib/libpcl_io.so.1.13.1.99' failed
make[2]: *** [lib/libpcl_io.so.1.13.1.99] Error 1
CMakeFiles/Makefile2:1418: recipe for target 'io/CMakeFiles/pcl_io.dir/all' failed
make[1]: *** [io/CMakeFiles/pcl_io.dir/all] Error 2
make[1]: *** 正在等待未完成的任务....

总的来说,就是一定要源码安装vtk,vtk和pcl的安装我这里推荐一个文章,选择我说的版本安装安装即可,再强调一遍先装vtk,再装pcl。

【PCL】ubuntu20.04安装 VTK7.1与PCL1.8(PCL依赖VTK,要先装且最好源码安装)_vtk会跟pcl一起装吗-CSDN博客

关于PCL:

直接git clone,会安装最新版,会造成类似以下的问题:

fatal error: pcl/visualization/image_viewer.h: No such file or directory

或者

fatal error: pcl/visualization/pcl_visualizer.h: No such file or directory

本质是你/usr/include/pcl里面压根就没有visualization这个文件夹,解决方法是更换pcl版本,安装pcl 1.8就不会有这个问题,我一开始用的pcl 1.13,出现了这个问题

特别值得提一点:段错误(核心已转储)

当orbslam2成功编译,运行数据集的时候出现这个问题,目前常规的两个解法,可以参考这个博文:论ORBSLAM_with_pointcloud_map段错误(核心已转储)的另一种解决方法_yolo_orb_slam3_with_pointcloud_map-CSDN博客

方法一:删除原有系统的eigen库,安装合适版本,推荐3.1版本
方法二:在CMakeLists里面取消编译器的一些设置,具体看链接,这里不再赘述
仍无法解决:可能是高版本的pcl库没有删干净

我尝试了以上方法都无法解决,最后不断尝试,找到了问题所在,我最初装的pcl 13.1.99版本卸载并没有卸载干净,可能造成了版本冲突。

运行代码:

pkg-config --modversion pcl_common

发现自己的版本依然是pcl 1.13.1.99,可是这时候我已经卸载并且安装了pcl 1.8版本了,通过搜索,找到pcl_common的位置如下:/usr/lib/pkgconfig,发现这里面有一些1.13版本的文件没有删除,将所有plc开头的文件删除,命令如下,解决了段错误(核心已转储)的问题。

sudo rm -r /usr/lib/pkgconfig/pcl*

 关于opencv和ros:

这里可以参考一篇我自己的文章,里面前半部分分享了一个小鱼的命令行指令,可以一键安装ros,自带了opencv 3.2,很实用:

ubuntu18.04系统中运行./build_ros.sh的时候遇到报错-CSDN博客

总结:遇到其他的问题,大都能从csdn上找到答案,如果实在找不到,很有可能是版本的问题!版本不适配会遇到各种问题!

本人刚开始学习slam,并不是很会,自己不断踩坑总结出来的经验,分享给大家,可能有点啰嗦,如果帮到您的话,希望您给个点赞收藏关注支持一下!!祝大家永远不报错!!

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值