ICE-BA是百度刘浩敏博士开源的视觉惯性系统,主要是对提出了新颖的BA优化算法。
代码网址:https://github.com/baidu/ICE-BA
安装教程:
1.安装平台是Ubuntu14.04或者Ubuntu16.04,本问使用的是Ubuntu14.04,请首先安装好此系统
2.boost和eigen安装
直接运行下面的命令即可,较为简单
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install libeigen3-de
3.Gflag和Glog安装
(1)下载gflags
git clone https://github.com/gflags/gflags
(2)编译安装
mkdir build
cd build
cmake ..
make -j5
sudo make install
(3)下载Glog
git clone https://github.com/google/glog
(4)编译安装
./autogen.sh
./configure
make -j5
sudo make install
安装gflag的过程中出现了下面的问题:
undefined reference to 'FlagRegisterer::FlagRegisterer'
解决方法是:
(1)下载gflags
(2)cmake .. -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DBUILD_gflags_LIB=ON
(3)编译安装gflags:make and make install
(4)下载glog
(5)export LDFLAGS='-L/usr/local/lib' # since my gflags lib is installed under /usr/local/lib
(6)编译安装gflog
4.安装OpenCV
推荐使用OpenCV 3.0.0,我使用的是3.1.0版本的。安装过程网上很多,参考高翔博士《视觉SLAM十四讲》中安装即可
5.安装Yaml
安装Yaml遇到了很多坑,导致后面的程序编译出现错误
(1)下载地址如下,解压进入到目录中
https://github.com/jbeder/yaml-cpp/releases
(2)编译安装
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=ON ..
(会生成.so库,.a的话就是用OFF)
这里选择-DBUILD_SHARED_LIBS=ON,(生成.so)而不是-DBUILD_SHARED_LIBS=OFF,因为后面编译ICE-BA的时候需要的是.so链接库,如果这里,选择了OFF,后面的编译会出现下面的错误:
/usr/bin/ld: /usr/local/lib/libyaml.a(xxx.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC
6.安装brisk
(1)下载地址如下,解压进入到目录中
https://github.com/gwli/brisk
(2)编译安装
cd brisk
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j8
7.最后编译安装ICE-BA
cd ice-ba
chmod +x build.sh
./build.sh
最终的可执行程序在bin/iec-ba,直接运行目录下的run_ice_ba.sh即可,当然要更该相应的数据集位置和信息。