首页 > 代码库 > 【原创】Octovis在Ubuntu16.04下运行出现core dump的解决方案

【原创】Octovis在Ubuntu16.04下运行出现core dump的解决方案

本人SLAM研究新手,使用系统为Ubuntu16.04。本文原址:http://www.cnblogs.com/hitlrk/p/6667253.html 

在学习SLAM的过程中,使用Octomap进行八叉树地图的建立,Octomap的编译安装没有出现问题,octovis模块也顺利安装。悲催的是,在我调用octovis模块打开已有的八叉树地图时,便会出现一大堆乱码,乱码最后有一个Core Dump。

这个错误和2016年时g2o_viewer在Ubuntu16.04下出现的错误一样,不过目前g2o的作者已经更新源码,使得g2o在16.04下可以完美运行。由于本人之前饱受g2o_viewer在Ubuntu16.04下(别问我为啥不装14,我也很奇怪我的电脑只能装得上16.04)不能使用的困扰。因此我对octovis的问题展开了探索。

在经过一系列的分析比对,我发现是在依赖项上出了问题。很多地方对于OctoMap的编译安装中会要求依赖项libqglviewer-dev。libQGLViewer 是一个用以简化了Qt开发OpenGL三维浏览器的C++库。它也是在所有新老版本的g2o的编译安装中必备的一个依赖项。

但是!在Ubuntu16.04下,Octomap的编译安装,却不能使用libqglviewer-dev。而应该使用libqglviewer-dev-qt4:

1 sudo apt-get install libqglviewer-dev-qt4

安装的时候,如果装过libqglviewer-dev,系统会将其自动卸载。

安装完成后在编译安装OctoMap,如果之前编译安装过,则务必重新编译安装,使OctoMap更新一下。

最后再次用octovis打开八叉树地图可见已经正常。

技术分享

 

另外:在编译安装OctoMap后,可以再重新安装回libqglviewer-dev,以便为其他功能模块,如g2o提供依赖项。

sudo apt-get install libqglviewer-dev

因为libqglviewer-dev-qt4和libqglviewer-dev只能存在一个,但libqglviewer-dev-qt4并不能支持g2o。安装回libqglviewer-dev是不会影响octovis的使用的,因为它影响的只是OctoMap的编译安装。亲测~

本人的问题是在Ubuntu16.04下出现并解决的,其他版本系统未曾测试。第一次发博,希望能和各路大神互相交流互相促进,引用转载请注明出处:http://www.cnblogs.com/hitlrk/p/6667253.html !

 

【原创】Octovis在Ubuntu16.04下运行出现core dump的解决方案