ubuntu16.04上ORB_SLAM2的安装及配置使用

ubuntu16.04上ORB_SLAM2的安装及配置使用

  • 一、安装Pangolin
    • 1、安装下载及编译
    • 2.安装依赖
    • 3.安装Pangolin
  • 二、安装opencv
    • 1.安装依赖项
    • 2. 在OpenCV官网(http://opencv.org)下载OpenCV 2.4.11的source版本,然后解压到本地并编译
    • 3.安装Eigen3,它是一个开源线性库,可进行矩阵运算
  • 三、ORB_SLAM2在ROS下的安装及配置
    • 1.克隆仓库
    • 2.将ORB_SLAM2源代码资源包剪切到ROS工作空间的src文件夹下面去
    • 3.编译ORB-SLAM2,第三方库中的DBoW2和g2o,并解压ORB词典
    • 4.在ROS环境下运行ORB_SLAM的准备
    • 5.安装usb_cam
  • 四、ROS下使用ORB_SLAM2
    • 1.在新建的终端中再次运行摄像头节点
    • 2.调用笔记本电脑的摄像头进行实时运行ORB-SLAM2
  • 五、单目例子
    • 1.TUM数据集下载
    • 2.在ROS空间下的ORB_SLAM2包中创建Data文件夹,用于存放TMU数据集
    • 3.运行单目例子

一、安装Pangolin

1、安装下载及编译

 sudo apt-get install cmake
 sudo apt-get install git
 sudo apt-get install g++  

2.安装依赖

 sudo apt-get install libglew-dev
 sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
 sudo apt-get install libpython2.7-dev

3.安装Pangolin

1)从gitHub上面下载Pangolin包到本地

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

2)进入Pangolin文件夹,创建build文件夹

cd Pangolin
mkdir build
cd build

3)cmake

cmake -DCPP11_NO_BOOSR=1 ..

4)编译Pangolin资源文件

sudo make -j8

二、安装opencv

1.安装依赖项

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

2. 在OpenCV官网(http://opencv.org)下载OpenCV 2.4.11的source版本,然后解压到本地并编译

$ cd ~/opencv
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=Release –D CMAKE_INSTALL_PREFIX=/usr/local ..
$ make –j8
$ sudo make install

3.安装Eigen3,它是一个开源线性库,可进行矩阵运算

$ sudo apt-get install libeigen3-dev

三、ORB_SLAM2在ROS下的安装及配置

1.克隆仓库

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

2.将ORB_SLAM2源代码资源包剪切到ROS工作空间的src文件夹下面去

(记住:此时,一定要是未编译过的源码。)
ubuntu16.04上ORB_SLAM2的安装及配置使用_第1张图片

3.编译ORB-SLAM2,第三方库中的DBoW2和g2o,并解压ORB词典

$ cd ~/catkin_ws/src/ORB_SLAM2
#修改build.sh文件权限
$ chmod +x build.sh
$ ./build.sh

ubuntu16.04上ORB_SLAM2的安装及配置使用_第2张图片

4.在ROS环境下运行ORB_SLAM的准备

1)如果需要在ROS环境下运行ORB_SLAM,我们需要通过对build_ros.sh文件进行编译,具体步骤如下所示:
1.继续在当前中终端进行权限修改

chmod +x build_ros.sh

2)添加环境变量,添加到 .bashrc文件尾部

gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/home/se/catkin_ws/src/ORB_SLAM2/Examples/ROS

3)编译 build_ros.sh文件

./build_ros.sh

运行完的结果,显示出现问题
ubuntu16.04上ORB_SLAM2的安装及配置使用_第3张图片
出错原因为:libboost_system.so 与libboost_filesystem.so找不到链接目录
解决:
①查看boost_system和boost_filesystem的具体位置

locate  boost_system
locate boost_filesystem

ubuntu16.04上ORB_SLAM2的安装及配置使用_第4张图片
②然后再对应路径 /usr/lib/x86_64-linux-gnu下的上述文件,并将libboost_system.so和libboost_system.so.1.58.0与libboost_filesystem.so和libboost_filesystem.so.1.58.0一起复制到ORB_SLAM2/lib路径下

4)将ORB_SLAM2/Examples/ROS/ORB_SLAM2下的Cmakelists.txt中加入库目录
ubuntu16.04上ORB_SLAM2的安装及配置使用_第5张图片
找到set()函数,并在该函数中添加如下代码:

${PROJECT_SOURCE_DIR}/../../../lib/libboost_filesystem.so
${PROJECT_SOURCE_DIR}/../../../lib/libboost_system.so

ubuntu16.04上ORB_SLAM2的安装及配置使用_第6张图片
5)再次编译就成功了

./build_ros.sh

ubuntu16.04上ORB_SLAM2的安装及配置使用_第7张图片

5.安装usb_cam

1)进入ros工作空间,并下载usb_cam

cd ~catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git

2)返回catkin_ws目录下编译

cd ..
ctakin_make

ubuntu16.04上ORB_SLAM2的安装及配置使用_第8张图片
3)程序注册

source ./devel/setup.bash

4)创建usb_cam编译文件夹并编译

cd src/usb_cam
mkdir build
cd build
cmake ..
make -j8

ubuntu16.04上ORB_SLAM2的安装及配置使用_第9张图片
ubuntu16.04上ORB_SLAM2的安装及配置使用_第10张图片
5)修改usb_cam launch文件权限
ubuntu16.04上ORB_SLAM2的安装及配置使用_第11张图片
6)修改配置文件的相机节点
①在路径为:ros/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src下的ros_mono.cc文件,如下所示:
ubuntu16.04上ORB_SLAM2的安装及配置使用_第12张图片
②修改ros_mono.cc文件的内容,将相机节点修改为usb_cam/image_raw。
ubuntu16.04上ORB_SLAM2的安装及配置使用_第13张图片
③再次编译ORB_SLAM2的build_ros.sh文件

chmod +x build_ros.sh
./build_ros.sh

ubuntu16.04上ORB_SLAM2的安装及配置使用_第14张图片
可以看到我们修改文件的节点更新了。
所有的配置基本到此结束。

四、ROS下使用ORB_SLAM2

先连接摄像头

1.在新建的终端中再次运行摄像头节点

roslaunch usb_cam usb_cam-test.launch

2.调用笔记本电脑的摄像头进行实时运行ORB-SLAM2

rosrun ORB_SLAM2 Mono /home/se/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/se/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml

ubuntu16.04上ORB_SLAM2的安装及配置使用_第15张图片
抱着自己的笔记本电脑在家里慢慢的走一圈,我们就可以看到左边窗口的相机会移动,右边窗口在捕捉RGB!一定要缓慢移动。(需要等待多时,相机才会捕捉)

五、单目例子

1.TUM数据集下载

有TUM、KITTI、EuRoC三种数据集,本实验使用TUM数据集,从http://vision.in.tum.de/data/datasets/rgbd-dataset/download下载序列并解压缩。
1)通过以下链接,下载TMU数据集,
http://vision.in.tum.de/data/datasets/rgbd-dataset/download

2.在ROS空间下的ORB_SLAM2包中创建Data文件夹,用于存放TMU数据集

1)创建Data文件夹
2)将下载好的数据集通过传输软件上传至该文件夹下面并提取文件到此处

3.运行单目例子

$ ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER

其中PATH_TO_SEQUENCE_FOLDER为数据集的存储路径,并将tumx.yaml与下载的数据集对应,比如TUM1.yaml,TUM2.yaml 和TUM3.yaml 分别对应 freiburg1, freiburg2 和 freiburg3。
运行效果图如下所示,图中左侧窗口中的蓝色小方块为提取的图像ORB特征,右侧窗口显示了环境的稀疏地图和相机的运动轨迹。
ubuntu16.04上ORB_SLAM2的安装及配置使用_第16张图片

你可能感兴趣的:(嵌入式学习)