在安装openni2的时候需要安装OpenNI2-FreenectDriver。
OpenNI2安装一些依赖软件:
$ sudo apt-get install git g++ make python libusb-1.0-0-dev libudev-dev pkg-config
Clone OpenNI2:
下载openni:
https://github.com/occipital/OpenNI2/tree/2.2-beta2
或用git:
$ git clone https://github.com/occipital/OpenNI2
$ git checkout -b 2.2-beta2
$ cd OpenNI2
修改ThirdParty/PSCommon/BuildSystem/Platform.Arm文件:
$ vim ThirdParty/PSCommon/BuildSystem/Platform.Arm
将
CFLAGS += -march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp #-mcpu=cortex-a8
替换成:
CFLAGS += -march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard
然后编译:
PLATFORM=Arm make
编译结束之后,安装:
$ cd /Packaging/Linux
$ sudo ./install.sh
将library和include拷贝到系统目录中去:
$ sudo cp -r Include /usr/include/openni2
$ sudo cp -r Bin/Arm-Release/OpenNI2 /usr/lib/
$ sudo cp Bin/Arm-Release/libOpenNI2.* /usr/lib/
2. 新建一个.pc文件
新建一个package config文件:
$ sudo vim /usr/lib/pkgconfig/libopenni2.pc
填入下面的内容,以配置编译时需要的库设置:
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/openni2
Name: OpenNI2
Description: A general purpose driver for all OpenNI cameras.
Version: 2.2.0.0
Cflags: -I${includedir}
Libs: -L${libdir} -lOpenNI2 -L${libdir}/OpenNI2/Drivers -lDummyDevice -lOniFile -lPS1080.so
通过这个文件,pkg-config能够输出编译器、链接器需要的参数以及已安装软件包的版本信息。检测一下能否被正确找到:
$ pkg-config --modversion libopenni2
如果版本号是2.2.0.0,没问题。
3安装OpenNI2-FreenectDriver
$ mkdir build
$ cd build
$ cmake .. -DBUILD_OPENNI2_DRIVER=ON
$ make
$ Repository="/example/path/to/Samples/Bin/OpenNI2/Drivers/"
$ cp -L lib/OpenNI2-FreenectDriver/libFreenectDriver.{so,dylib} ${Repository}
# you could instead make a symlink to avoid copying after every build
# ln -s lib/OpenNI2-FreenectDriver/libFreenectDriver.{so,dylib} ${Repository}
4. 测试
接下来测试是否安装成功。首先,安装CORE_SAMPLES,在Makefile最后一行添加:
core_samples: $(CORE_SAMPLES)
编译:
$ PLATFORM=Arm make core_samples
将 kinect接上,运行:
$ ./Bin/Arm-Release/SimpleRead
如果你能看到传感器的数据,并且当手在摄像头前方摆动时,数据在变化,则安装成功了。