本文介绍了ORB_SLAM2的安装与使用过程
1.准备工作
操作系统:ubuntu12.04 或者 ubuntu 14.04
C++11 编译器
Pangolin:一个UI显示插件
安装方法:(1)首先安装OpenGL
(2)然后安装Glew sudo apt-get install libglew-dev
(3)安装Cmake sudo apt-get install cmake
(4)安装Boost sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
(5)安装Python sudo apt-get install libpython2.7-dev
(6) 安装Eigen (7)安装CUDA :这两项不是必须安装
最后:
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake -DCPP11_NO_BOOST=1 ..
make -j
OpenCV:注意的是,不支持OpenCV3.0,可以使用OpenCV2.4.3-2.4.11之间的版本。Eigen3:http://eigen.tuxfamily.org/index.php?title=Main_Page 版本号至少大于3.1.0
BLAS and LAPACK:
sudo apt-get install libblas-dev
sudo apt-get install liblapack-dev
ROS (optional):建议安装ROS操作系统,可以较为方便的跑实时SLAM。
2.安装ORB-SLAM2
做完了以上准备工作,就可以正式安装ORB-SLAM2程序了。
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
安装包中提供了安装脚本
cd ORB_SLAM2
chmod +x build.sh
./build.sh
到这里就安装好了ORB-SLAM2
3.测试
TUM Dataset
-
从 http://vision.in.tum.de/data/datasets/rgbd-dataset/download 下载序列并解压。
-
执行下面的指令
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER
4.ROS接口
Pull requests “ROS catkinization#2”中的方法在自己的ROS的catkin工作区间下运行ROS接口。由于细节比较繁琐,不再赘述。可以参考:https://github.com/raulmur/ORB_SLAM2/pull/2/files这里没有按照github的官网上执行ROS接口,而是按照
我将整理好的ros功能包上传,在这个包中,我也将github上的二进制字典整合了进去,比起原始的txt字典的载入,要快了很多。下载后直接复制到自己的工作区间下编译 catkin_make 即可。 运行 rosrun ros_orb ros_orb 便可以实现通过ROS启用ORBSLAM。结合iai_kinect这个功能包,将相应的话题名称设定好就可以使用Kinect在线的跑ORB_SLAM了,是不是很方便呢?
此外,这里还有一点需要注意,我的cmakelist文件中的CODE_SOURCE_DIR这个路径还需要根据自己的ORB_SLAM代码的工程位置自己设定。还有set(LIBS 。。。)这一项中对的lib/libORB_SLAM2.so 这个.so文件的名称也需要自己到相应的路径确认以下如果不同就改成自己的名字。
最后,我参考了半闲居士(高博)的代码,使用PCL将SLAM过程中的稠密地图也显示了出来,但是有闭环的问题,目前还没有太好的办法解决。
功能包下载地址:http://pan.baidu.com/s/1miDA952