当前位置:   article > 正文

Ubuntu 18.04 libtorch 与 ORB-SLAM 的结合_libtorch 与ros冲突

libtorch 与ros冲突

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也比较慢,不知道原因,继续干!!!


2021.03.09

经过反复的调试,发现PCL计算法线的时间过长,导致运行效率变低。回忆一下以前的环境,原先安装的应该是PCL1.9,所以又在Ubuntu上额外安装了PCL1.9,参考链接ubuntu下安装多版本PCL

在安装之后,发现单步的时长回归正常。但是运行起来还是会闪退,经过调试,报错double free or corruption (out)。百度了一下,按照double free or corruption (out)问题解决了,终于整个代码运行了起来。

喜大普奔,喜极而泣!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/943151
推荐阅读
相关标签
  

闽ICP备14008679号