Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法

Ubuntu18.04下安装配置ORB_SLAM2

ORB_SLAM2的安装配置

  • Ubuntu18.04下安装配置ORB_SLAM2
  • 一、安装必须工具
  • 二、安装Pangolin作为可视化和用户界面
  • 三、安装Eigen3——一个开源线性库,可进行矩阵运算
  • 四、安装ORB-SLAM2
  • 五、安装OpenCV
  • 六、运行单目SLAM实例

一、安装必须工具

安装配置过程中需要需要cmake、gcc、g++和Git工具
1、安装git,用于从Github上克隆项目到本地

sudo apt-get install git

2、安装cmake

sudo apt-get install cmake

3、安装gcc、g++

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

二、安装Pangolin作为可视化和用户界面

1、安装依赖项

sudo apt-get install libglew-dev libpython2.7-dev

2、从GitHub将项目下载到本地

git clone https://github.com/stevenlovegrove/Pangolin.git

3、编译安装

cd Pangolin
mkdir build
cd build
cmake ..
make -j4
sudo make install

(1)在执行make -j4的时候可能会遇到如下问题:No package 'xkbcommon’
Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法_第1张图片
解决这个问题,执行如下命令:

sudo apt-get install libxkbcommon-dev

(2)也可能遇到问题:No package ‘wayland-protocols’ found
Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法_第2张图片
解决方法:

sudo apt-get install wayland-protocols

然后依次执行上面的命令,make -j4执行成功如下图所示:
Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法_第3张图片
Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法_第4张图片

三、安装Eigen3——一个开源线性库,可进行矩阵运算

sudo apt-get install libeigen3-dev

四、安装ORB-SLAM2

1、克隆仓库

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

可能会遇到这种情况,下载很慢而且还会失败:
Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法_第5张图片
所以在执行这一步的时候建议连接手机热点,如下图:
Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法_第6张图片
2、编译ORB-SLAM2,第三方库中的DBoW2和g2o,并解压ORB词典

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

出现如下问题:
Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法_第7张图片
解决usleep问题:在ORB-SLAM2中的include文件夹里面的system.h加入#include
Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法_第8张图片
打开Thirdparty/g2o/g2o/solvers/linear_solver_eigen.h
将以下代码:

template 
class LinearSolverEigen: public LinearSolver
{ public: typedef Eigen::SparseMatrix, Eigen::ColMajor> SparseMatrix;
typedef Eigen::Triplet Triplet;
typedef Eigen::PermutationMatrix, Eigen::Dynamic, SparseMatrix::Index> PermutationMatrix;

修改为:

template 
class LinearSolverEigen: public LinearSolver
{ public:
typedef Eigen::SparseMatrix, Eigen::ColMajor> SparseMatrix;
typedef Eigen::Triplet Triplet;
typedef Eigen::PermutationMatrix, Eigen::Dynamic, int> PermutationMatrix;

然后重新运行上述命令
3、要在ROS环境下运行ORB_SLAM的话,在ROS环境下运行ORB_SLAM,最好将工程放在catkin_ws/src文件夹下,需要进行如下操作:
(1)将包含Examples/ROS/ORB_SLAM2的路径添加到ROS_PACKAGE_PATH环境变量中:打开.bashrc文件并在最后添加路径
打开.bashrc文件:

 sudo  gedit ~/.bashrc

添加路径:
在这里插入图片描述

source ./catkin_ws/devel/setup.sh

使修改后的/.bashrc文件生效

source ~/.bashrc

将下列目录下的CMakeLists.txt文件中的部分代码做修改
Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法_第9张图片
将下列代码:

set(LIBS 
${OpenCV_LIBS} 
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so
)

修改为:

set(LIBS 
${OpenCV_LIBS} 
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so
-lboost_system
)

然后执行命令

cd catkin_ws/src/ORB_SLAM2
chmod +x build_ros.sh
./build_ros.sh

运行成功
Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法_第10张图片

五、安装OpenCV

OpenCV的安装参考一下学姐的博客

https://blog.csdn.net/cungudafa/article/details/84451066

六、运行单目SLAM实例

编译完成后会在ORB_SLAM2/Examples文件夹下生成各种可执行文件。我们以单目情况为例,展示如何运行ORB_SLAM2程序。
1、下载数据集:有TUM、KITTI、EuRoC三种数据集,这里使用TUM数据集,从http://vision.in.tum.de/data/datasets/rgbd-dataset/download下载序列并解压缩。
Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法_第11张图片
解压:
Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法_第12张图片
2、执行命令,其中PATH_TO_SEQUENCE_FOLDER为数据集的存储路径,并将tumx.yaml与下载的数据集对应,比如TUM1.yaml,TUM2.yaml 和TUM3.yaml 分别对应 freiburg1, freiburg2 和 freiburg3,根据自己的情况对路径做修改。

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/zj/rgbd_dataset_freiburg1_xyz

结果如下:
Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法_第13张图片
Ubuntu18.04下安装配置ORB_SLAM2以及过程中遇到的问题解决方法_第14张图片
到这里,运行单目SLAM实例就成功啦!

你可能感兴趣的:(嵌入式系统开发应用)