FastFusion是一个只用于SLAM建模的算法,输入depth图像,rgb图像与pose可以在CPU下实时建模。具体介绍见github
编译环境:ubuntu 16.04
编译流程:
1.安装编译OpenCV2.4.13:参照http://www.cnblogs.com/MnsterLu/p/5858557.html
2.安装git:
>sudo apt-get install git
如果报错说有什么软件安装不了:
>sudo apt-get update
>sudo apt-get update
3.安装qt4:
>sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer
4.安装Doxygen:
>sudo apt-get install doxygen
5.安装boost:
>sudo apt-get install libboost-dev
6.安装eigen:
>sudo apt-get install libeigen3-dev
7.安装libqlviewer:
>sudo apt-get install libqglviewer2 libqglviewer-dev libqglviewer-doc
8.安装libglew1.5:
>sudo apt-get install libglew1.5
安装GLUT:
>sudo apt-get install build-essential
>sudo apt-get install libgl1-mesa-dev
>sudo apt-get install libglu1-mesa-dev
>sudo apt-get install libglut-dev or sudo apt-get install freeglut3-dev
9.这些依赖项安装的差不多了,从github上下载fastfusion并编译:
>git clone https://github.com/tum-vision/fastfusion.git
>cd fastfusion
>cmake .
若此时报错找不到OpenCV_DIR,这样cmake:
>cmake -D OpenCV_DIR=/home/name/opencv-2.4.13/build .
如果还报缺少什么依赖项的错,那就缺什么装什么,基本上apt-get都能解决
再cmake会报这个错:invalid use of incomplete type ‘struct qglviewer::ManipulatedFrame’
解决办法:在onlinefusionviewer.cpp 中加入#include<QGLViewer/manipulatedFrame.h>
方法来自这里
再cmake报错: 找不到/usr/bin/ld: cannot find -lGL,-lboost_thread,-lboost_system
解决办法:http://blog.csdn.net/rev_fycd/article/details/6856300
安装一下libboost_thread和libboost_system
libGL.so.1系统里有改下名字
再cmake,就成功了~~~
然后:
>make
程序就编译好了。
10.按照github上的步骤制作二进制文件
11.最后运行时报错:Error in `./bin/onlinefusion’: realloc(): invalid pointer: 0x00007f541ff83840
这是因为ubuntu16.04的qt5与qt4冲突什么的
解决办法参考https://github.com/tum-vision/fastfusion/issues/9
和https://github.com/tum-vision/lsd_slam/issues/222
我用的这个人的方法:
先卸载qt5
>sudo apt-get purge --auto-remove qt5-default
再重新安装qglviewer:
qglviewer, decompress and cd into the folder, then qmake & make & sudo make install
结束。