主要对ORB-SLAM2进行编译运行。以及下载TUM上的数据集。
单目和RGB-D都可以在TUM的数据集上运行,但是双目的不可以,我是用的EuRoC数据集跑的双目。
Ubuntu 14.04 安装好gcc g++ cmake git
安装Ubuntu使用虚拟机的话方法如下:http://blog.csdn.net/u013142781/article/details/50529030
安装cmake和git
sudo apt-get install cmake
sudo apt-get install git
安装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
下载、编译、安装Pangolin:
先要新建文件夹orbslam_ws和下属的src文件
$ cd ~/orbslam_ws/src
$ git clone https://github.com/zzx2GH/Pangolin.git
$ cd Pangolin
$ mkdir build
$ cd build
$ cmake -DCPP11_NO_BOOST=1 ..
$ make
$ sudo make install
安装OpenCV
从OpenCV官网下载OpenCV2.4.11然后解压。
然后安装依赖项:
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
解压后先在命令窗口使用cd命令进入到下载的opencv文件下:
例如:cd ~/opencv-2.4.11
然后安装
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local ..
make
sudo make install
安装Eigen3
我安装的高版本后面进行编译ORB_SLAM2的时候会有错误,这里推荐安装3.1.0版本。
在http://eigen.tuxfamily.org 下载Eigen3,下载后解压,然后cd到Eigen3的根目录下。
mkdir build
cd build
cmake ..
make
sudo make install
安装ORBSLAM2
还是先cd到自己想要下载ORBSLAM2的目录下面,接着执行:
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
cd ORB_SLAM2
chmod +x build.sh
./build.sh
对了,如果执行./build.sh出现电脑卡顿,建议在执行该命令之前在ORB_SLAM2文件夹找到build.sh文件,打开后将最后一个make -j 改为 make -l ,如果还卡顿就将所有make -j 改为 make -l。保存后再运行上述命令就好了。
在http://vision.in.tum.de/data/datasets/rgbd-dataset/download下载一个序列,并解压。
使用cd命令转到ORBSLAM2文件夹下,执行下面的命令。 执行前要将代码中的目录更改成自己的文件目录!!!
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER
其中的PATH_TO_SEQUENCE_FOLDER要改成解压的视频序列文件夹的路径。
例如我下载的“rgbd_dataset_freiburg1_teddy”,位置在 /home/lwl/tum/rgbd_dataset_freiburg1_teddy,那么我将要输入的命令是:
cd ~/home/lwl/tum/rgbd_dataset_freiburg1_teddy
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/lwl/tum/rgbd_dataset_freiburg1_teddy
运行结果截图:
运行RGBD的SLAM实例
使用的还是“rgbd_dataset_freiburg1_teddy”数据集,将其解压到你喜欢的目录.我放在了/home/lwl/tum目录下面。
下载associate.py.放在/ORB_SLAM2/Examples/RGB-D/目录下面.
https://svncvpr.in.tum.de/cvpr-ros-pkg/trunk/rgbd_benchmark/rgbd_benchmark_tools/src/rgbd_benchmark_tools/associate.py
打开终端,进入到associate.py所在目录,即/ORB_SLAM2/Examples/RGB-D/,之后运行
python associate.py PATH_TO_SEQUENCE/rgb.txt PATH_TO_SEQUENCE/depth.txt > associations.txt
这里的PATH_TO_SEQUENCE 是指的下载数据集的目录里面有depth.txt 和 rgb.txt,需要替换成自己的地址。
所以上述的我的输入:
cd ~/orbslam_ws/src/ORB_SLAM2/Examples/RGB-D
python associate.py /home/lwl/tum/rgbd_dataset_freiburg1_teddy/rgb.txt /home/lwl/tum/rgbd_dataset_freiburg1_teddy/depth.txt > associations.txt
运行之后在该目录中将会生成一个associations.txt文件.
最后回到ORB_SLAM2的文件夹下面执行:
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUMX.yaml PATH_TO_SEQUENCE_FOLDER ASSOCIATIONS_FILE
其中:PATH_TO_SEQUENCE_FOLDER文件夹即为数据库所在文件夹,我的是在orbslam2工程下面,
ASSOCIATIONS_FILE即为第3步中生成的associations.txt,给出他的制定目录位置。
我的是:
cd ~/orbslam_ws/src/ORB_SLAM2
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml /home/lwl/tum/rgbd_dataset_freiburg1_teddy Examples/RGB-D/associations.txt
运行结果:
下载EuRoC数据集(上一条博客有链接),我下载的是EuRoc数据集下的“V1_03_difficult”数据子集。
下载后保存到自己喜欢的路径。运行下面代码,注意改为子集的路径。
./Examples/Stereo/stereo_euroc Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml V1_03_difficult包的路径 /mav0/cam0/data V1_03_difficult/mav1/cam1/data Examples/Stereo/EuRoC_TimeStamps/V10X.txt (X为1,2,3)
那么我的就是:
cd ~/orbslam_ws/src/ORB_SLAM2
./Examples/Stereo/stereo_euroc Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml /home/lwl/video/V1_03_difficult/mav0/cam0/data /home/lwl/video/V1_03_difficult/mav0/cam1/data Examples/Stereo/EuRoC_TimeStamps/V103.txt
运行结果: