安装ORB_SLAM2
1.安装C++11编译器:$sudo apt-get install gcc g++
2.安装Pangolin:
$ git clone https://github.com/stevenlovegrove/Pangolin.git
$ cd Pangolin
$ mkdir build
$ cd build
$ cmake -DCPP11_NO_BOOST=1 ..
$ make
$ sudo make install
3.安装OpenCV:我的opencv是2.4.9,只要是2.4.3以上就行,网上有很多安装方法,这里就不说了。
4.安装Eigen3,BLAS 和LAPACK:
$ sudo apt-get install libeigen3-dev
$ sudo apt-get install libblas-dev
$ sudo apt-get install liblapack-dev
5.DBoW2 和 g2o都在ORB_SLAM2的Thirdparty文件夹中,所以直接安装ORB_SLAM2就行了,安装方法:
$ git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
$ cd ORB_SLAM2
$ chmod +x build.sh
$ ./build.sh
以上,ORB_SLAM2就安装完了,很简单。
运行ORB_SLAM2
拿Monoslam运行TUM数据集为例:
1.到 http://vision.in.tum.de/data/datasets/rgbd-dataset/download下载任意一个数据集并解压
2.运行:$ ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER
注意把命令行中的Examples/Monocular/TUMX.yaml 变成你下载的数据集相对应的文件,如果你下载的是freiburg1,那么就使用TUM1.yaml文件。这些yaml文件中是一些相机的参数等信息。PATH_TO_SEQUENCE_FOLDER是你下载下来的数据的路径。
下面RGBD,Stereo等也都与此运行方法相同,github上有详细说明 https://github.com/raulmur/ORB_SLAM2
基于ROS的实时ORB_SLAM2
1.安装好ROS操作系统,方法不在此详述
2.启动ROS:$ roscore
3.将ORB_SLAM2的ROS包编译:
$ export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM2/Examples/ROS
注意:PATH是你自己的安装路径
$ chmod +x build_ros.sh
$ ./build_ros.sh
4.将Kinect连接到电脑上,输入指令:$ roslaunch freenect_launch freenect.launch
此时Kinect开始发射图像的topic了。
5.源代码上使用的topic是/camera/image_raw,然而我$ rostopic list 之后根本就没有这个topic,所以我直接去ORB_SLAM2/Examples/ROS/ORB_SLAM2/src/ros_mono.cc中将topic改为/camera/rgb/image_color就可以了
6.运行:$ rosrun ORB_SLAM2 Mono PATH_TO_VOCABULARY PATH_TO_SETTINGS_FILE
其中PATH_TO_VOCABULARY是词典的路径,一般为 Vocabulary/ORBvoc.txt
PATH_TO_SETTINGS_FILE是记录摄像头参数的文件,比如之前用到的TUM1.yaml。我用的是Kinect,参数都差不多所以我就使用的TUM1.yaml。
我使用的命令是:$ rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml
这样就可以实时单目slam了,愉快的ORB SLAM把。
好了,csdn实在是太恶心了,登录需要手机验证,点击发送验证又说IP达到验证上限,然而手机并没有收到任何短信,太恶心了!
于是,转战,用着挺简单的,作为新手觉得比csdn用着舒服。