ubuntu18.04安装并运行ORB-SLAM2

查看版本号

bash 复制代码
lsb_release -a

换源

Ubuntu系统自带的源都是国外的网址,国内用户在使用的时候下载比较慢甚至无法获取,需要替换成国内的镜像源

  • 备份源文件
bash 复制代码
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
  • 打开文件
bash 复制代码
sudo gedit /etc/apt/sources.list
  • 换源

打开清华镜像源仓库,选择Ubuntu版本并复制源,覆盖sources.list文件原来的内容。

ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

  • 更新源
bash 复制代码
sudo apt-get update

安装第三方库

安装依赖项

bash 复制代码
sudo apt-get update
sudo apt-get install git gcc g++ vim make cmake

安装Pangolin

  • 下载

安装Pangolin 0.6(稳定版),下载地址如下:

https://github.com/stevenlovegrove/Pangolin/archive/refs/tags/v0.6.zip

  • 安装依赖项
bash 复制代码
sudo apt-get install libglew-dev libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libpng-dev
  • 配置并编译
bash 复制代码
cd Pangolin 
mkdir build && cd build
cmake -DCPP11_NO_BOOST=1 ..
make
sudo make install
  • 验证
bash 复制代码
cd ../examples/HelloPangolin
mkdir build && cd build
cmake ..
make
./HelloPangolin

安装成功后会自动打开如下窗口

安装OpenCV3

  • 下载

ORB-SLAM2要求至少 2.4.3,笔者采用3.4.5版本测试成功

具体下载版本可在下边仓库中寻找

Releases · opencv/opencv · GitHub

  • 安装依赖项
bash 复制代码
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev 
sudo apt-get install libavformat-dev libjpeg.dev libtiff5.dev 
sudo apt-get install libswscale-dev libjasper-dev 
sudo apt-get install libcanberra-gtk-module libcanberra-gtk3-module 
#或者
sudo apt-get install libcanberra-gtk*
  • 配置并编译
bash 复制代码
mkdir build && cd build 
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
#电脑性能差可去掉-j4,性能很好可增加数字(线程)
make -j4
sudo make install

opencv的初次编译过程比较缓慢,耐心等待即可

  • 查看是否安装成功

查询OpenCV版本、库以及头文件目录的三个命令来确保上面的OpenCV安装步骤都正常:

bash 复制代码
pkg-config --modversion opencv
pkg-config --cflags opencv
pkg-config --libs   opencv

安装Eigen3

Eigen3是一个纯头文件的库

直接安装:

bash 复制代码
sudo apt-get install libeigen3-dev

也可使用源码安装,源码下载地址如下:
GitCode - 开发者的代码家园

bash 复制代码
cd eigen3
mkdir build
cd build
cmake ..
make
sudo make install

安装后头文件的存放地址为:

bash 复制代码
/usr/local/include/eigen3/

为方便后期orb-slam2的编译运行,将该头文件移动位置到:

bash 复制代码
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include

安装orb-slam2

  • 下载

下载源文件并解压:
GitCode - 开发者的代码家园

在该文件夹下打开终端:

bash 复制代码
cd ORB_SLAM2
chmod +x build.sh
./build.sh

注意系统若硬件不行(线程少),将build.sh里的make -j(默认启用最大线程)修改为make,防止卡死,反之性能很好可增加数字(线程):如make -j4/j8/jx

编译过程中会遇到错误,因为源码中的一些文件源码中缺少头文件包含:

bash 复制代码
error: 'usleep' was not declared in this scope

需要在报错的文件处加上头文件:

cpp 复制代码
#include <unistd.h>

具体这些缺失的文件有:

bash 复制代码
mono_euroc.cc
mono_kitti.cc
mono_tum.cc
rgbd_tum.cc
ViewerAR.cc
stereo_euroc.cc
stereo_kitti.cc
LocalMapping.cc
LoopClosing.cc
System.cc
Tracking.cc
Viewer.cc

下载Tum数据集

Computer Vision Group - Dataset Download

建议下载如下版本:

下载后解压文件,笔者解压后的文件路径为:

运行orb-slam2

bash 复制代码
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM2.yaml ./data/rgbd_dataset_freiburg1_xyz/

第一条命令为运行命令,后接数据集的路径

参考:
【精选】Ubuntu 18.04配置ORB-SLAM2和ORB-SLAM3运行环境+ROS实时运行ORB-SLAM2+SLAM相关库的安装_orbslam2和orbslam3共存_ZARD帧心的博客-CSDN博客

相关推荐
upp4 小时前
【bug】Error: /undefinedfilename in (/tmp/ocrmypdf.io.9xfn1e3b/origin.pdf)
ubuntu·pdf·bug·ghostscript
行云流水剑5 小时前
【学习记录】在 Ubuntu 中将新硬盘挂载到 /home 目录的完整指南
服务器·学习·ubuntu
藥瓿亭5 小时前
K8S认证|CKS题库+答案| 7. Dockerfile 检测
运维·ubuntu·docker·云原生·容器·kubernetes·cks
xiangyong587 小时前
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
linux·ubuntu·gnu
地衣君9 小时前
Ubuntu 配置使用 zsh + 插件配置 + oh-my-zsh 美化过程
linux·运维·ubuntu
草上爬17 小时前
OpenWrt:使用ALSA实现边录边播
ubuntu·openwrt·record·alsa·play
藥瓿亭1 天前
K8S认证|CKS题库+答案| 6. 创建 Secret
运维·ubuntu·docker·云原生·容器·kubernetes·cks
舰长1151 天前
Ubuntu挂载本地镜像源(像CentOS 一样挂载本地镜像源)
linux·ubuntu·centos
Theodore_10221 天前
大数据(2) 大数据处理架构Hadoop
大数据·服务器·hadoop·分布式·ubuntu·架构
Unpredictable2221 天前
【VINS-Mono算法深度解析:边缘化策略、初始化与关键技术】
c++·笔记·算法·ubuntu·计算机视觉