赞
踩
在成功编译ORB_SLAM2的基础上,编译ORB_SLAM3很简单,只需要修改两处。(我是ubuntu18)
首先,给出ORB_SLAM3在github上的地址 : ORB_SLAM3
ORB_SLAM2的编译我分了两篇博客:
slam的环境配置大全–保姆教学
ORB_SLAM2代码的简介安装运行
先搞一遍ORB_SLAM2,然后在其基础上修改如下两处就可以编译ORB_SLAM3啦。
这里非常坑,官网上的依赖没有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
其他的驱动都和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。 停止。
此处的解决办法是,找到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()
把(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
运行成功!!!!
相较于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)上进行,提升了算法的效率以及鲁棒性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。