1. 程式人生 > >新系統安裝Elasticfusion

新系統安裝Elasticfusion

記住,Pangolin一定是最後安裝

電腦配置是:ubuntu14.04(64位)+GTX1070+CPU(i7)

按照之前部落格安裝Nvidia驅動、cuda、cudnn、opencv3、caffe、caffe-ssd後,

git clone https://github.com/mp3guy/Elasticfusion.git  

1、安裝cmake
直接在ubuntu軟體中心下載安裝,但是配置Elastic Fusion需要升級到3.2,否則自帶的是2.8
參考:http://askubuntu.com/questions/610291/how-to-install-cmake-3-2-on-ubuntu-14-04

  1. sudo apt-get install build-essential  
  2. wget http://www.cmake.org/files/v3.2/cmake-3.2.2.tar.gz  
  3. tar xf cmake-3.2.2.tar.gz  
  4. cd cmake-3.2.2  
  5. ./configure  
  6. make  
  7. sudo make install  
執行cmake --version檢視版本

如果提示找不到bin/cmake,那麼sudo apt-get upgrade就可以了


2、安裝OpenNI2

git clone https://github.com/occipital/OpenNI2.git
然後從https://github.com/occipital/OpenNI2/tree/kinect2/Source/Drivers/Kinect2找到Kinect2資料夾拷貝到OpenNI2/Source/Drivers裡面

如果在安裝依賴庫時找不到庫,那麼換源在進行。執行最後一步的時候failed,跳過,沒所謂

    •   sudo apt-get install g++
      
    •   sudo apt-get install python
      
        •   sudo apt-get install libusb-1.0-0-dev
          
          •   sudo apt-get install libudev-dev
            
                •   sudo apt-get install openjdk-6-jdk
                  
                    •   sudo apt-get install freeglut3-dev
                      
                        •   sudo apt-get install doxygen
                          
                            •   sudo apt-get install graphviz
                              
                            •   cd OpenNI-master;make

3、安裝Pangolin

同樣按照連結裡給出的,成功.pangolin是歲OpenGL輸入輸出和視訊顯示的庫,可用於3D視覺和3D導航的視覺圖。百度搜索"pangolin學習”有這方面的資料

sudo apt-get install libglew-dev


git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
make -j

4、安裝依賴項

  1. sudo apt-get install -y cmake-qt-gui git build-essential libusb-1.0-0-dev libudev-dev openjdk-7-jdk freeglut3-dev libglew-dev libsuitesparse-dev libeigen3-dev zlib1g-dev libjpeg-dev  
  2. 安裝pcl:
    1. sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl  
    2. sudo apt-get update  
    3. sudo apt-get install libpcl-all 
    安裝opengl:
    1. sudo apt-get install build-essential  
    2. sudo apt-get install libgl1-mesa-dev  
    3. sudo apt-get install libgl1-mesa-dev  
    4. sudo apt-get install libglu1-mesa-dev  
    5. sudo apt-get install freeglut3-dev  

5、配置kinect環境

之前在cuda、caffe等都有的系統裡配置用的kinect1沒有問題,但重灌系統後,執行配置完的./Elasticfusion會出現找不到裝置的問題,檢視github裡的issues-Works with Microsoft Kinect?這一問題,決定用Kinect2

6、安裝libfreenect2

cd depends
./download_debs_trusty.sh //執行這個非常慢,以後每次配置都用以前下好的debs包放到depends/debs裡面
sudo apt-get install build-essential cmake pkg-config
sudo apt-add-repository ppa:floe/libusb
sudo apt-get update
sudo apt-get install libusb-1.0-0-dev
sudo apt-get install libturbojpeg libjpeg-turbo8-dev
sudo dpkg -i debs/libglfw3*deb; sudo apt-get install -f; sudo apt-get install libgl1-mesa-dri-lts-vivid freeglut3-dev libxrandr-dev libxi-dev//會出現問題,先不用理會

接著安裝Opencl:

sudo apt-get install nvidia-modprobe opencl-headers ocl-icd-dev
  • 1

7、安裝openni2

sudo apt-add-repository ppa:deb-rob/ros-trusty && sudo apt-get update
 apt-get install libopenni2-dev
 sudo apt-get install openni2-utils  sudo make install-openni2 NiViewer2//有依賴不滿足時,直接刪除sudo apt-get purge xxx

8、編譯libfreenect2

cd ..
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/freenect2
make
sudo make install

9、獲得裝置udev許可權

sudo cp ../platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/

10、測試驅動是否安裝好

sudo chmod +x ./bin/Protonect  
./bin/Protonect cpu
./bin/Protonect gl
./bin/Protonect cl

測試Openni2: 
執行:

Niviewer2//必須保證這個可以成功!

11、編譯

注意原始碼裡有三個專案,Core、GPUTest和GUI

如果要使用作者的程式,則需要把三個專案安裝順序依次配置成功


  1. cd ../Core    
  2. mkdir build    
  3. cd build    
  4. cmake -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-7.5 ../src    
  5. make -j8    
  6. cd ../../GPUTest    
  7. mkdir build    
  8. cd build    
  9. cmake -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-7.5 ../src    
  10. make -j8    
  11. cd ../../GUI    
  12. mkdir build    
  13. cd build    
  14. cmake -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-7.5 ../src    
  15. make -j8    
之後就能在GUI/build中看到可執行項ElasticFusion。直接呼叫以下命令,預設從kinect2中獲取影象並開始三位重建
./ElasticFusion    
這時出現錯誤:

  1. error: GLSL 3.30 is not supported. Supported versions are: 1.00 ES, 1.10, 1.20, and 1.30  

這是一個關於顯示卡驅動支援的錯誤.

解決辦法:

.檢視一些引數
sudo dpkg --list | grep nvidia  不顯示NVIDIA的版本,說明有問題
lspci | grep -i nvidia   裝置裡的確有nvidia顯示卡

選擇在終端重灌nvidia驅動,而不是手動

  1. sudo apt-get remove --purge nvidia-*  
  2. (***提示cmake-qt-gui依賴cmake 2.8出錯,解除安裝cmake-qt-gui。解除安裝後cmake命令沒出錯,其他情況會不會出錯有待觀察)  
  3. sudo add-apt-repository ppa:xorg-edgers/ppa -y  
  4. sudo apt-get update  
  5. sudo apt-get install nvidia-367  
檢視安裝的版本
sudo dpkg --list | grep nvidia 這時就有nvidia的版本資訊了



sudo modprobe nvidia-384 (這裡nvidia-384是Tab鍵補全而來的) 手動啟用nvidia顯示卡

然後再次執行

  1. ./ElasticFusion    

如果出現這個問題:


那麼修改MainController.cpp 37行  (640,480)改為(512,424)

換了不同裝置這個值可能不一樣

成功!!!