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问题汇总