ubuntu16.04安装orb_slam2

最近在学习slam,所以安装orb_slam2,参考了网上的很多博客,中间也遇到一些问题,有些博客讲解的也不是那么详细。现在补充记录如下。

整体思路主要参考了这篇文章:https://www.cnblogs.com/feifanrensheng/p/8480362.html

行文按照这篇文章进行扩充。

1 安装必要工具

首先,有两个工具是需要提前安装的。即cmake和Git

sudo apt-get install cmake

sudo apt-get install git

开始时sudo不能安装任何软件 ,如下命令得到解决:sudo apt-get install -f

2 安装Pangolin,用于可视化和用户接口

安装依赖项:

sudo apt-get install libglew-dev

sudo apt-get install libpython2.7-dev

先转到一个要存储Pangolin的路径下,例如~/Documents,然后

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

cd Pangolin

mkdir build

cd build

cmake ..

make –j

sudo make install

3 安装OpenCV

ubuntu16.04下安装opencv3.1.0

参考博文: http://www.cnblogs.com/feifanrensheng/p/8480286.html

安装opencv时,遇到cuda编译的问题 :cudalegacy/src/graphcuts.cpp:120:54: error: ‘NppiGraphcutState’ has not been declared

解决方案:需要修改一处源码:
在graphcuts.cpp中将
 
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)  
 
改为
 
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

4 安装Eigen3

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

 sudo apt-get install libeigen3-dev

Eigen头文件的默认位置在 “usr/include/eigen3”

如果不确定,可以通过以下命令查找

sudo updatedb

locate eigen3

5 安装ORBSLAM2

先转到自己打算存储ORBSLAM2工程的路径,然后执行下列命令

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

cd ORB_SLAM2

chmod +x build.sh

./build.sh

编译时遇到很多错误:/ORB_SLAM2/src/LocalMapping.cc:94:28: error: ‘usleep’ was not declared in this scope

需要打开相应的代码,在头文件里面添加usleep 的头文件unistd.h,很多源文件要添加感觉很不方便。

之后会在lib文件夹下生成libORB_SLAM2.so,并且在Examples文件夹下生成mono_tum,mono_kitti, rgbd_tum,stereo_kitti, mono_euroc 和 stereo_euroc。

6,用orb-slam2跑RGB-D Example中的TUM Dataset

      找了一个较小的数据集做测试

     主要参考这篇文章:https://www.cnblogs.com/bigzhao/p/6246084.html

   

1.按照要求下载数据集,我下载的是rgbd_dataset_freiburg2_pioneer_360,将其解压到你喜欢的目录.我个人放在了orbslam2工程目录下面了.

2.下载 associate.py.放在/ORB_SLAM2/Examples/RGB-D/目录下面.

3.打开终端,进入到associate.py所在目录,即/ORB_SLAM2/Examples/RGB-D/,之后运行

python associate.py PATH_TO_SEQUENCE/rgb.txt PATH_TO_SEQUENCE/depth.txt > associations.txt

这一步开始用默认的python3未成功,用python2成功了。

在该目录中将会生成一个associations.txt文件.

4.参照所给链接中的第3步,https://github.com/raulmur/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,给出他的制定目录位置

     

 

猜你喜欢

转载自blog.csdn.net/changquanhao/article/details/82986208