其实配置主要是首先保证Niviewer2能用,之后就简单很多了,所以在不能保证Niviewer2能出图像之前直接用Kinect2 跑ElasticFusion会失败的
1.安装openni2
sudo apt-add-repository ppa:deb-rob/ros-trusty && sudo apt-get update
sudo apt-get install libopenni2-dev
2.安装libfreenect2
参考:http://www.cnblogs.com/hitcm/p/5118196.html 只是在最后cmake的时候换成:
cmake .. -DBUILD_OPENNI2_DRIVER=ON
make
sudo make install
sudo cp ../platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/
测试: ./bin/Protonect
如果没有问题,则在此路径下执行如下操作:
sudo apt-get install openni2-utils
sudo make install-openni2
NiViewer2
如果能出图像,则成功了百分之八十
个人是这样理解的:ElasticFusion的驱动用的是openni2,但是kinect2用libfreenect2驱动,所以在编译的时候编译出来带openni2的libfreenect2,cmake .. -DBUILD_OPENNI2_DRIVER=ON,但是如果系统里面事先没装好openni2,是编译不出来的,所以先装好libopenni2-dev,这样就可以编译出来带openni2的libfreenect2的驱动,即能在build的lib中找到libfreenect2-openni2.so
另外,在自己电脑上也是经过了很久没折腾通,一直提示找不到设备,自己是通过参考这篇博客调通的,这篇博客就是在libfreenect2的build文件夹下安装了一些东西,自己上面的教程就是参考的提到的这篇博客.但是在师弟电脑上装就成功不了,是提示找不到设备,自己觉得有可能是自己在尝试之前装caffe的时候装了某些依赖项,但是很不确定,不知道是不是这么回事,反正感觉跟玄学似的,网上有人说openni2的Niviewer2本身鲁棒性就不强,不稳定也不知道真假,所以这部分还需要再花时间去确定一下,不然下次再装系统指定还得要麻烦找问题
自己后来在笔记本上直接下载的libfreenect2然后也不知道怎么着按上面的教程装了一下就成功了,看来不是装caffe的问题,自己后来总感觉是在运行Niviewer2的时候没调用用libfreenect2编译出来的Openni2驱动,而是直接调用的Openni2的驱动,有这个感觉是因为在能运行Niviewer2的电脑上不插kinect2运行时的结果会显示 Freenect2Impl enumerating devices …什么的,而在没安装成功的电脑上是直接显示的openDevice failed 就没有Freenect2Impl enumerating devices 的相关东西,所以感觉libfreenect2就没有用起来.