ORB_SLAM2在Ubuntu 14.04上的操作

ORB_SLAM2项目地址:http://webdiis.unizar.es/~raulmur/orbslam/

如有问题可以留言,我看到就会回复,刚把ORB_SLAM2的程序看完,接下来会更新对程序的详细分析。

前一部分为运行所需库的安装,后一部分为具体操作流程,由本人亲测的相关操作指令,ROS上的操作暂未测试,之后会更新。

所需条件:

## C++11 or C++0x Compiler
We use the new thread and chrono functionalities of C++11.

## Pangolin

We use [Pangolin](https://github.com/stevenlovegrove/Pangolin) for visualization and user interface. Dowload and install instructions can be found at: https://github.com/stevenlovegrove/Pangolin.

## OpenCV
We use [OpenCV](http://opencv.org) to manipulate images and features. Dowload and install instructions can be found at: http://opencv.org. **Required at leat 2.4.3. Tested with OpenCV 2.4.11 and OpenCV 3.2**.

## Eigen3
Required by g2o (see below). Download and install instructions can be found at: http://eigen.tuxfamily.org. **Required at least 3.1.0**.

## DBoW2 and g2o (Included in Thirdparty folder)

We use modified versions of the [DBoW2](https://github.com/dorian3d/DBoW2) library to perform place recognition and [g2o](https://github.com/RainerKuemmerle/g2o) library to perform non-linear optimizations. Both modified libraries (which are BSD) are included in the *Thirdparty* folder

 PONGOLIN安装:

安装依赖项:

sudo apt-get install libglew-dev

sudo apt-get install libpython2.7-dev

sudo apt-get install build-essential

然后转到某一个文件目录下,下载安装包,通过cmake方式进行安装

git clone https://github.com/stevenlovegrove/Pangolin.git

cd Pangolin

mkdir build

cd build

cmake ..

make -j

sudo make install


OpenCV要求最低版本为2.4.3。

安装过程:从OpenCV官网下载OpenCV2.4.11。然后安装依赖项:

sudo apt-get install libgtk2.0-dev

sudo apt-get install pkg-config

 将下载的OpenCV解压到自己的指定目录,OpenCV为cmake工程库,cd进入到OpenCV的目录下。

mkdir  build

cd build

cmake ..

make

sudo make install

Eigen3

最低要求版本为3.1.0。在http://eigen.tuxfamily.org 下载Eigen3的最新版本,一般是一个压缩文件,下载后解压,然后cd到Eigen3的根目录下,安装方法与OpenCV相似。

mkdir build

cd build

cmake ..

make

sudo make install



以上依赖项安装完成后:


先转到自己打算存储ORBSLAM2工程的路径,下载ORB——SLAM2程序:

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

进入该工程文件目录下

cd ORB_SLAM2

原作者在程序中提供一个脚本`build.sh`来构建* Thirdparty *库和* ORB-SLAM2 *。 请确保已安装了所有必需的依赖项后执行:

chmod +x build.sh

./build.sh


实践操作运行:

确保仍在ORB_SLAM2目录下:

单目:

TUM数据集:

可以从http://vision.in.tum.de/data/datasets/rgbd-dataset/download下载一个数据集并解压放入到当前ORB_SLAM2文件中:

端口输入

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER

将TUMX.yaml分别更改为TUM1.yaml,TUM2.yaml或TUM3.yaml(均为相机参数,与所下载数据集相对应),分别用于freiburg1,freiburg2和freiburg3序列。 将PATH_TO_SEQUENCE_FOLDER更改为未压缩的序列文件夹

例如输入:

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/ORB_SLAM2/rgbd_dataset_freiburg1_xyz

以下示例输入形式类似


KITTI数据集:

可以从http://www.cvlibs.net/datasets/kitti/eval_odometry.php下载一个数据集并解压放入到当前ORB_SLAM2文件中:

端口输入:

./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTIX.yaml PATH_TO_DATASET_FOLDER/dataset/sequences/SEQUENCE_NUMBER

其中将KITTIX.yaml分别更改为KITTI00-02.yaml,KITTI03.yaml或KITTI04-12.yaml,分别为序列0至2,3和4至12。 将PATH_TO_DATASET_FOLDER更改为未压缩的数据集文件夹。 将SEQUENCE_NUMBER更改为对应的00,01,02,...,11。

EuRoC数据集:

可以从http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets下载一个数据集并解压放入到当前ORB_SLAM2文件中:

端口输入:

./Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml PATH_TO_SEQUENCE_FOLDER/mav0/cam0/data Examples/Monocular/EuRoC_TimeStamps/SEQUENCE.txt 
./Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml PATH_TO_SEQUENCE/cam0/data Examples/Monocular/EuRoC_TimeStamps/SEQUENCE.txt 
对V1和V2序列执行以下第一个命令,或对MH序列执行第二个命令。 根据您想要运行的序列更改PATH_TO_SEQUENCE_FOLDER和SEQUENCE。


双目:

KITTI数据集:

可以从http://www.cvlibs.net/datasets/kitti/eval_odometry.php下载一个数据集并解压放入到当前ORB_SLAM2文件中:

端口输入指令:

 
./Examples/Stereo/stereo_kitti Vocabulary/ORBvoc.txt Examples/Stereo/KITTIX.yaml PATH_TO_DATASET_FOLDER/dataset/sequences/SEQUENCE_NUMBER

其中将KITTIX.yaml分别更改为KITTI00-02.yaml,KITTI03.yaml或KITTI04-12.yaml,分别为序列0至2,3和4至12。 将PATH_TO_DATASET_FOLDER更改为未压缩的数据集文件夹。 将SEQUENCE_NUMBER更改为对应的00,01,02,...,11。


EuRoC数据集:

可以从http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets下载一个数据集并解压放入到当前ORB_SLAM2文件中:

端口输入指令:

 
./Examples/Stereo/stereo_euroc Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml PATH_TO_SEQUENCE/mav0/cam0/data PATH_TO_SEQUENCE/mav0/cam1/data Examples/Stereo/EuRoC_TimeStamps/SEQUENCE.txt
./Examples/Stereo/stereo_euroc Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml PATH_TO_SEQUENCE/cam0/data PATH_TO_SEQUENCE/cam1/data Examples/Stereo/EuRoC_TimeStamps/SEQUENCE.txt
其中对V1和V2序列执行以下第一个命令,或对MH序列执行第二个命令。 根据您想要运行的序列更改PATH_TO_SEQUENCE_FOLDER和SEQUENCE。



RGBD:

TUM数据集:

可以从http://vision.in.tum.de/data/datasets/rgbd-dataset/download下载一个数据集并解压放入到当前ORB_SLAM2文件中:

使用python脚本associate.py关联RGB图像和深度图像。在Examples / RGB-D / associations /中已经生成了对一些序列提供了关联。 也可以生成自己的关联文件执行,但是前提是有associate.py文件,可以将其放置于OORB_SLAM2文件下,PATH_TO_SEQUENCE为下载的数据集路径:

python associate.py PATH_TO_SEQUENCE/rgb.txt PATH_TO_SEQUENCE/depth.txt > associations.txt
执行以下命令。 将TUMX.yaml分别更改为TUM1.yaml,TUM2.yaml或TUM3.yaml,分别用于freiburg1,freiburg2和freiburg3序列。 将PATH_TO_SEQUENCE_FOLDER更改为未压缩的序列文件夹。 将ASSOCIATIONS_FILE更改为相应关联文件的路径,端口输入
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUMX.yaml PATH_TO_SEQUENCE_FOLDER ASSOCIATIONS_FILE

本人测试:

以其文件自身所带有的关联文件为例,输入:

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml rgbd_dataset_freiburg1_xyz(为所下载数据集文件名称,我是放置在了ORB_SLAM2目录之下,所以路径可直接写为文件名) Examples/RGB-D/associations/fr1_xyz.txt(最后的txt文件名需要与所用的数据集相对应)



associate.py生成关联文件,还是在ORB_SLAM2目录之下,输入:

cd  rgbd_dataset_freiburg1_xyz    进入所下载数据集,将associate.py文件放入

python associate.py rgb.txt depth.txt > associations.txt      生成关联文件

cd ..        返回至ORB_SLAM2目录之下

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml rgbd_dataset_freiburg1_xyz rgbd_dataset_freiburg1_xyz/associations.txt



参考于该项目中的说明文件:README.md

个人见解,如需转载请注明出处https://blog.csdn.net/zxcqlf/article/details/80512473。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值