ORB_SLAM2编译与测试

Posted ilym

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORB_SLAM2编译与测试相关的知识,希望对你有一定的参考价值。

ORB_SLAM2编译与测试

学习视觉slam,经典的slam开源框架的学习,是不可避免的。记录一下ORB_SLAM2的编译与测试,此次配置的是无ROS版本。
跑的数据集TUM Dataset 系统版本:ubuntu16.04 ORB_SLAM2源码:https://github.com/raulmur/ORB_SLAM2 ORB_SLAM2项目主页:http://webdiis.unizar.es/~raulmur/orbslam/

一、安装依赖

1.Pangolin

1 sudo apt-get install libglew-dev   #安装Glew  
2 sudo apt-get install cmake         #安装CMake 3 
4 #安装Boost  
5 sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev  
6 
7 sudo apt-get install libpython2.7-dev  #安装Python2 / Python3  
1 编译安装Pangolin:
2 
3 git clone https://github.com/stevenlovegrove/Pangolin.git
4 cd Pangolin
5 mkdir build
6 cd build
7 cmake ..
8 make

2.OpenCV

1 因为之前用过opencv,这里给出编译opencv参考博客!
2 用的是opencv3.2版本
3 参考博客:https://blog.csdn.net/lql0716/article/details/54564721

3.Eigen3

1 Eigen3是一个C++开源线性代数代数库,提供矩阵的线性代数运算,安装比较简单,一条命令就行了。
2 
3 sudo apt-get install libeigen3-dev

4.BLAS and LAPACK

1 网上说是g2o需要BLAS和LAPACK
2 
3 sudo apt-get install libblas-dev 
4 sudo apt-get install liblapack-dev  

 

5.DBoW2 and g2o (Included in Thirdparty folder)

ORB_SLAM2使用的是修改版本DBoW2库进行位置识别
另外使用修改的g2o库进行非线性优化,所以将这两个修改的版本都放在了第三方的文件夹里
对于这两个库的安装与编译在build.sh给出了,这里不用管它了。

二、编译ORB_SLAM2

 1 git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2 
 2 cd ORB_SLAM2
 3 chmod +x build.sh
 4 ./build.sh
 5 
 6 注意:首先将build.sh中最后一行的make -j 改为make ,否则容易死机
 7 等待一段时间,就编译成功了!
 8 
 9 编译完成后生成libORB_SLAM2.so,其位于lib目录下,
10 
11 生成的可执行程序mono_tum, mono_kitti, rgbd_tum, stereo_kitti, mono_euroc and stereo_euroc,位于Examples目录下。

三、运行例子程序

1.RGB-D实例

 1 ******准备数据************
 2 1)下载TUM数据集
 3 从下面这个链接https://vision.in.tum.de/data/datasets/rgbd-dataset/download下载相关数据集,例如下载rgbd_dataset_freiburg2_pioneer_360.tgz
 4 2)然后解压到你想要解压的位置,这里我把数据集解压在ORB_SLAM2
 5 3)运行RGB-D实例时需要RGBD(depth)图像和RGB图像,因此需要将每一张RGB图像和与之对应的RGBD图像建立关联,用到associate.py文件
 6 
 7 *******进行关联操作********
 8 python associate.py PATH_TO_SEQUENCE/rgb.txt PATH_TO_SEQUENCE/depth.txt > associations.txt
 9 注意:
10 PATH_TO_SEQUENCE即rgb.txt所在目录,在下载的数据集中,这里我的目录如下:
11 home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360
12 
13 1)associate.py将放在/ORB_SLAM2/Examples/RGB-D/目录下面
14 2)打开终端,进入associate.py所在目录
15 3)执行:python associate.py home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360/rgb.txt home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360/depth.txt > associations.txt
16 
17 注意:这里用的是python2
18 
19 *********进行测试*********
20 执行下面命令:
21 ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUMX.yaml PATH_TO_SEQUENCE_FOLDER ASSOCIATIONS_FILE
22 
23 其中PATH_TO_SEQUENCE_FOLDER 我下载数据集所在的目录,这里我是放在了ORB_SLAM2工程目录下,即/home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360
24 
25  ASSOCIATIONS_FILE为生成的associations.txt,给出它的指定位置,这里我把它拷贝到了数据集下面,即/home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360
26 /associations.txt
27 
28 然后对应的,先cd ORB_SLAM2工程目录下,我执行:
29 ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM2.yaml /home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360 /home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360/associations.txt

运行效果:
技术分享图片 技术分享图片

 






以上是关于ORB_SLAM2编译与测试的主要内容,如果未能解决你的问题,请参考以下文章

智能机器人|实验四

Ubuntu 16.04 编译ORB_SLAM2_modified问题汇总

ORB_SLAM2 源码解析 ORB_SLAM2简介

ubuntu18.04 ubuntu20.04 ORB_slam3安装运行测试

ORB-SLAM2编译并跑通自己的数据集

ORB-SLAM(单目版本)编译与运行