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
結束。