Kinect_V1在Debian testing的配置指北 | Blurred code

Kinect_V1在Debian testing的配置指北

2019/08/29

LastMod:2019/08/29

Categories: cpp

坑在哪里

在Linux下驱动Kinect V1现在有两种方式,一种是使用OpenNI + SensorKinect + Nite的方案,一种是使用OpenNI2 + libfreenect的方案,第一种我没有尝试,第二种的话,Debian有坑。 Debian的包管理自带有LibOpenNI-devLibOpenNI2-dev,这个是PCL库的前置依赖,理论上来说,通过apt装上libfreenect-dev就可以了。然而,OpenNI2libfreenect连接, 需要在libfreenect的编译选项里打开BUILD_OPENNI2_DRIVER,然而Debian自带的库不带这一点,因此需要手动编译,不然会出现这样的错误。

SimpleViewer: Device open failed:
DeviceOpen using default: no devices found

解决方案

根据OpenNI2-FreenectDriver的链接,首选需要一个>=2.2.033版本的OpenNI2。 可以从github下载预编译版本,也可以自己手动编译。然后需要手动编译libfreenect

 mkdir build
 cd build
 cmake .. -DBUILD_OPENNI2_DRIVER=ON
 make

编译的结果里会有一个libFreenectDriver.so,这就是所缺少的文件。接下来:

  1. 备份Debian自带的/lib/libOpenNI2.so/lib/OpenNI2/,删掉他们,再刚刚下载的OpenNI2中找到对应的文件,复制到系统对应位置去替换他们。
  2. libFreenectDriver.so文件放入/lib/OpenNI2/Drivers
  3. 由于Debian的打包策略,可能还需要建立一些libxxx.so.0类似的软链接。