ROS indigo下Kinect v2的驱动安装与调试

一、libfreenect2源码安装与测试

github地址:https://github.com/OpenKinect/libfreenect2

最终测试终端显示如下:

yuanlibin@yuanlibin:~/libfreenect2/build$ ./bin/Protonect
Version: 0.2.
Environment variables: LOGFILE=<protonect.log>
Usage: ./bin/Protonect [-gpu=<id>] [gl | cl | clkde | cuda | cudakde | cpu] [<device serial>]
[-noviewer] [-norgb | -nodepth] [-help] [-version]
[-frames <number of frames to process>]
To pause and unpause: pkill -USR1 Protonect
[Info] [Freenect2Impl] enumerating devices...
[Info] [Freenect2Impl] usb devices connected
[Error] [Freenect2Impl] failed to open Kinect v2: @: LIBUSB_ERROR_ACCESS Access denied (insufficient permissions)
[Info] [Freenect2Impl] found devices
no device connected!
yuanlibin@yuanlibin:~/libfreenect2/build$ sudo ./bin/Protonect
Version: 0.2.
Environment variables: LOGFILE=<protonect.log>
Usage: ./bin/Protonect [-gpu=<id>] [gl | cl | clkde | cuda | cudakde | cpu] [<device serial>]
[-noviewer] [-norgb | -nodepth] [-help] [-version]
[-frames <number of frames to process>]
To pause and unpause: pkill -USR1 Protonect
[Info] [Freenect2Impl] enumerating devices...
[Info] [Freenect2Impl] usb devices connected
[Info] [Freenect2Impl] found valid Kinect v2 @: with serial
[Info] [Freenect2Impl] found devices
[Info] [Freenect2DeviceImpl] opening...
[Info] [Freenect2DeviceImpl] transfer pool sizes rgb: * ir: **
[Info] [Freenect2DeviceImpl] opened
[Info] [Freenect2DeviceImpl] starting...
[Debug] [Freenect2DeviceImpl] status 0x090000:
[Debug] [Freenect2DeviceImpl] status 0x090000:
[Info] [Freenect2DeviceImpl] submitting rgb transfers...
[Info] [Freenect2DeviceImpl] submitting depth transfers...
[Info] [Freenect2DeviceImpl] started
device serial:
device firmware: 2.3.3913.0
[Debug] [DepthPacketStreamParser] not all subsequences received
[Debug] [DepthPacketStreamParser] skipping depth packet
[Debug] [DepthPacketStreamParser] skipping depth packet
[Debug] [DepthPacketStreamParser] skipping depth packet
[Debug] [DepthPacketStreamParser] skipping depth packet
[Debug] [RgbPacketStreamParser] skipping rgb packet!
[Info] [DepthPacketStreamParser] packets were lost
[Info] [OpenGLDepthPacketProcessor] avg. time: .45557ms -> ~.905Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .7065ms -> ~.9972Hz
[Debug] [DepthPacketStreamParser] skipping depth packet
[Info] [DepthPacketStreamParser] packets were lost
[Info] [OpenGLDepthPacketProcessor] avg. time: .00361ms -> ~.783Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .0946ms -> ~.9491Hz
[Debug] [DepthPacketStreamParser] skipping depth packet
[Info] [DepthPacketStreamParser] packets were lost
[Info] [OpenGLDepthPacketProcessor] avg. time: .18776ms -> ~.609Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .1463ms -> ~.6897Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .06018ms -> ~.621Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .4458ms -> ~.2242Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .03082ms -> ~.775Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .595ms -> ~.5168Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .10736ms -> ~.796Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .1131ms -> ~.1676Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .05573ms -> ~.795Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .2058ms -> ~.3937Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .19326ms -> ~.557Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .9728ms -> ~.5675Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .41113ms -> ~.804Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .4546ms -> ~.1822Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .85608ms -> ~.763Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .8185ms -> ~.4832Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .48623ms -> ~.173Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .9838ms -> ~.7385Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .83449ms -> ~.683Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .2176ms -> ~.7133Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .5814ms -> ~.3453Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .1936ms -> ~.817Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .2376ms -> ~.9869Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .3206ms -> ~.2715Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .45ms -> ~.6942Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .2756ms -> ~.4638Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .9264ms -> ~.741Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .1589ms -> ~.9679Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .85152ms -> ~.507Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .096ms -> ~.2426Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .81726ms -> ~.861Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .9504ms -> ~.8881Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .81506ms -> ~.884Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .9432ms -> ~.9201Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .83013ms -> ~.728Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .9232ms -> ~.0098Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .37377ms -> ~.616Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .6522ms -> ~.2493Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .17901ms -> ~.295Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .5835ms -> ~.5707Hz
[Info] [OpenGLDepthPacketProcessor] avg. time: .17929ms -> ~.289Hz
[Info] [TurboJpegRgbPacketProcessor] avg. time: .2584ms -> ~.5379Hz
[Info] [Freenect2DeviceImpl] stopping...
[Info] [Freenect2DeviceImpl] canceling rgb transfers...
[Info] [Freenect2DeviceImpl] canceling depth transfers...
[Info] [Freenect2DeviceImpl] stopped
[Info] [Freenect2DeviceImpl] closing...
[Info] [Freenect2DeviceImpl] releasing usb interfaces...
[Info] [Freenect2DeviceImpl] deallocating usb transfer pools...
[Info] [Freenect2DeviceImpl] closing usb device...
[Info] [Freenect2DeviceImpl] closed
[Info] [Freenect2DeviceImpl] closing...
[Info] [Freenect2DeviceImpl] already closed, doing nothing

二、iai-kinect2源码安装与测试

github地址:https://github.com/code-iai/iai_kinect2

说明:

在安装依赖项中需要opencv2.4.*,不能用opencv3.*。

测试过程中先默认路径安装了opencv2.4.9,然后安装iai-kinect2,可以正常运行。但是指定路径安装了opencv3.1.0就无法运行了。

但是在默认路径安装了opencv2.4.9后,先指定路径安装了opencv3.1.0,最后安装iai-kinect2,是可以正常运行的。

1. 新建一个catkin_ws工作空间,编译安装iai-kinect2

mkdir catkin_ws
cd catkin_ws
mkdir src
cd src
git clone https://github.com/code-iai/iai_kinect2.git
cd iai_kinect2
rosdep install -r --from-paths .
cd ~/catkin_ws
catkin_make -DCMAKE_BUILD_TYPE="Release"
rospack profile

2. 测试是否安装成功

roslaunch kinect2_bridge kinect2_bridge.launch

若出现以下错误:

[FATAL] [1479522843.484561710]: Failed to load nodelet '/kinect2_points_xyzrgb_qhd` of type `depth_image_proc/point_cloud_xyzrgb` to manager `kinect2'
[FATAL] [1479522843.485011986]: Failed to load nodelet '/kinect2_points_xyzrgb_sd` of type `depth_image_proc/point_cloud_xyzrgb` to manager `kinect2'
[FATAL] [1479522843.485174496]: Failed to load nodelet '/kinect2_bridge` of type `kinect2_bridge/kinect2_bridge_nodelet` to manager `kinect2'
[kinect2-] process has died [pid , exit code -, cmd /opt/ros/indigo/lib/nodelet/nodelet manager __name:=kinect2 __log:=/home/yuanlibin/.ros/log/a0154834-ae00-11e6--1c1b0d61bf22/kinect2-.log].
log file: /home/yuanlibin/.ros/log/a0154834-ae00-11e6--1c1b0d61bf22/kinect2-*.log
[kinect2_bridge-] process has died [pid , exit code , cmd /opt/ros/indigo/lib/nodelet/nodelet load kinect2_bridge/kinect2_bridge_nodelet kinect2 __name:=kinect2_bridge __log:=/home/yuanlibin/.ros/log/a0154834-ae00-11e6--1c1b0d61bf22/kinect2_bridge-.log].
log file: /home/yuanlibin/.ros/log/a0154834-ae00-11e6--1c1b0d61bf22/kinect2_bridge-*.log
[kinect2_bridge-] restarting process
process[kinect2_bridge-]: started with pid []
[ INFO] [1479522843.775811528]: Loading nodelet /kinect2_bridge of type kinect2_bridge/kinect2_bridge_nodelet to manager kinect2 with the following remappings:
[ INFO] [1479522843.777704976]: waitForService: Service [/kinect2/load_nodelet] could not connect to host [yuanlibin:], waiting...
[kinect2_points_xyzrgb_sd-] process has died [pid , exit code , cmd /opt/ros/indigo/lib/nodelet/nodelet load depth_image_proc/point_cloud_xyzrgb kinect2 rgb/camera_info:=kinect2/sd/camera_info rgb/image_rect_color:=kinect2/sd/image_color_rect depth_registered/image_rect:=kinect2/sd/image_depth_rect depth_registered/points:=kinect2/sd/points __name:=kinect2_points_xyzrgb_sd __log:=/home/yuanlibin/.ros/log/a0154834-ae00-11e6--1c1b0d61bf22/kinect2_points_xyzrgb_sd-.log].
log file: /home/yuanlibin/.ros/log/a0154834-ae00-11e6--1c1b0d61bf22/kinect2_points_xyzrgb_sd-*.log
[kinect2_points_xyzrgb_qhd-] process has died [pid , exit code , cmd /opt/ros/indigo/lib/nodelet/nodelet load depth_image_proc/point_cloud_xyzrgb kinect2 rgb/camera_info:=kinect2/qhd/camera_info rgb/image_rect_color:=kinect2/qhd/image_color_rect depth_registered/image_rect:=kinect2/qhd/image_depth_rect depth_registered/points:=kinect2/qhd/points __name:=kinect2_points_xyzrgb_qhd __log:=/home/yuanlibin/.ros/log/a0154834-ae00-11e6--1c1b0d61bf22/kinect2_points_xyzrgb_qhd-.log].
log file: /home/yuanlibin/.ros/log/a0154834-ae00-11e6--1c1b0d61bf22/kinect2_points_xyzrgb_qhd-*.log
[kinect2_points_xyzrgb_sd-] restarting process
process[kinect2_points_xyzrgb_sd-]: started with pid []
[kinect2_points_xyzrgb_qhd-] restarting process
process[kinect2_points_xyzrgb_qhd-]: started with pid []
[kinect2_points_xyzrgb_hd-] process has finished cleanly
log file: /home/yuanlibin/.ros/log/a0154834-ae00-11e6--1c1b0d61bf22/kinect2_points_xyzrgb_hd-*.log
[kinect2_points_xyzrgb_hd-] restarting process
process[kinect2_points_xyzrgb_hd-]: started with pid []

是因为在.bashrc文件中要添加如下代码,并且要注释掉原来的rgbdslam_catkin_ws的那行代码

#source /home/yuanlibin/rgbdslam_catkin_ws/devel/setup.bash
source /home/yuanlibin/catkin_ws/devel/setup.bash

最后测试

终端1

roslaunch kinect2_bridge kinect2_bridge.launch

终端2

rosrun kinect2_viewer kinect2_viewer

测试成功。

此时,可以按空格或者s键单张采集彩色图、深度图及其对应的点云图图像。

如果要连续采集图像,请参考博文:http://blog.csdn.net/sunbibei/article/details/51594824

ROS indigo下Kinect v2的驱动安装与调试的更多相关文章

  1. ROS indigo下Kinect v1的驱动安装与调试

    ROS indigo下Kinect v1的驱动安装与调试 本文简要叙述了在ROS indigo版本下Kinect v1的驱动安装与调试过程. 1. 实验环境 (1)硬件:  台式机和Kinect v1 ...

  2. ubuntu14.04 and ros indigo install kinect driver--16

    摘要: 原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 今日多次测设ros indigo install kinect driver ,提示各种失败,然 ...

  3. ubuntu14.04下nodejs + npm + bower的安装、调试和部署

      1. 简介 本文介绍ubuntu14.04下nodejs+npm+bower的安装.调试和部署 参考文档 https://docs.npmjs.com/getting-started https: ...

  4. ubuntu14.04下 Kinect V2+Ros接口安装

    1. 首先git下载代码,放到主文件夹下面 git clone https://github.com/OpenKinect/libfreenect2.git 2. 然后安装依赖项如下,最好事先编译安装 ...

  5. win7下Arduino Mega 2560驱动安装失败解决办法

    因为玩四轴用的apm的飞控板,而其需要安装此驱动,曾经在win8使用其,但是因为win8有相对应的数字证书保护措施(应该是这样的,因为好久了记不清楚了),以至于我每次都需要长按shift重启电脑关闭此 ...

  6. 机器人操作系统ROS Indigo 入门学习(1)——安装ROS Indigo【转】

    转自:http://blog.csdn.net/bobsweetie/article/details/43638761 Ubuntu14.04安装ROS Indigo 一.安装ROS 1.1配置Ubu ...

  7. 腾达Tenda W311MA无线网卡Linux下驱动安装

    菜鸟看这里https://help.ubuntu.com/community/WifiD ... enda_W311M 最近也买了颗Tenda W311M网卡,简单说一下驱动的安装和hostapd做S ...

  8. ARM驱动:SEC S3C2410X Test B/D USB驱动 安装

    s3c2410x驱动是一款非常好用的usb驱动程序,win7 64位下mini2440 USB下载驱动安装,解决win7下安装SEC S3C2410X Test B/D 驱动出现叹号的问题.如果你开始 ...

  9. Ubuntu 16.04 安装Kinect V2驱动

    1.下载源代码 git clone https://github.com/OpenKinect/libfreenect2.git 2.依赖项安装 sudo apt-get install build- ...

随机推荐

  1. JDBC 学习复习8 C3P0数据源使用

    C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.目前使用它的开源项目有Hibernate,Spring等. c3p0与dbcp区别 dbcp ...

  2. 十六进制转换十进制(JAVA版)

    解题思路路大概为:现将十六进制数转换为二进制数,再讲二进制数转换为八进制数.在进行十六进制转换为八进制时可以利用JAVA中的‘&’运算符号,一个十六进制数可以表示为四个二进制数,利用‘& ...

  3. Redis 简单使用 and 连接池(python)

    Redis 简介 NoSQL(not only sql):非关系型数据库 支持 key-value,  list,  set,  zset,  hash 等数据结构的存储:支持主从数据备份,集群:支持 ...

  4. 微服务、SOA、ESB比较

    很多时候会听到微服务.SOA.ESB之间有着联系也有着区别,有时候了解了一下,过段时间有混肴模糊了今天看了一篇文章写的很好,特地记录一下. 原文地址:https://mp.weixin.qq.com/ ...

  5. Visual Studio 2017使用

    常用快捷方式 Ctrl + KK插入书签 取消书签Ctrl + KP 上一个书签Ctrl + KN 下一个数千Ctrl + F3 先一个关键词Shift + F3 上一个关键词 Ctrl + KC 添 ...

  6. 【转】Elastic-Job

    https://www.cnblogs.com/yushangzuiyue/p/9655847.html 什么是Elastic-Job Elastic-Job是当当网大牛基于Zookepper,Qua ...

  7. mongoDB的基本操作之数据更新多条数据

    在默认情况下,update会更新第一条找到的数据,我们做个实验,插入3条c为1的数据 db.test_collection.insert({c:1}) 然后我们find的一下 db.test_coll ...

  8. Ubuntu系统---报错Assertion '0' failed

    Ubuntu系统---报错Assertion '0' failed YOLO V3,CUDA Error: out of memory darknet: ./src/cuda.c:36: check_ ...

  9. C++ 输出PPM格式图片文件

    PPM简介 学习图形学时为了直观地观察结果,需要输出图片,而PPM是一种最简单的图片格式,非常适合新手使用. PPM文件的内容大概是这样的: 第一行固定为P3,代表写入的是PPM格式的RGB图像,除此 ...

  10. 多线程 multiprocessing 的几个小例子

    1.Pipe import multiprocessing as multip,time from multiprocessing import Process,Pipe,Event,Conditio ...