Mac 下配置并运行DSO(Direct Sparse Odom
现将本人之前发在CSDN上的内容搬迁至简书,转载请注明来源https://www.jianshu.com/p/e20c2c0d101d,谢谢。
目前关于DSO(Direct Sparse Odometry)在Linux下的安装运行网上已经有了很多教程,我是在Mac 上跑的DSO,搭环境的时候在网上没找到Mac下的方法。
总得讲Mac下的搭建环境和Linux下基本相似,个别的地方有所出入。
下文中安装依赖包使用的都是brew命令,还没有安装Homebrew的自行安装
DSO的源代码在https://github.com/JakobEngel/dso,首先我们将dso工程git到电脑上,先cd到想要git的路径
git clone https://github.com/JakobEngel/dso.git
然后安装依赖项
1.安装依赖项
(1)安装suite-sparse
brew install suite-sparse
suite-sparse库中包含了很多基础依赖的文件,如果之后cmake的时候提示了 can not find CHOLMOD_INCLUDE_DIR等一般是因为没有安装suite-sparse或者是在cmakelist中没有设置好CHOLMOD等的路径
**
(2)安装eigen
brew install eigen
(3)安装opencv(可选)
建议安装opencv,一般以后跑各种项目都会需要用到opencv
brew install opencv
(4)安装Pangolin(可选)
Pangolin是DSO的可视化库,如果不安装Pangolin就看不到重建的效果了,所以建议安装
首先安装glew
brew install brew
安装cmake
说起来cmake我是又爱又恨,很多时候cmake确实很好用,但是学习cmake又需要一定的学习成本,之后在使用cmake编译的时候出现的问题除了环境没有搭好外应该就是cmakelist中路径设置出现问题,关于cmake路径设置烦请大家自行搜索学习
brew install cmake
安装Pangolin
首先进入dso文件下thirdparty文件下
cd /Users/charlie/dso/thirdparty
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
make
(5)安装libzip(可选)
这个包是用来自动解压zip文件的,建议安装不然之后需要自行解压zip文件,很麻烦
brew install libzip
cd /Users/charlie/dso/thirdparty
tar -zxvf libzip-1.1.1.tar.gz
cd libzip-1.1.1/
./configure
make
make install
sudo cp lib/zipconf.h /usr/local/include/zipconf.h
到此环境就搭好啦
2.编译并运行DSO
首先cd进dso文件内
mkdir build
cd build
cmake ..
make
如果cmake通过并make成功的话在dso/build/lib中有libdso.a库文件,如果上述过程安装了Pangolin的话,在dso/build/bin中有dso_dataset文件,使用data_set可运行数据集。数据集从https://vision.in.tum.de/data/datasets/mono-dataset?redirect=1下载。
下载完后将数据集复制到build/bin下并解压,以下以01数据集为例,用其他数据集自行修改一下,在终端中运行
./dso_dataset files=./sequence_01/images.zip calib=./sequence_01/camera.txt gamma=./sequence_01/pcalib.txt vignette=./sequence_01/vignette.png preset=0 mode=0
若未安装ziplib需要手动解压images.zip并将代码修改为images即可。
此外,在Mac上我使用的Xcode 9 存在一个问题就是在make的时候出现static_assert failed "Allocator::value_type must be same type as value_type",这个问题通过https://github.com/JakobEngel/dso/issues/111的方法可以解决。