赞
踩
cmakelists主要参考orb-slam2_with_semantic_label项目中的cmakelists。
ORB-SLAM的编译需要C++11标准,但是libtorch1.5之后的版本都需要C++14,所以,根据自己的cuda选择一个可以下载的libtorch版本。链接格式可以参考Ubuntu系统pangolin与libtorch所引发的连接错误里面的格式进行尝试,当然要下载非预编译版本,否则后面会和各种库发生冲突。
选择好libtorch版本后,还是编译不通过,一直提示为未解决的引用,所以我又尝试了下载GCC5.4.0,不过好像是非必须的,如果编译不通过也可以尝试改变GCC编译器。参考的链接:Ubuntu18.04 gcc5安装及切换。最后的解决办法还是换了个非预编译版本的libtorch。
解决完大部分的引用问题,又出现了PCL库未解决的引用,手动安装PCL1.8,参考链接Ubuntu18.04安装PCL(详细教程),但是依旧没有解决问题,然后参考报错:对‘pcl::search::Search<pcl::PointXYZ>::getName() const’未定义的引用,在每个使用PCL的文件中添加了一行代码:
#include <pcl/search/impl/search.hpp>
问题解决了,编译通过了。但是代码运行依旧有一些问题,还需要继续的尝试。Fighting!!!
通过反复的安装ROS、PCL。代码编译通过了,也能跑了。但是就算是运行RGBD-SLAM也比较慢,不知道原因,继续干!!!
经过反复的调试,发现PCL计算法线的时间过长,导致运行效率变低。回忆一下以前的环境,原先安装的应该是PCL1.9,所以又在Ubuntu上额外安装了PCL1.9,参考链接ubuntu下安装多版本PCL。
在安装之后,发现单步的时长回归正常。但是运行起来还是会闪退,经过调试,报错double free or corruption (out)。百度了一下,按照double free or corruption (out)问题解决了,终于整个代码运行了起来。
喜大普奔,喜极而泣!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。