ORB_SLAM2的安装及基于ROS的运行

安装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用着舒服。

你可能感兴趣的:(ORB_SLAM2的安装及基于ROS的运行)