首页 > 系统相关 >Ubuntu20.04中 ORBSLAM3的安装和测试

Ubuntu20.04中 ORBSLAM3的安装和测试

时间:2024-07-04 14:58:02浏览次数:1  
标签:Ubuntu20.04 4.4 https .. ORBSLAM3 cd opencv 测试 test

ORBSLAM3 安装以及测试教程(Ubuntu20.04)

1.前期准备工作

1.1安装相关依赖

 sudo apt install git cmake gcc g++ mlocate

1.2下载ORBSLAM3源码

可以直接通过github下载源码: (https://github.com/UZ-SLAMLab/ORB_SLAM3)

2.安装一些所需的库

2.1 安装Eigen3库

直接通过命令安装 sudo apt-get install libeigen3-dev
但是通常安装不全会遇到一定麻烦。因此通常是采用源码编译的方法: Eigen3库github地址: https://github.com/eigenteam/eigen-git-mirror/tree/3.3.4 一定要下载对应的3.3.4版本。 直接解压然后编译安装:

cd eigen-git-mirror-3.3.4
mkdir build & cd build
cmake ..
sudo make install

2.2 安装Pangolin0.6

github下载源码:https://github.com/stevenlovegrove/Pangolin/tree/v0.6 一定要安装0.6的版本
根据github对应的依赖依次安装。
img
然后解压进入文件中编译:

cd Pangolin0.6/
mkdir build &cd build
cmake ..
make -j4
sudo make install

可以通过下述方法测试是否安装成功:

cd Pangolin0.6/examples/HelloPangolin
mkdir build & cd build
cmake ..
make 
./HelloPangolin

运行后如果出现一个红绿蓝立方体,则代表安装成功。

2.3安装OpenCV

ORBSLAM3要求OpenCV版本为4.x以上,本文采用的是OpenCV4.4.0,从Opencv官网下载4.4.0版本:https://opencv.org/releases/。
下载完后解压到主文件夹内(Home)新建的opencv中
然后在github中下载contrib版本(下载4.4.0版本):https://github.com/opencv/opencv_contrib/tree/4.4.0
同样解压到opencv文件夹中。
img

通常opencv_contirb中会缺少一些需要的文件,因此可以通过链接下载:https://wwtt.lanzouw.com/if60o1cwvv4h 密码:d5fx
下载后将文件放入opencv_contrib-4.4.0/modules/xfeatures2d/src 文件夹内。

然后需要对两个地方进行修改

  • opencv_contrib-4.4.0/modules/xfeatures2d/test/test_features2d.cpp 文件 将里面的第 51~52 行代码路径改为:
#include "../../../../opencv-4.4.0/modules/features2d/test/test_detectors_regression.impl.hpp"
 #include "../../../../opencv-4.4.0/modules/features2d/test/test_descriptors_regression.impl.hpp"

  • 修改 opencv_contrib-4.4.0/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp 文件,将里面的第 7~8 行代码路径改为:
#include "../../../../opencv-4.4.0/modules/features2d/test/test_detectors_invariance.impl.hpp" // main OpenCV repo
#include "../../../../opencv-4.4.0/modules/features2d/test/test_descriptors_invariance.impl.hpp" // main OpenCV repo

打开终端编译:

cd opencv
mkdir -p build && cd build
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.4.0/modules ../opencv-4.4.0
make -j4
sudo make install

3.安装ORBSLAM3

解压ORBSLAM3文件,进入其中,打开对应的可视化选项
打开 Examples/Monocular 文件夹下的 mono_euroc.cc 文件,找到第 83 行:
将ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, false);改为true。

按照官网给的指令编译安装:

cd ORB_SLAM3
chmod +x build.sh
./build.sh  #如果遇到问题就按照命令行一行一行输入,查看问题出在哪

4.数据集测试

4.1数据集下载

下载地址:https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets#downloads
将第一个Machine Hall01数据集下载对应的ASL Data。
img

下载完成后进入文件夹(随便哪个文件夹),创建dataset文件夹,再在下面创建MH01文件夹,将解压得到的mav0文件移动到MH01中。然后在终端中测试:

将最后的路径换成你下载的MH01对应路径

cd ORB_SLAM3
cd Examples
./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml /home/xiao/dataset/MH01 ./Monocular/EuRoC_TimeStamps/MH01.txt

出现以下结果就是成功

5.遇到的一些问题

5.1 opencv编译失败

opencv编译失败可能是一些动态库指向错误,主要是与anaconda环境相冲突,链接给出了很好的解答。

5.2编译成功后运行出现GTK+2.X错误

img
按照提示安装 libgtk2.0-dev
或者在conda环境下pip install opencv-contrib-python,重新编译opencv即可(两种之一解决方法?)
参考链接:
[1]:https://www.cnblogs.com/xiaoaug/p/17766112.html
[2]:https://blog.csdn.net/qq_19278525/article/details/134039141
[3]:https://blog.csdn.net/kuvinxu/article/details/126233165
[4]:https://www.zhihu.com/question/263917089

标签:Ubuntu20.04,4.4,https,..,ORBSLAM3,cd,opencv,测试,test
From: https://www.cnblogs.com/binbin2002/p/18278131

相关文章

  • selenium12_HTML测试报告(run_all)
    在run_all.py中编写如下脚本:#cording:utf-8importunittestimportosfromcommonimportHTMLTestRunner_cn#os.path.dirname:获取当前文件所在的文件夹路径。os.path.realpath(__file__):根据不同的系统自动获取绝对路径,包含文件名cur_path=os.path.dirname(os.p......
  • selenium10_单元测试框架unittest
    一、Python中单元测试框架:unittest框架和pytest框架。本篇记录unittest1.Unittest是通用的,可以做单元测试,接口测试,selenium自动化,app自动化2.需要导入unittest,类继承自unittest.TestCase。3.类名大驼峰;测试方法必须以test开头;测试用例的方法中,不能有参数。4.Pycharm中用un......
  • RealVNC远程连接Ubuntu20.04(无显示器,开机后可连接)
    场景远程连接工控机时,无法使用VNC连接。需要以下配置菜可以在无屏幕情况下远程直接连接工控机,主要包括:使用Ubuntu内置的vinoVNC提供远程桌面访问。配置自动登录配置虚拟桌面环境Ubuntu20.04配置1、安装Ubuntu内置的桌面共享VNC服务vino。sudoaptinstallvino在“设置->共享->屏......
  • 手工转测试开发成功秘籍揭秘:从裁员到入职18k+,收获4个Offer,道阻且长不怯步
    我之前是在一家金融公司工作,每天过得很安逸,同事也很互助和友爱,但是我的工作能力方面却一直没有很大的提升。大部分工作时间都是在做功能测试,每个季度会有一个接口自动化的考核目标。正是因为这样的环境,我开始意识到这是一个温水煮青蛙的环境,如果我一直维持现状,离开这家公司时,不论......
  • 读人工智能全传02图灵测试
    1. 图灵测试1.1. 模仿游戏1.2. 20世纪40年代末至50年代初,第一台计算机的出现引发了一场公开辩论,辩论主题就是这一现代科学奇迹的潜力如何1.2.1. 这场辩论中最瞩目的贡献当归属于一本名叫《控制论》的书,由麻省理工学院数学教授诺伯特·维纳(NorbertWiener)撰写1.3. 自19......
  • 软件测试入门---(一)
    1.软件=程序+数据+文档资料(软件测试的对象有哪些?)2.C/S架构和B/S架构的区别:C/S:客户端/服务器,必须安装客户端才能使用。B/S:浏览器/服务器,只需要一个浏览器就可以访问服务。3.软件测试的目的:为了发现程序存在的代码或业务逻辑错误(找bug)检验产品是否符合用户需求(提高质量)提高......
  • vue3 toref ref toRow unref等等使用和功能测试
    代码测试js代码constrowData=reactive({nameAbc:'sdfsdf'})console.log(rowData,"rowData")letrowDataValue=toRaw(rowData);console.log(rowDataValue,"rowdatavalue")//toRefs使对象本身转为普通对象,但是子属性全部转为refvalue方式//toRef......
  • 明明单独跑某个测试是通过的,怎么全部一起跑就挂了呢
    你是否遇到过单独跑testcase3是通过的,但是全部整个文件一起跑就挂了呢你的第一反应是前面的某个依赖项影响到testcase3了于是你在最前面写下了afterEach(()=>{jest.clearAllMocks}) 重新跑测试文件,仍然是挂的 Note:clearAllMocks并不能解决所有的mockJ......
  • 全链路性能测试:Nginx 负载均衡的性能分析和调优
    为什么性能测试很多同学觉得是一个比较难以自学上岸的测试领域,是因为真正做全链路的性能测试是比较难的。所谓的全链路就是在项目的整个链路上任何一环节都有可能存在性能测试瓶颈,我们都需要能够通过分析性能的监控指标找到对应的问题。我们今天要讲的Nginx负载均衡就是属于......
  • 交叉测试的优点和缺点
    在软件测试领域,确保产品的高质量和稳定性是每个开发团队的目标。交叉测试作为一种重要的测试方法,能够有效发现隐藏的缺陷。然而,交叉测试是否总是最佳选择?让我们一起探讨它的优点和缺点。交叉测试在软件测试中具有重要的地位和作用。通过交叉测试,可以提高软件质量、提升用户体......