目录

1. C++11 or C++0x Compiler

2.Pangolin

3.opencv

4.eigen

5.boost安装

6.DBoW2 and g2o

7.下载编译ORB-SLAM3

8.运行ORB-SLAM3的测试数据集

9. 采坑记录

参考:


1. C++11 or C++0x Compiler

需要安装支持C++11特性的编译器

sudo apt-get install gcc
     sudo apt-get install g++
     sudo apt-get install build-essential
     sudo apt-get install cmake

2.Pangolin

安装依赖(Ubuntu18.04 为例)

sudo apt install libgl1-mesa-dev
sudo apt install libglew-dev
sudo apt install libpython2.7-dev
sudo apt install pkg-config
sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols

编译(Ubuntu18.04 为例)

git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..         #有的地方写 cmake -DCPP11_NO_BOOSR=1 .. 也可以,#待验证区别
cmake --build .  #有的地方写 make 也是一样的
sudo make install      (这个也是需要的,网上很多教程没有这个命令)

默认安装位置:/usr/local/include/pangolin

Ubuntu16.04 下安装Pangllin遇到的问题:

1). Cmake版本过低

解决方法:安装高版本Cmake(如:下载源码,配置~./bashrc中的PATH即可 共存多版本cmake)

2). 找不到 Eigen3Config.cmake

解决方法:先安装eigen ( 如下 sudo apt-get install libeigen3-dev)

3). template<auto >  error: ‘auto’ parameter not permitted in this context

原因:最新版本的还未完善好 (记录时间2021-09-06)

解决方法: 换个低版本的(如pangolin-0.6) 文件 · v0.6 · mirrors / stevenlovegrove / pangolin · GitCode

3.opencv

ubuntu下的opencv安装是一件十分复杂的事情,我参照以下教程安装成功的。
参照以下教程安装
https://www.jianshu.com/p/f646448da265

或者:

// Ubuntu18.04为例:

sudo apt install libopencv-dev

拓展:Linux(Ubuntu)使用   sudo apt-get install  命令安装软件的目录在哪?

include文件理论:/usr/include
bin文件路径: /usr/bin 
库文件路径: /usr/lib/  
其它的图标啊什么的路径: /usr/share 
配置文件路径: /etc/

apt-get是老版的命令,apt是新版的命令,apt还包含了apt-get cache等等,用起来更方便。因为apt刚刚出来,所以允许有apt-get和apt共存,以后apt-get就要淘汰了。

拓展:ubuntu16.04查看opencv版本

pkg-config opencv --modversion

//ubuntu16.04 的一个实例:2.4.9.1

拓展:opencv使用源码安装(ubuntu16.04+opencv3.4.3)路径在哪里?

/usr/local/include
/usr/local/share
/usr/local/lib
/usr/local/bin

4.eigen

两种方式安装eigen
直接上个超链接,两种方式安装eigen3。网上很多博客说建议源码安装,这样安装到的是/usr/local/include/eigen3/目录下,但是我直接使用命令安装最后也编译成功了ORB-SLAM3,安装在了/usr/include。可以先命令安装,编译的时候检测不到再回头来源码安装。如果安装好了但是还报错,按照这篇博客说的做
https://blog.csdn.net/qq_43872529/article/details/100937091

自带包(Ubuntu18.04 为例)安装:

sudo apt-get install libeigen3-dev

#上面的命令,会在 /usr/lib/cmake/eigen3 中创建Eigen的配置文件: Eigen3Config.cmake 或者 eigen3-config.cmake

#相关指令:

sudo updatedb #创建或更新 slocate/locate 命令所必需的数据库文件

locate eigen3

若出错则需要更换源!

(对应:ubuntu16.04中 apt-get默认版本3.2.92 记录日期2021-09-07)

源码安装:

(如 3.2.10版本 )

官网下载本地安装:

github 有个mirror,版本3.3.4 from 2017

git clone https://github.com/eigenteam/eigen-git-mirror

#安装
cd eigen-git-mirror
mkdir build
cd build
cmake ..
sudo make install

# 安装后,头文件安装在/usr/local/include/eigen3/

报错:找不到eigen 的配置文件 Eigen3Config.cmake 或者 eigen3-config.cmake

解决方法: 在网上下载两个这样的文件,放到 /usr/lib/cmake/eigen3 目录下,如下所示

5.boost安装

网上的教程并没有说boost安装的事情,但是编译的时候会遇到这个错误,我们可以直接提前安装好https://www.jianshu.com/p/4c621a34ba69

Ubuntu 18.04 安装 boost 1.67_alen_feng的专栏-CSDN博客_ubuntu18.04安装boost

// ubuntu18.04 下默认boost版本 1.65.0

sudo apt-get install  libboost-system-dev

或者

sudo apt install libboost-all-dev

6.DBoW2 and g2o

这两个库ORB-SLAM3的作者在他的文件夹里做了修改,不需要我们单独下载,直接去第7步即可。在ORB-SLAM3的Thirdparty文件夹下,编译ORB-SLAM3的时候会自动编译。

补充一下,需要下载这些,亲身实践。
在这里下载一个

sudo apt-get install libcanberra-gtk-module
sudo apt-get install libssl-dev

7.下载编译ORB-SLAM3

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
cd ORB_SLAM3
chmod +x build.sh
./build.sh

这里编译的时候可以vim build.sh文件,修改一下make -j8,8是cpu核数,这样编译的更快。同时修改CMakelist文件把warning去掉,因为有eigen库,定义的变量未使用也会报错,很烦。修改CMakelist和build.sh都是可选的,不想修改就可以直接./build.sh编译就完成了。

8.运行ORB-SLAM3的测试数据集

数据集链接

点进链接下载ASL格式的Machine Hall 01,然后解压后修改名称为MH01。放在需要放的位置,然后把MH01所在的文件夹的路径拷贝到euroc_examples.sh的第二行的引号内

pathDatasetEuroc=‘这里放路径’

然后进入ORB-SLAM3运行./euroc_examples.sh就大功告成了。

经过无数折磨,终于把ORB-SLAM3配置好了。

先说一下遇到的错误

9. 采坑记录

第一次

在虚拟机里装的ubuntu16.04里编译遇到的错误
./Examples/Monocular/mono_euroc: symbol lookup error: /home/jhw/ORB_SLAM3/lib/libORB_SLAM3.so: undefined symbol: _ZN5DBoW24FORB1LE。
链接错误是非常少见的,而且在ORB-SLAM3里边也有人遇到这个错误,但是没有方法解决,报的是DBoW的错误。我也尝试了很久,最终也没有解决,建议遇到这个错误直接重装系统。本人比较幸运,遇到这个错误的第三天实验室的师兄给我了一台台式机主机,感谢师兄。

第二次错误

在台式机的双系统里边遇到的
ORB_SLAM3/src/System.cc:315:20: error: ‘usleep’ was not declared in this scope
usleep(5000);
找到对应的System.cc加入 #include<unistd.h>

在source文件的开头增加include
#include <unistd.h>

需要增加unistd.h的文件有:

Examples/Monocular/mono_euroc.cc
Examples/Monocular/mono_kitti.cc
Examples/Monocular/mono_tum.cc
Examples/RGB-D/rgbd_tum.cc
Examples/Stereo/stereo_euroc.cc
Examples/Stereo/stereo_kitti.cc
src/LocalMapping.cc
src/LoopClosing.cc
src/System.cc
src/Tracking.cc
src/Viewer.cc

第三次

在台式机的双系统里边遇到的,错误不大,是漏装了一个库,但是由于eigen报warning(定义的变量未使用)太多,导致看不到真正的错误位置
CMakeFiles/Makefile2:289: recipe for target ‘CMakeFiles/ORB_SLAM3.dir/all’ failed
make[1]: *** [CMakeFiles/ORB_SLAM3.dir/all] Error 2
Makefile:83: recipe for target ‘all’ failed
make: *** [all] Error 2
这里建议编译的时候在ORB-SLAM3的cmakelist的-Wall后边加上-w屏蔽编译的warning便于发现错误的真正位置 一般这里少装了一个库sudo apt-get install libssl-dev

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  -Wall   -O3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall   -O3")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -march=native")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=native")

采坑记录1:

解决方法1:使用make –j2 或者 make -jn 或者 make(而不是make -j) (建议将n设为cpu逻辑数量)

运行./build.sh  编译24小时未果 果断放弃 查看其内部命令为 make –j 故改之

解决方法2:使用swap创建临时分区(主要是在编译过程中,内存不够造成的。)

sudo dd if=/dev/zero of=/swapfile bs=64M count=32
#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=2048MBsudo mkswap /swapfile
#把刚才空间格式化成swap格式chmod 0600 /swapfile
sudo swapon /swapfile#使用刚才创建的swap空间
// do something...#工作做完可以把临时空间关闭
swapoff -a#详细的用法可以:swapoff --help
#查看当前内存使用情况:free -m

采坑记录2:

原因没有安装:openssl

方法:

sudo apt-get install openssl

sudo apt-get install libssl-dev

采坑记录3:

解决方法: 安装:sudo apt-get install libboost-all-dev 

采坑记录4:

ORB-SLAM3可编译通过,跑时,出现段错误,定位后在调用g2o的optimizer对象上

原因:自己又重新自己手动使用Thirdparty中的g2o的CMakeLists.txt遍历了一遍g2o.

解决方法:直接使用源码中原有的g2o

参考:

  • Ubuntu16.04下ORB_SLAM3的编译及运行【完整教程】
  • Ubuntu18.04下编译ORB_SLAM3遇到的问题

ubuntu18.04配置ORB-SLAM3相关推荐

  1. Ubuntu18.04 配置nvidia 460驱动、cuda10.1和cudnn7.6.5

    Ubuntu18.04 配置nvidia 460驱动.cuda10.1和cudnn7.6.5,并在同一系统中配置不同的CUDA版本以满足tensorflow版本的需求.以下源自各位大佬的博客,并进行整 ...

  2. Ubuntu18.04配置YCM

    Ubuntu18.04和windows子系统Ubuntu18.04配置vim插件YoucompleteMe YouCompleteMe的安装麻烦程度也算是首屈一指了 目前安装配置方法一堆,坑太多,这里 ...

  3. Ubuntu18.04配置搭建基于Gazebo的虚拟仿真平台(Px4):无人机(UAV)、无人车等模拟实验平台

    这篇我觉得是写得比较详细完整的 摘自:https://dgzc.ganahe.top/ganahe/2021/uavgazebomoni.html Ubuntu18.04配置搭建基于Gazebo的虚拟 ...

  4. Ubuntu18.04配置静态ip后发现ping不通百度

    在用ubuntu18.04配置静态ip时发现重启虚拟机后发现虚拟机ping 不同百度.原因是因为重启虚拟机后/etc/resolv.conf文件被清空.导致没有域名服务,在ping百度时域名解析失败. ...

  5. Ubuntu18.04配置robotiq-2F-85

    一.配置环境 操作系统:Ubuntu 18.04 夹爪型号:Robotiq 2F-85 转换线:RS485转USB 二.配置步骤 2.1创建robotiq工作空间,克隆代码包到新创建的src文件夹: ...

  6. Ubuntu18.04配置 ROS2 dashing+ gazebo9 + Turtlebot3

    Ubuntu18.04配置 ROS2 dashing+ gazebo9 + Turtlebot3 预备工作 1.换源 2.配置Hosts 一.安装ros2 dashing 1. 设置语言环境 2.添加 ...

  7. Ubuntu18.04配置无人驾驶赛车游戏TORCS(解决找不到GL/glut.h、AL/alut.h和libXmu,以及编译中出现‘isnan’was not declared等)

    Ubuntu18.04配置无人驾驶赛车游戏平台TORCS 一.资源下载TORCS<The Open Racing Car Simulator> 二.环境搭建 三.运行游戏与测试 菜菜的博主 ...

  8. 【Ubuntu】——ubuntu18.04配置静态ip

    ubuntu18.04配置静态ip 要点: 1.root权限: 2.打开 /etc/netplan/01-network-manager-all.yaml 3.修改内容如下: 1.查找netplan目 ...

  9. Ubuntu18.04配置carla0.9.11踩坑与解决方法总结,同时解决安装carla-ros-bridge遇到的问题,并复现OpenCDA成功与ros关联

    Ubuntu18.04配置carla0.9.11踩坑与解决方法总结,同时解决安装carla-ros-bridge遇到的问题,并复现OpenCDA成功与ros关联 背景: 主要是为了复现叶小飞的Open ...

  10. Centos7或ubuntu18.04配置公共邮箱或个人邮箱发报警邮件

    系统:Ubuntu18.04配置方法 使用的软件:heirloom-mailx 亲测可用,这篇文章说的是配置邮箱,并发送邮件,具体报警邮件及脚本后续有空写 1.配置软件源 ubuntu18.04上无法 ...

最新文章

  1. 解决PhpStorm卡顿的问题
  2. php manual 反射,Laravel框架源码解析之反射的使用详解
  3. Hadoop平台K-Means聚类算法分布式实现+MapReduce通俗讲解
  4. 辽宁省普通话水平测试软件,辽宁普通话水平测试报名入口
  5. [C++] Nested Radical Constant
  6. S如何边缘控制_强夯法效果如何?来看看这个检测结果
  7. 华为Mate30 Pro高清渲染图曝光:后置四摄+挖孔全面屏
  8. oracle11g 安装在rhel5.0笔记
  9. SecureCRT for Mac(SSH终端仿真工具)
  10. linux中级之HAProxy基础配置
  11. 数据结构回文数c语言,数据结构算法(字符串转整数和回文数)
  12. Gantt - attachEvent事件监听 - 无参数事件
  13. 补天漏洞厂商资产数据爬虫以及总漏洞量可视化分析
  14. java 多态(重写和重载)
  15. 索尼PS4破解之用户层代码执行(Part2)
  16. Linux系统发行版大全(历史大全含发展图)
  17. Android 4.2虚拟按键背景透明,Android 4.0 隐藏虚拟按键(导航栏)的方法
  18. 电脑屏幕黑屏的终极解决办法
  19. 2021互联网大会乌镇峰会
  20. 外置MOS 开关型 PWM调光 降压恒流驱动芯片

热门文章

  1. 问题:document.documentElement与document.body的区别
  2. MSCRM plicklist 级联JS
  3. PyCharm 入手第一记
  4. N天学习一个Linux命令之grep
  5. IOS开发之第三方登陆——友盟
  6. Winform中 System.Drawing.Color颜色对照表
  7. java中几个常用的开源常用工具类
  8. 如何在ECLIPSE中使用MVN CLEAN INSTALL
  9. Jenkins控制台出现中文乱码
  10. 教你在Windows轻松修改Hosts文件