ORBSLAM 编译运行记录

ORBSLAM 编译运行记录

  • 1.编译环境
  • 2.ORB-SLAM源码下载
  • 3.数据集下载
  • 4.依赖库安装
    • Boost安装
    • Eigen3安装
    • OpenCV安装
    • g2o库安装
    • DBoW2安装
  • 5.ORB_SLAM部分文件的修改
  • 6.开始编译ORB_SLAM
  • 7.开始运行ORB_SLAM

1.编译环境

  计算机操作系统:Ubuntu16.04
  机器人系统:ROS-kinetic

2.ORB-SLAM源码下载

  ORB-SLAM源码的地址为:
            https://github.com/raulmur/ORB_SLAM
  下载后,将其解压到自己的ROS工作空间中,将解压后的一级文件夹命名为“ORB_SLAM”。

3.数据集下载

  TUM数据集的下载地址为:
            https://vision.in.tum.de/data/datasets/rgbd-dataset/download
  下载文件格式为.bag的文件。运行ORB_SLAM时,会用到此类文件。比如下载的文件名为test.bag

4.依赖库安装

  编译ORB_SLAM之前需要安装一些必要的依赖库,有Boost、Eigen3、OpenCV、 g2o、DBoW2。下面分别介绍各自安装方法。

Boost安装

Boost库用来启动SLAM系统的不同线程,其安装过程只需一条命令:

sudo apt-get install libboost-all-dev

Eigen3安装

为了编译g2o,需要安装Eigen3,其安装过程只需一条命令:

sudo apt-get install libeigen3-dev

OpenCV安装

安装机器人系统ROS-kinetic时,会顺带安装OpenCV3,所以OpenCV的安装可以忽略。

g2o库安装

我们使用g2o的修改版本来执行优化,不用到网上下载g2o库源码。当我们下载了ORB_SLAM的源码时,g2o库在ORB_SLAM文件夹下,其具体的路径为 ~/ORB_SLAM/Thirdparty/g2o。终端进入其路径下,逐条执行以下命令:

mkdir build
cd build
cmake ..
make

DBoW2安装

用DBoW2的一些组件来进行位置识别和功能匹配。编译DBoW2没有其他依赖项。DBoW2也在ORB_SLAM文件夹下,其路径为 ~/ORB_SLAM/Thirdparty/DBoW2。终端进入其路径下,逐条执行以下命令:

mkdir build
cd build
cmake ..
make

5.ORB_SLAM部分文件的修改

1.在ORB_SLAM文件夹下有个manifest.xml文件,将里面的如下代码删除或注释。修改原因是使用了ROS-kinetic版本自带OpenCV3。

<depend package="opencv2"/>

2.打开ORB_SLAM/src文件夹下的ORBextractor.cc文件,添加如下两个头文件,修改原因是使用了ROS-kinetic版本自带OpenCV3。

#include 
#include 

3.打开ORB_SLAM/Thirdparty/g2o/g2o/solvers文件夹下的linear_solver_eigen.h文件,找到:

typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, SparseMatrix::Index> PermutationMatrix;

将这一句代码用以下代码替换:

typedef Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic> PermutationMatrix;

修改原因是Ubuntu16.04安装的Eigen库与源码自带的g2o库产生了一些不兼容的问题。

4.打开ORB_SLAM文件夹下的CMakeLists.txt,在target_link_libraries()中添加两个库文件:

/usr/lib/x86_64-linux-gnu/libboost_system.so
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so

修改原因是编译中可能会遇到cmake找不到libboost_system.so和libboost_filesystem.so的情况。这两个库的路径要根据自己的实际情况进行适当修改,终端输入locate libboost_system.so指令来进行定位。

6.开始编译ORB_SLAM

进入到ORB_SLAM目录下,在终端逐条执行以下命令:

mkdir build
cd build
cmake ..
make

7.开始运行ORB_SLAM

1.此步骤只需在第一次运行时执行。解压ORBvoc.txt.tar.gz,打开终端,逐条执行以下命令:

roscd ORB_SLAM
cd Data/
tar zxvf ORBvoc.txt.tar.gz

2.打开终端,执行命令:

roscore

3.重开终端,执行命令:

roslaunch ORB_SLAM ExampleGroovyOrNewer.launch

4.重开终端,进入test.bag文件目录下,执行命令:

rosbag play --pause test.bag

步骤3的命令等价于以下三个命令:

rosrun ORB_SLAM ORB_SLAM Data/ORBvoc.txt Data/Settings.yaml
rosrun image_view image_view image:=/ORB_SLAM/Frame _autosize:=true
rosrun rviz rviz -d Data/rviz.rviz

你可能感兴趣的:(ORBSLAM 编译运行记录)