最近做视觉SLAM时需要配置ORB-SLAM2,ORB-SLAM2是单目视觉SLAM算法中性能优越的解决方案之一,而且还能继续复习下Linux指令,为此做个记录。
文章目录
- 一、ORB-SLAM2算法的系统结构
- 二、Ubuntu 16.04上环境搭建
- 1、编译器及git安装
- 2、配置Pangolin的依赖库
- 3、安装OpenCV
- (1)选择需要的版本下载source压缩包
- (2)下载opencv_contrib,在Tags里找到相应版本下载,版本要与opencv一致
- (3)下载好解压后,把`opencv_contrib3.4.13`放在`opencv3.4.13`目录下
- (4)将两个文件夹分别命名为opencv和opencv_conrib
- (5)OpenCV环境配置
- (6)新建build目录
- (7)在build路径下cmake
- (8)在build路径下cmake
- (9)`fatal error: vgg_generated_120.i: No such file or directory `下载对应文件,拷贝至xfeatures2d/src目录下
- (10)`fatal error: vgg_generated_120.i: No such file or directory`下载对应文件,拷贝至xfeatures2d/src目录下
- (11)编译完成
- (12)opencv.conf添加路径
- (13)bash.bashrc添加路径
- (14)测试
- 4、配置 Eigen3
- 5、运行数据集
一、ORB-SLAM2算法的系统结构
ORB-SLAM2算法将系统分为三个线程并行运行,分别为跟踪线程、建图线程与回环检测线程。跟踪线程实时定位相机,计算初始相机位姿与地图点,然后跟踪局部地图获得更多的匹配关系;建图线程接收跟踪线程的信息进行局部优化并构建局部地图;回环检测线程检测相机是否来过当前位置,消除累计误差,对全局地图进行维护与优化。
1、论文地址
https://arxiv.org/pdf/1610.06475.pdf
2、GitHub地址
https://github.com/raulmur/ORB_SLAM2
二、Ubuntu 16.04上环境搭建
1、编译器及git安装
sudo apt-get install build-essential
sudo apt-get install cmake
测试安装程序
gcc -v
g++ -v
cmake --version
安装Git
sudo apt-get install git
2、配置Pangolin的依赖库
(1)Pangolin 0.5安装
Pangolin是可视化的一个库,Pangolin的github地址
现在Pangolin已经更新到0.8,0.8会报错,所以选择0.5的版本
解压进行安装
(2)或者直接在命令行操作
安装OpenGL和GLEW
sudo apt-get install freeglut3-dev
sudo apt install libglew-dev
git clone https://github.com/stevenlovegrove/Pangolin-0.5.git
cd Pangolin-0.5 //进入源码文件目录
mkdir build //创建build文件
cd build/ /进入build文件目录
cmake .. //编译
make -j //编译 建议用make -j2 因为make -j是贪婪时进程,导致cpu压力大,-j2代表两个进程 -j1代表一个线程
3、安装OpenCV
(1)选择需要的版本下载source压缩包
(2)下载opencv_contrib,在Tags里找到相应版本下载,版本要与opencv一致
(3)下载好解压后,把opencv_contrib3.4.13
放在opencv3.4.13
目录下
(4)将两个文件夹分别命名为opencv和opencv_conrib
(5)OpenCV环境配置
添加下面的源
udo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
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
(6)新建build目录
cd opencv
mkdir build
(7)在build路径下cmake
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..
#后面“../opencv_contrib-3.4.0/modules”为opencv_contrib的modules文件夹所在的路径
(8)在build路径下cmake
(9)fatal error: vgg_generated_120.i: No such file or directory
下载对应文件,拷贝至xfeatures2d/src目录下
xfeatures2d src相关文件
链接:https://pan.baidu.com/s/1SAeaoJBrMoo0WRuNQHZnSg?pwd=mxm0
提取码:mxm0
(10)fatal error: vgg_generated_120.i: No such file or directory
下载对应文件,拷贝至xfeatures2d/src目录下
boostdesc_bgm.i相关文件.tar
链接:https://pan.baidu.com/s/11l3uADQz-7dFp7OEKNthRg?pwd=zjtt
提取码:zjtt
(11)编译完成
(12)opencv.conf添加路径
①打开文件
sudo vim /etc/ld.so.conf.d/opencv.conf
②添加以下路径
/usr/local/lib
vim安装
sudo apt install vim
输入:wq保存退出
③保存并生效
sudo ldconfig
(13)bash.bashrc添加路径
①打开文件
sudo vim /etc/bash.bashrc
②加入命令
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
③保存退出,在终端输入
source /etc/bash.bashrc
(14)测试
①进入opencv/samples/cpp/example_cmake目录下
cd /home/geekfanr/opencv/samples/cpp/example_cmake/
②编译
cmake .
make
./opencv_example
③opencv及opencv_contrib安装配置完成
4、配置 Eigen3
(1)下载Eigen3
(2)切换到Eigen3目录下
cd eigen-3.2.10
(3)新建build目录并进入
mkdir build
cd build
(4)cmake
cmake..
(5)make
sudo make install
(6)将eigen文件复制到本地调用文件夹中(/usr/include)
sudo cp -r /usr/local/include/eigen3 /usr/include
5、运行数据集
(1)下载依赖
sudo apt-get install libcanberra-gtk-module
(2)下载Computer Vision Group数据集
(3)解压缩目录
(4)运行实例
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/geekfanr/rgbd_dataset_freiburg1_xyz