机器人~kinect2显示点云

点云是空间中的一个数据点集,通常由3D扫描仪深度摄像机产生,作为3D扫描过程的输出,点云用于多种用途,包括为制造零件创建3D CAD模型,用于计量和质量检查,以及用于多种可视化,动画,渲染和大规模定制应用。

点的集合

Openni2

采集并显示点云最有名的一个方法也许就是使用openni2(针对kinect v2)库了,使用这个库我们可以通过几行简单的代码实现点云的显示。而且这个库基于ros,可以实时发布注册好的rgb图和depth图,使得利用rviz进行显示成为一件非常简单的事情。而且我们在机器人的开发过程中一般都是使用rviz来进行仿真的,如果我们也能在rviz中显示点云,那么对于我们的开发显然是更加方便的。

其实我们在刚开始安装linux下的kinect v2的开源驱动libfreenect2的时候就可以顺便安装好openni2了,这是最后一个可选的操作,具体的内容可以看这里的安装指南的最后一行。

现在我们运行这个交互库:

roslaunch openni2_launch openni2.launch (如果是kinect v1,请使用openni)

在这里我们会发现事情仍然不是那么简单的,因为错误很可能就在某个角落里等着你:

[ INFO] [1464612947.670034045]: No matching device found.... waiting for devices.

如果你使用的不是kinect系列的深度摄像机,那么你应该看看这个;而如果你是kinect v1的用户,那么很有可能你还需要安装一个SensorKinect,不用怕,按照README.md文件的提示装好就好了,可以参考下这里;还有一种情况是我们这些使用kinect v2的人,错误的原因大概就是我在前面所提的安装libfreenect2时没有安装openni2,这个更好解决,回到libfreenect2的目录下执行一下最后一个命令就好了。

那么现在所有的需要的依赖我们都装好了(luckily),我们需要重新运行上面的那个命令:

roslaunch openni2_launch openni2.launch (如果是kinect v1,请使用openni)

之后我们另外打开一个终端,运行一下这个结点:

rosrun rviz rviz

它将启动rviz来使我们可以查看点云。

我们进去发现rviz是空的,这是因为我们目前还没有订阅任何topic,我们先设置FixedFrame为camera_link,然后在面板中添加PointCloud2,将它的订阅消息设置为/camera/depth/points。好,点云出现了!

openni2的点云

到这里就大功告成了,可以自己探索一下!但值得吐嘈一下的是,这个点云的质量的刷新速度实在是差强人意,不知道是什么原因,还得有空再研究下!不过没空也没关系,我们还是把时间留给有更好的方法吧!


iai_kinect2

前面使用openni2的点云查看方式实在是令人有点儿想吐,不过不要紧,我在探索的过程中发现了另外一个方法,显示的效果以及速度都令人非常满意。

在这个方法中,我们要使用iai_kinect2这个ros包,它包含一系列和kinect2的操作有关的结点文件,而且结构也更加清晰。主要的部分有:

  1. 校准工具,用于校准Kinect One的红外传感器到RGB传感器和深度测量;
  2. 一个用OpenCL支持进行深度注册的库;
  3. libfreenect2和ROS之间的桥梁;
  4. 图像/点云的查看器;

但金无足赤,人无完人,这个包美中不足的是安装过程的困难,我在这里建议将这个包不要放在公共的catkin空间下进行编译,而是单独放在另外一个空间下,这样可以避免很多错误。总之,在linux下安装好了libfreenect2iai_kinect2之后,我们就可以玩转kinect2了!

首先我们来连接kinect V2并打开bridge,这个launch文件会为我们连接硬件并发布一系列要用到的topic。

roslaunch kinect2_bridge kinect2_bridge.launch

然后我们来校准相机,这个过程比较复杂,我们放在另外一篇文章中讲解,现在我们可以直接先跳过这个过程。如果你不打算跳过的话,完成校准后将校准文件添加到该kinect2_bridge/data/<serialnumber>文件夹。我跳过的原因是我将源码所带的示例校准参数拷到了目标文件夹下,发现竟然很好地解决了对齐的问题,所以就没有继续校准的必要了。当然,如果你对点云的精度要求不是那么高的话,默认的参数也是可以用的。

之后,我们运行下面这个命令来查看我们想看的内容:

rosrun kinect2_viewer kinect2_viewer kinect2 sd cloud

这个文件会启动kinect2_viewer节点,这个节点会接收bridge发布的topic消息来显示我们想看的内容。上面的"cloud"就是我们想看的内容,当然我们也可以订阅其他内容,总共有这些内容可供订阅:

  • image (RGB图像);
  • cloud (点云);
  • both (同时显示以上两者)。

同时,配合这些内容,我们还有四种查看模式,这些模式涉及我们要查看的内容的分辨率:

  • qhd (1/4高清:960×540);
  • hd (全高清:1920×1080);
  • sd (标清:< 720p);
  • ir(红外)。

这里是我的身旁的一个点云示例:


iai_kinect2点云示例

还有一个问题,我们怎样在rviz中显示点云呢?不要急,这是非常简单的一个操作,我们还是先启动kinect2_bridge.launch文件,之后按照前面的方法打开rviz。

roslaunch kinect2_bridge kinect2_bridge.launch publish_tf:=true
rosrun rviz rviz

然后我们在rviz中将FixedFrame设为kinect2_link,在显示面板添加PointCloud2,并为它订阅/kinect/sd/points

iai_kinect2点云示例-rviz

到这里,我们终于实现了在rviz中实时展示高质量的点云。通过两种方法的结果对比,我推荐大家选择iai_kinect2这个包来实现。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342