概述
描述:从这里开始。本教程演示如何在ROS中打开Kinect(或其他OpenNI设备),介绍ROS工具进行可视化和配置,并解释如何获得配准(深度+RGB)输出,如彩色点云。
1. 启动设备
打开一个命令行,启动OpenNI驱动程序:
roslaunch openni_launch openni.launch
就是这样! openni.launch启动你的Kinect,把原始数据处理成像点云这样的方便输出。请参阅openni.launch发布的所有主题的参考文档。我们将在下面探索其中的一些。
2. 可视化数据
2.1.rviz
我们将使用rviz3D可视化环境来观察点云:
rosrun rviz rviz
将固定帧(在全局选项下的显示面板的顶部)设置为/camera_link。
在显示面板中,单击Add并选择PointCloud2显示。将主题设置为/camera/depth/points。将背景色转换为浅灰色可以帮助观看。
这是在深度(IR)相机中未配准的点云。它与RGB相机图像不匹配。下面我们将看到彩色点云。目前,将彩色变压器设置为轴向或根据距离对点进行颜色映射。
也可以尝试打开一个图像显示并查看各种图像主题。
2.2.图像浏览器
或者你也可以使用image_view来查看RGB图像:
rosrun image_view image_view image:=/camera/rgb/image_color
和深度图像:
rosrun image_view image_view image:=/camera/depth/image
image_view还包含了针对sensor_msgs/DisparityImage消息的disparity_view浏览器:
rosrun image_view disparity_view image:=/camera/depth/disparity
尽管对于一般的3D处理来说是很有用的,但是对于一般的3D处理,你会被鼓励使用点云或者深度图片主题而不是视差图像,这是立体视觉的。有关深度图像的技术细节,请参见代表118。
3. 图像配准
深度和彩色图像来自两个独立的,略微偏移的相机,所以它们没有完全重叠。然而,对于深度图像中的每个像素,我们可以计算它在三维空间中的位置,并将其重新投射到RGB摄像机的图像平面上。通过这种方式,我们构建了一个配准的深度图像,其中每个像素都与RGB图像中的对应对象对齐。
OpenNI有一个内置的配准功能,它使用Kinect工厂的校准功能。我们可以使用dynamic_reconfigure来在运行时更改ROSOpenNI驱动程序的设置。打开动态重新配置GUI:
rosrun rqt_reconfigure rqt_reconfigure
从下拉菜单中选择/camera/driver。启用depth_registration复选框。
注意,ROS驱动程序现在正在接收来自底层OpenNI框架的配准深度映像;它无法访问未配准的数据。ROS的驱动程序不再在未配准/camera/depth/命名空间中发布,而是在/camera/depth_registered/。
例如,查看已配准的视差图像:
rosrun image_view disparity_view image:=/camera/depth_registered/disparity
现在让我们看一下配准的点云。返回到rviz,并将您的PointCloud2显示主题更改为/camera/depth_registered/points。将颜色转换器设置为RGB8。你应该看到一种颜色,你的场景的3D点云。
最后
以上就是拉长发箍为你收集整理的Kinect快速启动指南的全部内容,希望文章能够帮你解决Kinect快速启动指南所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复