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

运行效果:

2.Monocular实例

 1 (1)TUM Dataset
 2 使用上述RGB-D下载的数据集,运行下面的命令:
 3 ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER
 4 
 5 针对上述命令做如下修改:
 6 将TUMX.yaml修改为TUM1.yaml、TUM2.yaml、TUM3.yaml其中之一
 7 将PATH_TO_SEQUENCE_FOLDER修改为TUM Dataset数据集所在的位置
 8 
 9 例如针对我自己而言,进入ORB_SLAM2工程目录下,运行下面命令:
10 ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360
11 
12 (2)KITTI Dataset
13 从链接 http://www.cvlibs.net/datasets/kitti/eval_odometry.php 下载KITTI数据集合,这里我下载的是ground truth poses,并将其解压在ORB_SLAM2工程目录下,解压后的文件夹名为dataset.
14 
15 使用该数据集,运行下面的命令:
16 ./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTIX.yaml PATH_TO_DATASET_FOLDER/dataset/sequences/SEQUENCE_NUMBER
17 
18 针对上述命令,做如下修改:
19 将KITTIX.yaml改为 KITTI00-02.yaml、KITTI03.yaml、KITTI04-12.yaml其中之一即可
20 PATH_TO_DATASET_FOLDER修改为所下载数据集合放置的位置
21 SEQUENCE_NUMBER修改为00,01,02,...,11.22 
23 例如针对我自己而言,进入ORB_SLAM2工程目录下,运行下面命令:
24 ./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTI00.yaml /home/ttwang/ORB_SLAM2/dataset/sequences/00

 

 

 

posted @ 2018-05-23 22:48  woft王  阅读(4330)  评论(0)    收藏  举报