Kinect2
相信对这个话题感兴趣的同学, 对Kinect2应该也是很熟悉的吧。 这个设备现在也不贵, 某东上面大概两千左右就能买到, 并且还能配置一个三脚架。 Kinect2的效果, 确实会比1代要好很多, 无论是骨骼点还是图像质量等等。 更详细的介绍, 感兴趣的同学可以自行Google, 在MS官网上面查看。
ROS
做机器人相关的工作的同学, 同时对该部分也不会陌生吧。 机器人操作系统(ROS), 应用非常广泛, 并且有很多开源库, 包可以使用。 同时, 主流的传感器在ROS中也都有支持。 当然, Kinect2也是能够支持的。 ROS安装于Ubuntu之上, 我使用的版本是Ubuntu14.04 + ROS indigo。 关于ROS的安装问题, 可以查看官网相关指导 。 很简单的步骤。 依次输入下列命令:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
上述指令执行完毕之后, ROS也就安装完成了。 当然, 紧接着还需要建立自己的工作空间。 执行下述代码:
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 6
驱动节点配置
在ROS环境里使用Kinect2, 主要依靠iai-kinect2这个包。 Github地址: https://github.com/code-iai/iai_kinect2 。
首先, 需要安装其libfreenect2, 步骤如下(以下默认以ubuntu14.04或更新的版本是系统版本, 别的系统, 参见原始网站说明):
libfreenect2
- 下载 libfreenect2 源码
- 1
- 2
- 1
- 2
- 下载upgrade deb 文件
- 1
- 1
- 2
- 安装编译工具
- 1
- 1
- 安装 libusb. 版本需求 >= 1.0.20.
- 1
- 1
- 安装 TurboJPEG
- 1
- 1
- 安装 OpenGL
- 1
- 2
- 3
- 1
- 2
- 3
(If the last command conflicts with other packages, don’t do it.) 原文如上提示, 我在安装的时候, 第三条指令确实出现了错误, 就直接忽略第三条指令了。
-
安装 OpenCL (可选)
-
Intel GPU:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
-
AMD GPU:
apt-get install opencl-headers
- 验证安装:
clinfo
-
-
安装 CUDA (可选, Nvidia only):
- (Ubuntu 14.04 only) Download
cuda-repo-ubuntu1404...*.deb
(“deb (network)”) from Nvidia website, follow their installation instructions, includingapt-get install cuda
which installs Nvidia graphics driver. - (Jetson TK1) It is preloaded.
- (Nvidia/Intel dual GPUs) After
apt-get install cuda
, usesudo prime-select intel
to use Intel GPU for desktop. - (Other) Follow Nvidia website’s instructions.
- (Ubuntu 14.04 only) Download
- 安装 VAAPI (可选, Intel only)
sudo dpkg -i debs/{libva,i965}*deb; sudo apt-get install
- 安装 OpenNI2 (可选)
- 1
- 2
- 1
- 2
- Build
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
针对上面cmake
命令的说明, 第一个参数, 是特别指定安装的位置, 你也可以指定别的你觉得高兴的地方, 但一般标准的路径是上述示例路径或者/usr/local
。 第二个参数是增加C++11的支持。
- 设定udev rules:
然后重新插拔Kinect2.cd .. sudo cp platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/
- 一切搞定, 现在可以尝试运行Demo程序:
./bin/Protonect
, 不出意外, 应该能够看到如下效果:
iai-kinect2
利用命令行从Github上面下载工程源码到工作空间内src文件夹内:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
针对于上述命令中最后一行指令, 需要说明的是, 如果前面libfreenect2你安装的位置不是标准的两个路径下, 需要提供参数指定libfreenect2所在路径:
- 1
- 1
编译结束, 一切OK的话, 会看到如下提示:
最后就是激动人心的时刻了, 在ROS中获取Kinect2的数据。
cd catkin_ws
source devel/setup.bash
roslaunch kinect2_bridge kinect2_bridge.launch
打开另外一个终端, 输入
rostopic list
, 可以查看到该节点发布出来的Topic, 或者依次输入cd catkin_ws
source devel/setup.bash
rosrun kinect2_viewer kinect2_viewer
来开启一个Viewer查看数据。 结果如下图所示: