Kinect知识学习

来源:互联网 发布:知乎 大提琴 专辑 编辑:程序博客网 时间:2024/05/17 20:33


1. 简介

Kinect (Kinect for XBOX 360, kinetics+connection) 是Mircosoft应用与XBOX360主机的peripheral设备,通过语音指令或手势操作XBOX 360的界面,也能捕捉玩家全身上下的动作,用身体进行游戏,而不必手持或脚踏controller,从而带来"免controller的游戏与娱乐体验".

 Kinect外型类似与network camera, 其组成有:(1) 带有三个camera lens,(中间RGB video camera+两边3D-depth sensor(infrared projector + monochrome CMOS sensor));(2) 底座马达会随着对焦物体移动跟着转动,具有追焦功能;  (3) 内嵌multiarray microphone,可消除杂音; (4) 采用light coding技术(连续照明),PrimeSense(3D sensing company).

2. 驱动安装,测试

Kinect的开发驱动有MS SDK,OpenKinect, OpenNI (ROS recommend).

$ git clone https://github.com/ros-pkg-git/kinect.git

$ roslaunch openni_camera openni_node.launch  (启动rgb和depth camera)

$ rosrun image_view image_view image:=/camera/rgb/image_color  (查看RGB camera获取的图像)

$ rosrun image_view image_view image:=/camera/rgb/image_mono (灰度图像)

$ rosrun rviz rviz (Fixed Frame: /openni_rgb_optical_frame; Add: Point Cloud2.topic:/camera/rgb/points, Background: 浅灰色)

$ rosrun kinect_aux kinect_aux_node (启动马达)   rostopic echo /cur_tilt_angle

rostopic pub -r 1 /tilt_angle std_msgs/Float64  -- <N>   -31:31(deg)

3. openni_camera


ROS驱动包括: Microsoft Kinect; PrimeSense PSDK; ASUS Xtion Pro (without RGB).

openni_camera发布有原始深度,红外,及RGB图像的驱动节点.

(1) 精度   tolerence=f(d^2), (RANSAC,随机采样一致性算法) .

(2) 标定  a) Intrinsics标定: 用户可以使用ROS中image_pipeline所使用的畸变模型来获取更高的精度. Kinect不能将用户标定参数存储到固件上,而是存于一个非载模板文件中.

标定文件位置由openni_node(或openni_camera/driver_nodelet)中的rgb_camera_info_url和depth_camera_info_url参数指定.

b) with only rgb camera: cameracalibrator.py文件

c) with only depth camera 基于Kinect红外图像进行

d) with rgb and depth camera 不可用

(3)改变驱动器设置

$ rosurn dynamic_reconfigure reconfigure_gui

(4) 同步

(5)坐标系

4. openni_tracker

$ rosrun openni_tracker openni_tracker (独立节点)


参考:

[1] http://wiki.ros.org/openni_camera

[2] 开源机器人操作系统



0 0
原创粉丝点击