前几天在安装ORB_SLAM2,记录一下踩过的坑.
1.建立root用户密码,建立ORB_SLAM2的文件夹
(1)打开终端,输入以下指令,设置密码
sudo passwd
(2)建立存放ORB_SLAM2的文件夹(第一条指令新建名为ORB_SLAM的文件夹,第二条命令进入ORB_SLAM文件夹)
mkdir ORB_SLAM
cd ORB_SLAM
2.安装需要的软件
(1)更新apt库(apt-get install soft-name 指令可一在Ubuntu下安装软件)
sudo apt-get update
(2)安装git
sudo apt-get install git
(3)安装cmake
sudo apt-get install cmake
(4)安装Pangolin(Pangolin是一个用于OpenGL显示/交互以及视频输入的一个轻量级、快速开发库)
安装依赖:
a.OpenGL
这一步参考这个链接,安装OpenGL
b.安装glew
sudo apt-get install libglew-dev
c.Boost(Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一)
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
d. Python2/Python3:
sudo apt-get install libpython2.7-dev
e.编译基础库
sudo apt-get install build-essential
安装Pangolin:
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
修改:上一条指令 cd Pangolin进入到了Pangolin这个文件夹,然后在以下路径中Pangolin/src/display/device/display_x11.cpp,注释掉第123行和124行(但是我自己没有找到这两行,如果你也没有那就不用管了)
//GLX_SAMPLE_BUFFERS , glx_sample_buffers,
//GLX_SAMPLES , glx_sample_buffers > 0 ? glx_samples : 0,
在终端输入
mkdir build
cd build
cmake -DCPP11_NO_BOOST=1 ..
make -j
(建议不要使用make -j,使用make。如果用make -j是使用多处理器编译,可能造成死机)
mkdir build
cd build
cmake -DCPP11_NO_BOOST=1 ..
make -j
(建议不要使用make -j,使用make。如果用make -j是使用多处理器编译,可能造成死机)
(5)安装OpenCV
安装依赖:
a.编译器相关:
sudo apt-get install build-essential
b.必须依赖:
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev
libavformat-dev libswscale-dev
c.可选安装:
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
安装OpenCV:
a.官网下载OpenCV 2.4.11 for Linux下载地址,解压到Ubuntu中
b.进入OpenCV文件夹,配置工程
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
c.编译
make
sudo make install
安装的时候注意终端是否有错误提示
(7)安装BLAS and LAPACK库
sudo apt-get install libblas-dev
sudo apt-get install liblapack-dev
3.安装ORB_SLAM:
(1)Clone the repository:
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
(2)编译:
cd ORB_SLAM2
chmod +x build.sh
修改./build.sh,先安装vim
sudo apt-get install vim
vim ./build.sh
用vim打开这个文件后,在最后一行改为make,然后按Esc键,输入:wq,保存退出.然后执行下面的命令
./build.sh
4.测试ORB_SLAM2
跑一个数据集测试一下,来一点成就感.我下载了一个RGBD的数据集,参考了下面的教程.这一步容易出问题的地方就是数据集的路径,路径要写正确,因为教程给的是他自己的数据集路径,
在跑数据集的时候遇到了一个问题
/ws/ORB_SLAM2/src/LoopClosing.cc: In member function ‘void ORB_SLAM2::LoopClosing::Run()’:
/ws/ORB_SLAM2/src/LoopClosing.cc:84:20: error: ‘usleep’ was not declared in this scope
usleep(5000);
/ws/ORB_SLAM2/src/LocalMapping.cc: In member function ‘void ORB_SLAM2::LocalMapping::Run()’:
/ws/ORB_SLAM2/src/LocalMapping.cc:94:28: error: ‘usleep’ was not declared in this scope
usleep(3000);
/ws/ORB_SLAM2/src/LocalMapping.cc:108:20: error: ‘usleep’ was not declared in this scope
usleep(3000);
这个问题在下面这个链接的参考下解决了