什么是libfreenect2
libfreenect2是一个针对kinect v2的非官方驱动,它是开源的,当我们在官方驱动不能满足需求的时候就可以使用它。
支持的功能
RGB 彩色图的获取
IR 和深度图的获取
彩色图和深度图的配准
支持多kinectv2
它没有像官方驱动中集成丰富的算法比如骨骼追踪,但是可以支持多个kinect v2同时工作。
1.下载libfreenect2的源码
git clone https://github.com/OpenKinect/libfreenect2.git
cd libfreenect2
这个过程可能会安装失败 原因是连不上外网,在安装的过程中可以多试几次。
以下步骤都在libfreenect2下进行操作
2。安装bulid工具(编译工具)
sudo apt-get install build-essential cmake pkg-config
3.安装所需要的依赖
sudo apt-get install libusb-1.0-0-dev 安装libusb(版本应>=1.0.20)
sudo apt-get install libturbojpeg libjpeg-turbo8-dev 安装TurboJPEG
sudo apt-get install libglfw3-dev 安装OpenGL
sudo apt-get install libopenni2-dev 安装OpenNI2
4.编译构建:
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/ #修改了原来的安装位置
make
sudo make install #这里直接用root权限安装,如果是普通权限有的时候会出现安装不成功的情况
5.设置udev规则:
./bin/Protonect #重新接入之后运行测试
sudo apt-get install openni2-utils && sudo make install-openni2 && NiViewer2 #可选测试
6.将kinect重新接入,运行测试命令;
./bin/Protonect #重新接入之后运行测试
sudo apt-get install openni2-utils && sudo make install-openni2 && NiViewer2 #可选测试
可能需要重启板子进行接入摄像头,目前成功图没有截上,后续年假回实验室后补图;
补充名词介绍:(小白篇)
关于以上安装驱动的名词介绍:
(1)Libusb:linux里的软件分为用户层和内核层两种。比如内核里编译了温度传感器的驱动,还得有lm-sensors在用户层负责解释处理内核递交出的数据。usb驱动是硬件驱动方面的东西,libusb是给应用软件开发和usb驱动协同操作(在底层读取usb内容)的功能时提供的库。
(2)TurboJPEG :处理图像解码之类的
(3)OpenGL:OpenGL,也就是Open Graphics Library。其主要就是用于我们去渲染2D、3D矢量图形的一种跨语言、跨平台的应用程序编程接口。
(4) OpenNI2:OpenNI中文译为开放自然语言交互,用官方的表述来讲就是a standard framework for 3D sensing,用于3D感知的开发接口;OpenNI2是第二代版本,相对于第一代更加专注于对3D设备的支持和数据的获取,移除了手势识别等中间件的方式,代码更加的精简,简而言之OpenNI2就是一个RGBD相机的用户态驱动,对上提供统一的接口,方便用户获取RGBD的图像数据,对下提供统一的标准类,方便RGBD厂商进行适配;目前OpenNI2支持的设备包括PS1080、PSLink、orbbec、Kinect等设备,由于其清晰的代码结构,很容易对第三方设备进行适配.
下一篇更新 :
Jetson TX2 +Ubuntu 18.04安装配置Azure kinect SDK 以及遇到的问题