ORB-SLAM2(单目slam、ROS环境)安装总结

本文主要是记录自己安装ORB-SLAM2的总结,之前从未写过博客,没有想过分享一下自己的探索过程。
首先slam(simultaneous localization and mapping),即时定位与地图构建。我这头是在ubuntu14.04上安装,主要是测试一下在ros上运行(indogo版本)单目slam。

一、依赖项的安装

1.1 、Eigen3安装
官网:http://eigen.tuxfamily.org/index.php?title=Main_Page
g2o库依赖于eigen3。Eigen是C++中可以用来调用并进行矩阵计算的一个库。

    sudo apt-get install libeigen3-dev

1.2、opencv安装
opencv推荐安装opencv2.4.13(opencv2.4.3以上就可以满足条件),首先上opencv官方网站:http://opencv.org/downloads.htm下载好opencv2.4.13.zip.

    unzip opencv2.4.13.zip
    sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev  
    cd opencv-2.4.13
    mkdir build;cd build;  
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -DINSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -DBUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DCUDA_GENERATION=Kepler ..   
    make
    sudo make install

如果没有出现error,恭喜。
1.3、Pangolin安装
Orb-slam2里面的绘图工具使用的就是Pangolin。
首先安装一下Pangolin的依赖项,有的飘过。

    sudo apt-get install libglew-dev#Glew
    sudo apt-get install cmake#Cmake
    sudo apt-get install libpython2.7-dev
    sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev#Boost
      #正式开始安装
    git clone https://github.com/stevenlovegrove/Pangolin.git
    cd Pangolin
    mkdir build
    cd build
    cmake -DCPP11_NO_BOOST=1 .. 
    make -j
    sudo make install  

1.4、BLAS and LAPACK
这两个库是g2o需要的库。
1)、BLAS: Basic Linear Algebra Subprograms
2)、LAPACK:Linear Algebra PACKage

    sudo apt-get install libblas-dev  
    sudo apt-get install liblapack-dev 

1.5、ROS安装
ROS(Robot Operating System)是一个著名的机器人操作系统。安装参考:http://wiki.ros.org/cn/indigo/Installation/Ubuntu
(推荐安装的是indigo)版本。

    sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
    sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
    sudo apt-get update
    sudo apt-get install ros-indigo-desktop-full#完整版
    sudo rosdep init
    rosdep update
    echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
    source ~/.bashrc

二、ORB-SLAM2使用
2.1、orb-slam2编译安装
首先下载下:https://github.com/raulmur/ORB_SLAM2.git

    cd ~/catkin_ws/src
    git clone https://github.com/raulmur/ORB_SLAM2.git 
    cd ORB_SLAM2  
    chmod +x build.sh 
    ./build.sh

2.2、usb_cam编译
参考:https://github.com/bosch-ros-pkg/usb_cam

    cd ~/catkin_ws/src
    git clone https://github.com/bosch-ros-pkg/usb_cam
    cd ~/catkin_ws/
    catkin_make
    roscore#不要忘记
    roslaunch usb_cam usb_cam-test.launch#看自己具体的文件名

注意:要运行monoslam的demo要修改一下~/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src下的ros_mono.cc,将程序里面的topic改为/usb_cam/image_raw,这一步可以通过rviz工具选择image通过订阅/usb_cam/image_raw/,确认是否OK。
2.3、运行测试demo

    rosrun ORB_SLAM2 Mono ~/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt  ~/catkin_ws/src/ORB_SLAM2/Examples/Monocular/TUM1.yaml 
 如果可以正常看到orb-slam2的demo,恭喜,没有成功也不要伤心,检查一下是不是有什么没有操作的。
;