Pangolin
从官网地址下载最新稳定版并解压缩,安装脚本如下。
注:不用下载最新master版,编译的时候有错误,v0.6稳定版则没有问题。
# 安装依赖项
sudo apt-get install libglew-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev
sudo apt-get install libpng-dev
# 配置并编译
cd Pangolin
mkdir build && cd build
cmake -DCPP11_NO_BOOST=1 ..
make -j
sudo make install
# 验证
cd examples/HelloPangolin
mkdir build && cd build
cmake ..
make
./HelloPangolin
如果弹出窗口并显示如下正方体,则表示安装成功。
OpenCV
从官网下载OpenCV 3的最新版本的源码,这里是3.4.15。
# 安装依赖项
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev
sudo apt install libcanberra-gtk-module libcanberra-gtk3-module
# 配置并编译
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j
sudo make install
ORB-SLAM2
正常编译命令如下:
cd ORB_SLAM2
chmod +x build.sh
./build.sh
如果遇到以下错误,请按照下面的提示修改。
错误1: std::map must have the same value_type as its allocator
这里需要将 ORB_SLAM2/include/LoopClosing.h::47 处的
typedef map<KeyFrame *, g2o::Sim3, std::less<KeyFrame *>, Eigen::aligned_allocator<std::pair<const KeyFrame*, g2o::Sim3>>> KeyFrameAndPose;
修改为
typedef map<KeyFrame *, g2o::Sim3, std::less<KeyFrame *>, Eigen::aligned_allocator<std::pair<KeyFrame *const, g2o::Sim3>>> KeyFrameAndPose;
错误2: ‘usleep’ was not declared in this scope
需要添加头文件
#include<unistd.h>
需要添加此句的文件如下:
Examples/Monocular/mono_euroc.cc
Examples/Monocular/mono_kitti.cc
Examples/Monocular/mono_tum.cc
Examples/RGB-D/rgbd_tum.cc
Examples/Stereo/stereo_euroc.cc
Examples/Stereo/stereo_kitti.cc
src/LocalMapping.cc
src/LoopClosing.cc
src/System.cc
src/Tracking.cc
src/Viewer.cc
Demos
编译完成后会在ORB_SLAM2/Examples文件夹下生成各种可执行文件。
单目
从TUM官网下载数据集,这里下载的是第一个,即fr1/xyz,大小为0.47G,解压缩后名称为rgbd_dataset_freiburg1_xyz。
这里我在ORB_SLAM2下创建了一个名为 datasets 的文件夹,并使用 ln -s 命令创建了上述文件夹的软连接(可以避免VSCode之类的IDE加载太慢),如下所示:
之后即可参照官网示例运行单目Demo。
/Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml datasets/rgbd_dataset_freiburg1_xyz
RGBD
python2 和 pip2
sudo add-apt-repository universe
sudo apt update
sudo apt install python2
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
sudo python2 get-pip.py
pip2 --version
# 输出:pip 20.3.4 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
pip2 安装插件
pip2 install numpy
关联RGB图像和深度图像
下载脚本 associate.py ,在数据集文件夹打开终端,并执行如下命令
python2 associate.py rgb.txt depth.txt > associations.txt
如果程序正常执行,即可生成 associations.txt 文件。
Demo运行
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml datasets/rgbd_dataset_freiburg1_xyz datasets/rgbd_dataset_freiburg1_xyz/associations.txt