基于之前在Ubuntu20.04系统中已经编译运行了ORB-SLAM2,总结下来总体流程就是安装一些必要的库与特定的OpenCV版本(注意配置OpenCV的环境)
经测试,OpenCV3.4.16版本也可以适用ORB-SLAM3
编译过程遇到的个别问题
- 提示没有“openssl/ssl.h” ,问题在之前ORB-SLAM2相关依赖包额外的基础上还缺少一个包,安装后重新编译该报错解决
sudo apt-get install libssl-dev
- 默认的CMakeList.txt中第33行是判断OpenCV版本是否是4.4,如果不是,编译会提示OpenCV版本不符,解决方法把版本改为自己使用的版本,例如我使用的版本是3.4.16
#find_package(OpenCV 4.4)
find_package(OpenCV 3.4.16)
if(NOT OpenCV_FOUND)
message(FATAL_ERROR "OpenCV > 3.4 not found.")
endif()
运行EUROC数据集的问题
-
在redme文档中有提到使用一个euroc_examples.sh的脚本文件,但是在github中下载下来的文件中并没有这个文件,好像是之前有,后面给删除了,在electech6/ORB_SLAM3_detailed_comments: Detailed comments for ORB-SLAM3 (github.com)中有这个脚本文件,使用以下格式的命令也可以运行数据集
# 根据数据集位置 更改路径即可 ./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml "$pathDatasetEuroc"/MH01 ./Monocular/EuRoC_TimeStamps/MH01.txt
-
没有可视化界面,运行后停留在终端界面
把mono_euroc.cc中83行函数中的第四个参数将false改为true后,重新编译 重新运行 成功可视化