ubuntu16.04 安装OpenNI并运行kinnectfusion

由于OpenNI是ubuntu12.04以前使用的驱动kinnect的库,现在用起来有很多的不便,用心的系统运行旧的设备,有诸多问题。现总结流程如下:

环境:Ubuntu16.04 64bit

   Kinect V1 XBOX 360

1.安装OpenNI并试运行

https://sigmaoctantis.wordpress.com/2015/07/07/kinect-installation-in-ubuntu-14-10/

基本流程参照以上链接,有几个地方需要注意:

1).NITE1.5 下载不到了,可以手动搜索NITE-Bin-Dev-Linux-x64-v1.5.2.21并下载,我在这里下载的v1.5.2.23版本,亲测可以使用。

2).如果没有在python用到OpenNI,那Copy it your python version library中sudo cp ./lib/openni.so /usr/lib/pymodules/python2.7/这一步不用执行。

2.安装相关依赖项和库

1)一起写到这里,先都装了吧,早晚都要用。

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev

sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

sudo add-apt-repository ppa:openjdk-r/ppa //新的版本没有这个库了 自己加载
sudo apt-get update

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 libboost1.58-dev libboost1.58-all-dev libeigen3-dev libflann-dev libvtk5-dev libqhull-dev
sudo apt-get install libopenni-dev libopenni2-dev //主要用于环境配置16.04之前不能直接装

2)安装opencv3.2.0,从官网下下来,cmake make make install安装即可,注意前面的库都要装上,不然有的模块opencv默认就不安装了。 

3.kinfu运行

kinfu_remake git 下载 进入程序路径:

mkdir build 
cd build
ccmake ..

按t进入高级配置窗口,OpenNI的lib路径不要选根目录那个(默认是这个),改成我们自己装的那个libopenni.so

或者执行 cmake -DCMAKE_BUILD_TYPE=Debug -DOPENNI_LIBRARY=/home/lsp/kinect/OpenNI/Platform/Linux/Bin/x64-Release/libOpenNI.so ..

然后 

make -j8
bin/demo

可以运行了。

个人理解:

为什么要这么做呢,因为新的Ubuntu版本,可以直接install libopenni。但是libopenni.so没有链接到libFreenectDriver.so Kinect相机驱动,所以需要用已连接好的驱动。

原文地址:https://www.cnblogs.com/sp-li/p/7680515.html