ORB-SLAM2环境配置与运行

1. 简介

ORB-SLAM是西班牙Zaragoza大学的Raul Mur-Artal编写的视觉SLAM系统。他的论文“ORB-SLAM: a versatile andaccurate monocular SLAM system"发表在2015年的IEEE Trans. on Robotics上。开源代码包括前期的ORB-SLAM和后期的ORB-SLAM2。

项目主页网址为: http://webdiis.unizar.es/~raulmur/orbslam/。

ORB-SLAM是一个基于特征点的实时单目SLAM系统,在大规模的、小规模的、室内室外的环境都可以运行。该系统对剧烈运动也很鲁棒,支持宽基线的闭环检测和重定位,包括全自动初始化。该系统包含了所有SLAM系统共有的模块: 跟踪(Tracking)建图(Mapping)重定位(Relocalization)闭环检测(Loop closing)。由于ORB-SLAM系统是基于特征点的SLAM系统,故其能够实时计算出相机的轨线,并生成场景的稀疏三维重建结果。ORB-SLAM2在ORB-SLAM的基础上,还支持标定后的双目相机和RGB-D相机。

2. ORB-SLAM2特点

ORB-SLAM是一个完整的SLAM系统,包括视觉里程计、跟踪、回环检测。它是一种完全基于稀疏特征点的单目SLAM系统,其核心是使用ORB(Orinted FAST and BRIEF)作为整个视觉SLAM中的核心特征。具体体现在几个方面:

  • 提取和跟踪的特征点使用ORB。ORB特征的提取过程非常快,适合用于实时性强的系统。
  • 回环检测使用词袋模型,其字典是一个大型的ORB字典。
  • 接口丰富,支持单目、双目、RGBD多种传感器输入,编译时ROS可选,使得其应用十分轻便。代价是为了支持各种接 口,代码逻辑稍为复杂。
  • 在PC机以30ms/帧的速度进行实时计算,但在嵌入式平台上表现不佳。

3. 整体框架

ORB-SLAM2环境配置与运行_第1张图片
它主要有三个线程组成:跟踪Local Mapping(又称小图)、Loop Closing(又称大图)。

4. 环境配置

本机系统:虚拟机Ubuntu16.04
(考虑后续其他项目配置,建议虚拟机操作)
注:跟过slam14讲的环境配置基本就满足了。

1.安装工具
在配置过程中需要cmake、gcc、g++和Git工具。可在终端通过以下命令下载。(考虑后续使用,cmake装3.5以上最好)

 sudo apt-get install cmake
 sudo apt-get install git
 sudo apt-get install gcc g++  

2.安装Pangolin
依赖:

sudo apt-get install libglew-dev
 sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
 sudo apt-get install libpython2.7-dev

安装:

git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
make -j4
sudo make install

图形不显示问题参考:
https://blog.csdn.net/weixin_45080292/article/details/122386491?spm=1001.2014.3001.5501
3.安装Eigen3
安装:

sudo apt-get install libeigen3-dev

主要用于矩阵计算,给个学习连接:

https://github.com/fengbingchun/Eigen_Test

4.g2o安装

g2o库官网:https://github.com/RainerKuemmerle/g2o.git
点击commits可以查看旧版本的提交文件
 
可以自己下载下来,也可以通过终端指令下载在开启的文件目录下:
git clone https://github.com/RainerKuemmerle/g2o.git
用git tag可以查看旧版本的提交文件
 
安装依赖项:sudo apt-get install libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.4 libcholmod3.0.6
低版本的依赖安装
sudo apt-get install libeigen3-dev libsuitesparse-dev qtdeclarative5-dev qt5-qmake libqglviewer-dev
 
cd g2o   //进入g2o文件夹
mkdir build     //创建build文件夹
cd build    //进入 build
cmake ..   //cmake编译  这个过程比较漫长
make
sudo make install   //安装即可
sudo ldconfig //更新一下刚安装好的库文件

5.OPENCV3安装
为后续使用直接装opencv3版本,该过程很容易出现各种错误,但基本都可搜到解决方案。
安装链接:
https://blog.csdn.net/Ding_0110M/article/details/88083741?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164775358416782246429325%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164775358416782246429325&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-88083741.142v2pc_search_result_control_group,143v4control&utm_term=ubuntu16.04%E5%AE%89%E8%A3%85opencv&spm=1018.2226.3001.4187

6.DBow安装
从Github上现在模型库:
https://github.com/dorian3d/DBoW2
进入文件目录,安装

mkdir build
cd build/
cmake ..
make
sudo make install

ROS安装(可选),至此环境配置完成。

5.下载编译ORB-SLAM2

克隆仓库

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

编译ORB-SLAM2,第三方库中的DBoW2和g2o,并解压ORB词典

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

编译出现内存无法分配,将./build.sh最后的make -j改为make,保存退出。

6.example

1.单目例子
有TUM、KITTI、EuRoC三种数据集,本实验使用TUM数据集,从http://vision.in.tum.de/data/datasets/rgbd-dataset/download下载序列并解压缩。
本机测试数据集:
ORB-SLAM2环境配置与运行_第2张图片
解压:

tar -zxvf rgbd-dataset_freiburg1_xyz.tgz

在ORB-SLAM2文件下运行

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

运行结果:
ORB-SLAM2环境配置与运行_第3张图片
后续更新。。。。。。。。

https://github.com/Navigine/Indoor-Positioning-And-Navigation-Algorithms#indoor-navigation-algorithms-

你可能感兴趣的:(slam,ubuntu,计算机视觉)