这是重装系统后第一次泡ORB_SLAM2,把遇到的问题以及解决方法记录一下,方便以后查阅,另外很多人学ORB_slam只是跑个DEMO,并没有去实战应用,现在刚好有一些想法和思路会在这几篇博客进行更新。
平台:ubuntu 16.04
ROS:kinetic
opencv 2.4.9.1(Required at leat 2.4.3. Tested with OpenCV 2.4.11 and OpenCV 3.2**)
摄像头:笔记本自带
安装步骤:
一、驱动摄像头显示图像
$ cd ~/camera_ws/src
$ git clone https://github.com/bosch-ros-pkg/usb_cam
$ cd ..
$ catkin_make
$ source devel/setup.bash
$ roscore
$ roslaunch usb_cam usb_cam-test.launch
记录下显示窗口的topic: /usb_cam/image_raw
二 、编译ORB-SLAM2之前的相关依赖项和库安装
1)安装Boost
$ sudo apt-get install libboost-all-dev
2)安装g2o为了编译g2o需要先安装如下三个库
$ sudo apt-get install libblas-dev
$ sudo apt-get install liblapack-dev
$ sudo apt-get install libeigen3-dev
$ cd ~/camera_ws/src
$ git clone https://github.com/RainerKuemmerle/g2o
$ cd ~/camera_ws/src/g2o
$ mkdir build
$ cmake ..
$ make
$ sudo make install
3 ) 安装 Pangolin
$ sudo apt-get install libglew-dev #安装Glew
$ sudo apt-get install cmake #安装CMake
$ sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev #安装Boost
$ sudo apt-get install libpython2.7-dev #安装Python2'Python3
下载、编译、安装Pangolin:
$ cd ~/orbslam_ws/src
$ git clone https://github.com/stevenlovegrove/Pangolin.git
$ cd Pangolin
$ mkdir build
$ cd build
$ cmake -DCPP11_NO_BOOST=1 ..
$ make
$ sudo make install
三、下载ORB_SLAM2 ROS包
$ cd ~/camera_ws/src
$ git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
$ cd ORB_SLAM2
$ chmod +x build.sh
$ ./build.sh
$ chmod +x build_ros.sh
$ ./build_ros.sh
然后执行两个 .sh 重新编译
四、部分安装问题解决
1、没有生成Mono : ./build_ros.sh 没编译成功
2、./build_ros.sh 报错,DSO missing ......
找到 ORB_SLAM2 下的CMakeLists.txt,修改如下
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
)
五、运行
1) roscore
2) roslaunch usb_cam usb_cam-test.launch
3) rosrun ORB_SLAM2 Mono /home/zhuoli/camera_ws//src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/zhuoli/camera_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml