ubuntu20下orb-slam2的安装与测试

一、orb-slam2是什么?

1、介绍

2、主要特点

3、应用场景

二、安装

1、cmake,gcc,g++,git安装

2、eigen安装

3、pangolin安装

4、opencv3安装

三、orb-slam2编译安装

四、参考


一、orb-slam2是什么?

地址:orb-slam2

1、介绍

ORB-SLAM2是一种基于单目、双目和RGB-D相机的实时视觉SLAM(Simultaneous Localization and Mapping,即同时定位与地图构建)系统。该系统由西班牙Zaragoza大学的Raul Mur-Artal教授和Juan D. Tardos教授等人开发,于2016年首次发布,是ORB-SLAM的改进版本。ORB-SLAM2在ORB-SLAM的基础上进行了多项改进,提高了系统的鲁棒性、精度和效率。

2、主要特点

多相机支持:ORB-SLAM2支持单目、双目和RGB-D相机,可以适应不同的应用场景和传感器限制。

实时性能:系统采用了高效的ORB特征点提取和描述符匹配技术,以及图优化和闭环检测算法,实现了高速、实时的地图构建和相机定位。

鲁棒性:在处理模糊、遮挡、光照变化和动态场景等复杂情况下,ORB-SLAM2具有较强的鲁棒性和稳定性。

易于使用和扩展:ORB-SLAM2提供了易于使用和扩展的接口和工具,允许用户自定义算法和参数,以满足不同的应用需求。

3、应用场景

自动驾驶、无人机定位与导航、机器人导航、增强现实与虚拟现实、人体运动与分析等

二、安装

根据参考[1]及orb-slam2的github进行编译orb-slam2前的库,即cmake,gcc,g++,git,eigen,pangolin,opencv3(注意,一定是3,而不是4,因为不支持4)。

1、cmake,gcc,g++,git安装

sudo apt-get install  cmake gcc g++ git

2、eigen安装

apt安装(之后会有个报错,但不影响使用):

sudo apt-get install libeigen3-dev

源码编译安装:

eigen官网

3、pangolin安装

根据参考[1]进行0.6版本的安装,即在用户目录下打开终端执行

sudo apt-get install libxkbcommon-dev
sudo apt-get install wayland-protocols
sudo apt install libglew-dev
cd Pangolin-0.6
mkdir build
cd build
cmake ..
make -j
sudo make install

4、opencv3安装

根据参考[1]进行opencv3.4.5的安装,即

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
cd opencv-3.4.15
mkdir build
cd build
cmake ..
make -j
sudo make install

过程中会出现无法定位软件包libjasper-dev的错误,根据参考[2]进行换源下载即可

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt upgrade
sudo apt install libjasper1 libjasper-dev

剩下的按照参考[1]进行即可,在执行

sudo updatedb

会报错command not found,只需执行

sudo apt-get install mlocate

再重新执行sudo updatedb即可。

三、orb-slam2编译安装

我是自己下的官网的代码进行编译,然后解决报错,如果不想自己解决报错,可以使用参考[1]提供的代码。

根据orb-slam的readme进行编译安装。先下载代码。

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

再进行安装

cd ORB_SLAM2
chmod +x build.sh
./build.sh

可见build.sh中已为我们提供了编译安装DBoW2、g2o等库的命令

之后执行编译orb-slam2

mkdir build && cd build
cmake ..
make -j

在执行cmake命令时,会报错error: static assertion failed: std::map must have the same val

根据参考[3]进行修改即可。

在执行make命令时,会报错EIGEN_DEPRECATED const unsigned int AlignedBit = 0x80

原因是我们apt下载的eigen库太新,经过之后的测试,不影响,如果不想报这个错,请源码编译。

报错‘usleep’ was not declared in this scope,这个报错会出现在很多源代码里,根据参考[4],不断改一个,重新编译即可,这里给出所有要加入预编译库的文件

src下:LocalMapping.cc,LoopClosing.cc,System.cc,Tracking.cc,Viewer.cc
Examples下的Monocular,RGB-D,Stereo中的所有.cc文件

最后即可编译成功。测试是否成功,可根据参考[1]进行。

测试成功。

四、参考

参考[1]:Ubuntu20.04配置ORBSLAM2并运行(保姆级教程)_在ubuntu20.04上安装并运行orb-slam2(保姆级教程)-CSDN博客

参考[2]:无法定位软件包libjasper-dev的解决办法-CSDN博客

参考[3]:[ros xtdrone orbslam2报错]./build.sh报错;error: static assertion failed: std::map must have the same val_static assertion failed:std::map-CSDN博客

参考[4]:ORB-slam2编译时报错‘usleep’ was not declared in this scope_orbslam2 error: ‘usleep’ was not declared in this -CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值