ROS indigo下Kinect v2的驱动安装与调试
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的驱动安装与调试的更多相关文章
- ROS indigo下Kinect v1的驱动安装与调试
ROS indigo下Kinect v1的驱动安装与调试 本文简要叙述了在ROS indigo版本下Kinect v1的驱动安装与调试过程. 1. 实验环境 (1)硬件: 台式机和Kinect v1 ...
- ubuntu14.04 and ros indigo install kinect driver--16
摘要: 原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 今日多次测设ros indigo install kinect driver ,提示各种失败,然 ...
- ubuntu14.04下nodejs + npm + bower的安装、调试和部署
1. 简介 本文介绍ubuntu14.04下nodejs+npm+bower的安装.调试和部署 参考文档 https://docs.npmjs.com/getting-started https: ...
- ubuntu14.04下 Kinect V2+Ros接口安装
1. 首先git下载代码,放到主文件夹下面 git clone https://github.com/OpenKinect/libfreenect2.git 2. 然后安装依赖项如下,最好事先编译安装 ...
- win7下Arduino Mega 2560驱动安装失败解决办法
因为玩四轴用的apm的飞控板,而其需要安装此驱动,曾经在win8使用其,但是因为win8有相对应的数字证书保护措施(应该是这样的,因为好久了记不清楚了),以至于我每次都需要长按shift重启电脑关闭此 ...
- 机器人操作系统ROS Indigo 入门学习(1)——安装ROS Indigo【转】
转自:http://blog.csdn.net/bobsweetie/article/details/43638761 Ubuntu14.04安装ROS Indigo 一.安装ROS 1.1配置Ubu ...
- 腾达Tenda W311MA无线网卡Linux下驱动安装
菜鸟看这里https://help.ubuntu.com/community/WifiD ... enda_W311M 最近也买了颗Tenda W311M网卡,简单说一下驱动的安装和hostapd做S ...
- ARM驱动:SEC S3C2410X Test B/D USB驱动 安装
s3c2410x驱动是一款非常好用的usb驱动程序,win7 64位下mini2440 USB下载驱动安装,解决win7下安装SEC S3C2410X Test B/D 驱动出现叹号的问题.如果你开始 ...
- Ubuntu 16.04 安装Kinect V2驱动
1.下载源代码 git clone https://github.com/OpenKinect/libfreenect2.git 2.依赖项安装 sudo apt-get install build- ...
随机推荐
- Nopcommerce4.2解析——安装
Nopcommerce是一个DotNet领域异常凶残的一个开源电商系统,最先版本4.2,下面我们会逐步分析他的各个模块,为我们的二次开发做准备,应该会写一个系列. 首次运行nop页面会自动跳转到安装页 ...
- 关于mysql 自增长 主键
我遇到过 我这样建表  local list1 = {} , do list1[#list1 + ] = end local e1 = os.clock() print(" ...
- 一:项目简介(node express vue elementui axios)
一:项目基本构造 ** 项目一共有 16 个页面,是一个电商网销项目,自己在网上的某网上找的一个要做的网站的设计图: 页面主要包括: 登录页 -- 注册页 -- 首页 -- 产品列表页 -- 产品详 ...
- Java 之 JDK9 对集合添加的优化
通常,在代码中创建一个集合(例如,List 或 Set ),并直接用一些元素填充它. 实例化集合,几个 add方法调用,使得代码重复. Java 9,添加了几种集合工厂方法,更方便创建少量元素的集合. ...
- 《数据结构与算法之美》 <07>队列:队列在线程池等有限资源池中的应用?
我们知道,CPU 资源是有限的,任务的处理速度与线程个数并不是线性正相关.相反,过多的线程反而会导致 CPU 频繁切换,处理性能下降.所以,线程池的大小一般都是综合考虑要处理任务的特点和硬件环境,来事 ...
- JAVA Calendar类获取上个月的第一天和最后一天
原文:https://www.cnblogs.com/QQParadise/articles/4936313.html 获取上个月第一天的方法: Calendar calendar = Calenda ...
- C#的反射(一)
1.什么是元数据(MetaData)和反射(reflection) 一般情况下我们的程序都在处理数据的读.写.操作和展示.但是有些程序操作的数据不是数字.文本.图片,而是程序和程序类型本身的信息. ① ...
- mongodb的基本操作之更新不存在的数据
查找y为100的数据 db.test_collection.find({y:100}) 发现没有,这时候将y为100的数据更新为y为999的数据 db.test_collection.update({ ...
- LightOJ - 1151 Snakes and Ladders
LightOJ - 1151 思路: 将期望dp[x]看成自变量,那么递推式就可以看成方程组,用高斯消元求方程组的解就能求解出期望值 高斯消元求解的过程也是期望逆推的过程,注意边界情况的常数项,是6/ ...