当前位置:   article > 正文

ORB_SLAM3编译安装_cmake error at cmakelists.txt:35 (message): opencv

cmake error at cmakelists.txt:35 (message): opencv > 4.4 not found.

在成功编译ORB_SLAM2的基础上,编译ORB_SLAM3很简单,只需要修改两处。(我是ubuntu18)
首先,给出ORB_SLAM3在github上的地址 : ORB_SLAM3

ORB_SLAM2的编译我分了两篇博客:
slam的环境配置大全–保姆教学
ORB_SLAM2代码的简介安装运行

先搞一遍ORB_SLAM2,然后在其基础上修改如下两处就可以编译ORB_SLAM3啦。

--------------------------------------------------------------------------------------------------

如下为两处修改:

一、boost安装

这里非常坑,官网上的依赖没有boost,但如果不安装boost会报很多的关于c++的错误,并且无法定位。

进入boost官网网址:http://www.boost.org/users/download/
下载boost安装包,我选择的是boost_1_78_0.tar.gz版本.

在这里插入图片描述
下载后,在下载的包内打开终端,解压编译安装

tar -xvf boost_1_78_0.tar.gz
cd ./boost_1_78_0
./bootstrap.sh
sudo ./b2 install
  • 1
  • 2
  • 3
  • 4

二、编译报错问题-找不到OpenCV4.4

其他的驱动都和ORB_SLAM2一样,都安装了。直接运行安装ORB_SLAM3.
在这里插入图片描述

只是在安装时会出现一个错误:

CMake Error at CMakeLists.txt:35 (message):
  OpenCV > 4.4 not found.
 
-- Configuring incomplete, errors occurred!
See also "/home/szj/ORB_SLAM3/build/CMakeFiles/CMakeOutput.log".
make: *** 没有指明目标并且找不到 makefile。 停止。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

此处的解决办法是,找到ORB_SLAM3的CMakeLists.txt文件打开。

在这里插入图片描述

找个这个位置:

LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)
 
find_package(OpenCV 4.4)
   if(NOT OpenCV_FOUND)
      message(FATAL_ERROR "OpenCV > 4.4 not found.")
   endif()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

把(OpenCV 4.4)改为(OpenCV 3 REQUIRED),如图所示:

在这里插入图片描述
此时编译运行安装ORB_SLAM3就成功了!

数据集测试

我下载的EuRoc数据集以及储存位置如图:
在这里插入图片描述
在orb-sam3文件打开终端,输入如下指令:

./Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml ~/EuRoC/MH01 ./Examples/Stereo/EuRoC_TimeStamps/MH01.txt dataset-MH04_stereo
  • 1

运行成功!!!!
在这里插入图片描述

--------------------------------------------------------------------------------------------------

相较于Monocular版本的ORBSLAM以及Stereo版本的ORBSLAM2而言,本次的ORBSLAM3中新增了IMU融合算法,以及对多段地图Atlas的维护。IMU的加入使得ORBSLAM3能够完成对Roll、Pitch的估计,并且当对ORB特征点跟踪失败后仍能够利用IMU的输出维持一段时间的定位(此时Tracking线程处于RECENTLY_LOST状态),直至Tracking线程重新在Map当中定位到自身的位姿。另一方面,Atlas的引入也进一步地提升了ORBSLAM3的重定位能力,使得ORBSLAM3能够使用自从算法开启以来所获得的全部信息,而不是每次在Tracking lost后都需要重新初始化。除此之外,IMU与Atlas的组合也使得Map Merging仅需在4DOF(Yaw、3D translation)上进行,提升了算法的效率以及鲁棒性。

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

闽ICP备14008679号