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对应的依赖依次安装。



然后解压进入文件中编译:

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文件夹中。

通常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。

下载完成后进入文件夹(随便哪个文件夹),创建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错误



按照提示安装 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中 ORBSLAM3的安装和测试的更多相关文章

  1. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之准备安装-09

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之准备安装-09 欢迎加QQ群:1026880196 进行交流学习 准备安装 #controller1 ...

  2. ubuntu18.04中mysql的安装及远程连接配置

    1.ubuntu 18.04 下mysql的安装 sudo apt install mysql-server 2.mysql 安装配置 sudo mysql_secure_installation 参 ...

  3. VM中 Ubuntu14.04 中Samba的安装配置和使用

    以前都是在Redhat 上搭建samba,现在改成在ubuntu12.04 上搭建发现 sudo /etc/init.d/samba restart  始终不行,原来,现在ubuntu下,启动服务要用 ...

  4. Ubuntu12.04中的虚拟机安装Ubuntu16.04,并实现远程控制16.04

    目录 1.设置网络连接 1.1 VMware虚拟机网络地址设置 1.2 设置虚拟机内Ubuntu16.04的网络模式 未开机状态下 开机状态下 1.3 查看虚拟机中Ubuntu16.04的IP 2.进 ...

  5. Ubuntu20.04中创建Pycharm桌面快捷方式

    [Desktop Entry] Type=Application Name=Pycharm GenericName=Pycharm3 Comment=Pycharm3:The Python IDE E ...

  6. 从零开始安装搭建win10与ubuntu20.04双系统开发环境——集安装、配置、软件、美化、常见问题等于一体的——超详细教程

    目录 **前言 ** 关于系统安装配置与软件安装 一.Win10安装ubuntu20.04双系统 1.按照自己的需求分区 2.配置软件镜像源 软件包管理工具介绍 更换APT源--使用国内镜像 3.解决 ...

  7. 树莓派4b安装Ubuntu20.04

    树莓派4b安装Ubuntu20.04 下载Ubuntu20.04镜像 下载地址 安装Raspberry Pi Imager 下载地址 烧录系统 打开Raspberry Pi Imager,选择自己刚刚 ...

  8. Ubuntu20.04 安装MongoDB及其基本使用

    MongoDB 官方文档 本博客旨在自我学习使用,如有任何疑问请及时联系博主 基本介绍 MongoDB 是由C++语言编写并基于分布式文件存储的开源数据库. MongoDB 是一款介于关系数据库和非关 ...

  9. Ubuntu20.04服务器+Anaconda上创建Python3.6虚拟环境并

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 前言 由于服务器已安装Anaconda,包含的Python版本为3.8,为使用3.6版本同时避免和其他人互相影响,我选择创建虚拟环境,并在其中安 ...

  10. ubuntu20.04 系统初始化与美化

    ubuntu20.04 系统初始化与美化 参考博客:https://mp.weixin.qq.com/s/JowjHrs9GMVlolaoaSGiEg 参考博客:https://www.linuxmi ...

随机推荐

  1. 鸿蒙HarmonyOS实战-Stage模型(服务卡片介绍和运行机制)

    一.服务卡片介绍 1.服务卡片的概念 在HarmonyOS中,服务卡片是一种提供即时信息和快速操作的小组件,类似于Android中的通知栏.服务卡片可以显示各种类型的信息,包括通知.天气.日历事件.音 ...

  2. echarts饼图详细+仪表盘

    echarts(数据可视化图表)   标签属性 标签属性:label模板字符串显示name和value 未使用之前,系列的name默认就显示在外面了,显示的是name 系列里面有系列的类型,数据,la ...

  3. Azure Service Principals ----- Azure 上最好保守的秘密的服务

    一,引言 Azure Service Principals 是 Azure Active Directory (AAD) 中的一种标识,代表应用程序,服务,自动化流程.Service Principa ...

  4. 图解JDK7及其早期版本HashMap扩容死锁问题

    在JDK7及其早期版本中HashMap在多线程环境下会发生扩容死锁的问题. HashMap中在创建时默认会有16个桶,有一个默认加载因子0.75,如果Map中的Entry数量达到阈值(16*0.75) ...

  5. 授权调用: 介绍 Transformers 智能体 2.0

    简要概述 我们推出了 Transformers 智能体 2.0! ⇒ 在现有智能体类型的基础上,我们新增了两种能够 根据历史观察解决复杂任务的智能体. ⇒ 我们致力于让代码 清晰.模块化,并确保最终提 ...

  6. 鸿蒙极速入门(五)-路由管理(Router)

    页面路由指在应用程序中实现不同页面之间的跳转和数据传递.HarmonyOS提供了Router模块,通过不同的url地址,可以方便地进行页面路由,轻松地访问不同的页面. 一.基础使用 Router模块提 ...

  7. NOIP模拟54

    我觉得,不改变也很好. 前言 这题太难了,场上竟然无人切题..(听说别的学校切题的人不少.. T1 选择 解题思路 范围比较小,并且每个边的度也比较小,因此考虑 树形DP+状压 . 大概就是对于每一个 ...

  8. 在AngularJS中,控制器没有生命周期方法

    在AngularJS中,控制器没有生命周期方法,但是$scope对象有一些事件,可以模拟生命周期方法的行为.例如,$scope.$on('$destroy', function() {...})可以在 ...

  9. webpack代码分割

    在做一些单页应用中,若不做任何处理,所有项目文件会打包为一个文件,这个文件非常的大,造成网页在首次进入时比较缓慢.做了代码分割后,会将代码分离到不同的chunk中,然后进行按需加载这些文件,能够提高页 ...

  10. LeetCode 719. 找出第 k 小的距离对 (Java)

    题目: 给定一个整数数组,返回所有数对之间的第 k 个最小距离.一对 (A, B) 的距离被定义为 A 和 B 之间的绝对差值. 示例 1: 输入:nums = [1,3,1]k = 1输出:0 解释 ...