记住,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
- sudo apt-get install build-essential
- wget http://www.cmake.org/files/v3.2/cmake-3.2.2.tar.gz
- tar xf cmake-3.2.2.tar.gz
- cd cmake-3.2.2
- ./configure
- make
- sudo make install
如果提示找不到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、安装依赖项
- 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
- 安装pcl:
- sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
- sudo apt-get update
- sudo apt-get install libpcl-all
- sudo apt-get install build-essential
- sudo apt-get install libgl1-mesa-dev
- sudo apt-get install libgl1-mesa-dev
- sudo apt-get install libglu1-mesa-dev
- sudo apt-get install freeglut3-dev
5、配置kinect环境
之前在cuda、caffe等都有的系统里配置用的kinect1没有问题,但重装系统后,运行配置完的./Elasticfusion会出现找不到设备的问题,查看github里的issues-Works with Microsoft Kinect?这一问题,决定用Kinect2
6、安装libfreenect2
https://github.com/OpenKinect/libfreenect2,按照readme编译
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
如果要使用作者的程序,则需要把三个项目安装顺序依次配置成功
- cd ../Core
- mkdir build
- cd build
- cmake -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-7.5 ../src
- make -j8
- cd ../../GPUTest
- mkdir build
- cd build
- cmake -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-7.5 ../src
- make -j8
- cd ../../GUI
- mkdir build
- cd build
- cmake -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-7.5 ../src
- make -j8
./ElasticFusion
这时出现错误:
- 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驱动,而不是手动
- sudo apt-get remove --purge nvidia-*
- (***提示cmake-qt-gui依赖cmake 2.8出错,卸载cmake-qt-gui。卸载后cmake命令没出错,其他情况会不会出错有待观察)
- sudo add-apt-repository ppa:xorg-edgers/ppa -y
- sudo apt-get update
- sudo apt-get install nvidia-367
sudo dpkg --list | grep nvidia 这时就有nvidia的版本信息了
sudo modprobe nvidia-384 (这里nvidia-384是Tab键补全而来的) 手动启用nvidia显卡
然后再次运行
- ./ElasticFusion
如果出现这个问题:
那么修改MainController.cpp 37行 (640,480)改为(512,424)
换了不同设备这个值可能不一样
成功!!!