1、软硬件
1)软件--装有ROS kinetic ubuntu 16.04 同时兼容 ROS Indigo ubuntu 14.04
2)硬件--笔记本、笔记本自带摄像头(或者淘宝上十几块钱的USB摄像头)
2、建立orbslam_ws工作空间
cd ~/rgbdslam_ws/src
wget -q http://github.com/felixendres/rgbdslam_v2/archive/kinetic.zip
unzip -q kinetic.zip
cd ~/rgbdslam_ws/
3、驱动摄像头显示图像
$ cd ~/orbslam_ws/src
$ git clone https://github.com/bosch-ros-pkg/usb_cam
$ cd ..
$ catkin_make
$ source devel/setup.bash
打开一个终端
$ roscore
打开另一个终端
$ cd ~/orbslam_ws
$ source devel/setup.bash
$ roslaunch usb_cam usb_cam-test.launch
4、编译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
下载并编译g2o
$ cd ~/orbslam_ws/src
$ git clone https://github.com/RainerKuemmerle/g2o
$ cd ~/orbslam_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
上述步骤如若在执行make的过程中出现以下错误,如下图红框圈出所示:
可以用如下方法解决:打开Pangolin文件夹下的/home/ljl/visionslam_ws/src/Pangolin/CMakeModules/FindLibRealSense.cmake文件,删除一行并增加一行
PATH_SUFFIXES librealsense)
#add a hint so that it can find it without the pkg-config
find_library(LIBREALSENSE_LIBRARY
NAMES librealsense.so
HINTS /usr/lib /usr/local/lib )
set(LIBREALSENSE_INCLUDE_DIRS ${LIBREALSENSE_INCLUDE_DIR}) --去掉该行
string(REPLACE "/librealsense" "" LIBREALSENSE_INCLUDE_DIRS ${LIBREALSENSE_INCLUDE_DIR}) --增加该行
set(LIBREALSENSE_LIBRARIES ${LIBREALSENSE_LIBRARY})
include(FindPackageHandleStandardArgs)
上述修改完成后,再次进入终端输入
$ make
$ sudo make install
5、下载ORB_SLAM2 ROS包
$ cd ~/orbslam_ws/src
$ git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
6、编译ORB_SLAM2
1) 编译DBoW2
cd ~/orbslam_ws/src/ORB_SLAM2/Thridparty/DBoW2
mkdir build
cmake ..
make
2) 编译ORB_SLAM2
cd catkin_ws/src/ORB_SLAM2
mkdir build
cd build
cmake ..
make
3) 编译ROS的example
cd ~/catkin_ws/src/ORB_SLAM2/Example/ROS/ORB_SLAM2
mkdir build
cd build
cmake ..
make
7、修改ros_mono.cc
进入~/orbslam_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src
打开 ros_mono.cc 把程序里面的topic改为 /usb_cam/image_raw
具体还要查看自己的rviz(即上一步打开的摄像头窗口的标题)
然后进入~/orbslam_ws/src/ORB_SLAM
8、启动
1)第一个终端
roscore
2) 第二个终端
roslaunch usb_cam usb_cam-test.launch
3)第三个终端
rosrun ORB_SLAM2 Mono /home/ljl/visionslam_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/ljl/visionslam_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/Asus.yaml
9、ORB_SLAM2初始化
主要操作:左右平移摄像头,最后可以看到类似下图的效果