Ubuntu20.04环境下ORBSLAM2安装参考

文章目录

    • 前言
    • 1.依赖环境安装
    • 2.安装Eigen
    • 3.安装Pangolin
    • 4.安装ORB_SLAM2
    • 5.试验效果(以单目为例)


前言

搞了一下午,终于安装成功了,几乎踩遍了所有的坑。

在此记录一下,希望可以作为参考,帮到后来者。

似乎有一些问题是20.04独有的,就很头疼…


1.依赖环境安装

以下的环境你可能已经安装过了,但是建议还是按流程走一遍

1.1更新软件列表

sudo apt-get update  

1.2安装依赖项

sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install freeglut3-dev
apt-get install dialog
sudo apt-get install libglew-dev libpython2.7-dev

2.安装Eigen

执行

sudo apt-get install libeigen3-dev  

3.安装Pangolin

3.1请确定

如果你已经安装过Pangolin了,那请保证你的Pangolin适合ORB_SLAM2。不妨先跳过此步,试一下能否运行ORB_SLAM2。

3.2卸载Pangolin(新安装跳过此步)

cd Pangolin/build//请根据实际情况找到Pangolin文件夹下的build文件夹
sudo make uninstall

如果你在上次安装时没有执行

sudo make install

上一条命令可能会出现错误。

那么直接执行以下即可(上一条命令成功也需要执行以下过程),

首先删除Pangolin文件夹

再进入/usr/local/include查看是否有Pangolin相关的文件夹,一并删除(只删除文件夹名字为Pangolin的,不确定的请勿删除)

3.3新安装或重新安装Pangolin

依赖项安装

sudo apt-get install libxkbcommon-dev
sudo apt-get install wayland-protocols

以避免遇到问题如,No package 'xkbcommon’, No package ‘wayland-protocols’ found。

打开此链接(我给的是v0.6稳定版,经测试可以使用)

点这里下载

将以此链接下载好的Pangolin放置在主目录中(注意文件夹应更名为Pangolin)。

在此目录下打开终端

sudo apt install libglew-dev
cd Pangolin
mkdir build
cd build
cmake ..
make -j
sudo make install

如有时间,请验证一下pangolin的运行效果,命令如下。

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

4.安装ORB_SLAM2

4.1克隆代码(也可以跳过这一步,直接下载我修改好的代码)

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

4.2更改代码

ORB_SLAM2发布以来,Ubuntu已经更新很多次了,而且其他规则也有变化,所以必须先更改代码。

第一步:

按此路径找到~/ORB_SLAM2/include/system.h,并添加如下:

#include

否则在编译安装时重复出现以下问题,

error: 'usleep' was not declared in this scope

第二步:

再进入~/ORB_SLAM2/include/LoopClosing.h,将

typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
        Eigen::aligned_allocator<std::pair<const KeyFrame*, g2o::Sim3> > > KeyFrameAndPose;

更改为:

typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
        Eigen::aligned_allocator<std::pair<KeyFrame *const, g2o::Sim3> > > KeyFrameAndPose;

重点在于在此代码的替换(加蓝部分)

Ubuntu20.04环境下ORBSLAM2安装参考_第1张图片

否则容易出现以下问题

error: static assertion failed: std::map must have the same value_type as its allocator

4.3编译

进入到ORB_SLAM2文件夹下打开终端,运行,

chmod +x build.sh
./build.sh

4.4下载更改好代码

如果网络慢不能安装成功,或者懒得修改,点下面链接,下载修改好但是未编译的版本。

阿里网盘链接

注意下载后代码未编译,别忘记执行以上编译过程

5.试验效果(以单目为例)

5.1下载数据集

打开链接 https://vision.in.tum.de/data/datasets/rgbd-dataset/download

选择

Ubuntu20.04环境下ORBSLAM2安装参考_第2张图片
下载即可,这个数据集很小,很适合用来试验效果。

将文件解压后放置在前文提到的dataset文件夹下。

5.2试运行

然后到XXX文件夹下打开终端,执行以下命令(请保证以上步骤与我一致):

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml dataset/rgbd_dataset_freiburg1_xyz

当开始出现以下画面则说明运行成功

Ubuntu20.04环境下ORBSLAM2安装参考_第3张图片

以上,祝大家好运!

你可能感兴趣的:(ubuntu,orb,slam)