简介:前端时间配置了lsd-slam,发现实际运行起来没有想象中的好。但是毕竟那是2014年的技术了。同时在slam14讲中,看到了同样能够运行单目的dso-slam,其实慕尼黑工业大学2016年发表的,并且代码已经在github上开源了,所以今天讲一下ubuntu14.04配置dso-slam的过程。同时我会将安装过程中遇到的问题
一.推荐安装教程
官方readme中有很详细的安装教程https://github.com/JakobEngel/dso;但是对于看见英文不舒服的,还是看我的教程吧。
二.安装所需依赖库
1.必备依赖库eigen3
sudo apt-get install libsuitesparse-dev libeigen3-dev libboost-all-dev
2.可选依赖库
①opencv(强烈推荐:数据集运行dso必须):
用于读/写/显示图片;Opencv主要用在IOWrapper/OpenCV/这个文件夹。没有Opencv,来自IOWrapper/_dummy.cpp的函数将会被编译。但是不工作。因为如果不能从磁盘中读文件二进制可执行文件就不会被创建。如果你不想用Opencv,你也可以使用你喜欢的能够实现相同函数功能的库。
sudo apt-get install libopencv-dev
②pangolin(强烈推荐:数据集运行dso必须):
用于3D可视化以及定制UI。Pangolin只会用于IOWrapper/Pangolin/*这个文件。如果你编译时不存在pangolin这个库,那么编译完成的函数将不会有任何可视化/GUI功能。你也可以使用其他的库代替它
安装: https://github.com/stevenlovegrove/Pangolin
③ziplib(推荐):用于读取压缩包中的数据集。比如读取TUM monoVO数据集,此时不再需要解压缩。
sudo apt-get install zlib1g-dev
cd dso/thirdparty
tar -zxvf libzip-1.1.1.tar.gz
cd libzip-1.1.1/
./configure
make
sudo make install
sudo cp lib/zipconf.h /usr/local/include/zipconf.h # (no idea why that is needed).
④sse2neon(ARM编译必须)
在下代码后输入
shell git submodule update --i
在编译过程中自动将Inter-native sse转为ARM-native NEON。
三.dso安装
git clone https://github.com/JakobEngel/dso.git
cd dso
mkdir build
cd build
cmake ..
make -j4
将会编译一个libdso.a的静态库,其能够被其他项目连接;同时会编译一个二进制可执行文件dso_dataset,用于dso运行数据集。(dso运行数据集的前提是OpenCV与Pangolin都已经安装。)
四.按照安装教程出现的问题
原因:pangolin没有安装正确;重新cmake pangolin报错;按照官方教程安装会有编译错误。
解决方法二:https://blog.youkuaiyun.com/zzu_seu/article/details/84866858