基于虚拟现实技术的遥操作机器人的环境建模研究
2019-01-15梁悦
梁 悦
(中船重工第七一三研究所,郑州 450000)
遥操作机器人系统主要用于远程遥控机器人,虚拟现实(VR)技术的出现为再现机器人所在操作环境创造了条件,操作者犹如身临其境一般的感受机器人所在的操作环境,从而做出更准确的判断。传统的虚拟现实技术通常采用的是预先建模的方式,也即在机器人开始操作之前就已经将机器人所在终端的三维模型建好,这种方法适合应用在已知机器人所在的操作环境的情况下,但对于大部分遥操作机器人而言,它们的操作环境是不可预知的,这就需要引入新的几何建模的方法。本文引入Kinect传感器,通过传感器获取的深度信息和图像信息,进行点云的匹配,最终实现机器人所在操作环境的三维重构。
1 基于VR技术的遥操作机器人三维重构研究现状
引入双目和多目视觉技术,获取多个摄像机反馈的图像信息,通过对多角度图像信息进行信息匹配,可以获取点云数据,从而重塑三维环境。Newcombe等人[1]用单目摄像机获取场景图像,并通过GPU和光流技术生成接近真是表面的密集点云,能反应真实的几何结构。中科院自动化研究所在三维重建技术研究中,利用双目视觉技术,通过对图像信息的提取以及关键点自动匹配等手段形成完整的物体3D结构[2]。但由于视频信息是二维信息,多角度的图像在点云匹配时容易出现错误匹配,导致重建三维环境时出现错误。
在近些年的研究中发现,考虑将光学视觉系统和位置传感器结合来获取更为精确的三维信息,常见的获取位置信息的办法有激光测距和声波测距的方法。超声传播测距和激光测距原理相似,都是利用激光或声波在水中的传播速度和时间来进行距离的测算,差别在于激光测距传感器测量精度更高,测量范围更广,报错率更低,但相应的激光测距传感器价格也就更高。
随着微软推出Kinect,研究发现Kinect传感器的摄像头不仅可以获得二维RGB图片信息,同时可以获得深度信息,且相较之下Kinect传感器价格更便宜,这就为虚拟现实环境的重塑提供了便利。本文将对Kinect传感器在重塑三维环境的过程中获取深度信息、点云匹配和颜色检测进行实验。
2 操作环境三维重构原理
图1 机器人操作环境三维重构流程图
Kinect与普通摄像头相比,优势在于Kinect传感器可以同时获得RGB图像和深度图像。Kinect拥有三个不同的镜头,一个是位于中间的普通RGB镜头,这个镜头主要用于采集RGB图像信息,图片的分辨率为640*480;左右两边分别有一个红外发射镜头,这两个镜头联合使用就可以得到深度信息;
在遥操作过程中,机器人的机械臂执行各种操作任务,Kinect在随机器人运动的过程中,每5到10度采集一次场景信息,计算机处理Kinect传感器传回的深度信息和图像信息,通过对点云去噪、匹配等技术获取完整的环境信息。
3 深度图像信息获取
3.1 深度图像信息获取的原理
深度信息指的是从相机到物体表面的距离信息。距离信息可以由深度图像上的像素点表示,但像素点的坐标与世界坐标并不一致,所以想通过深度信息获取真实世界中的距离信息时,首先需要把像素坐标转换为真实世界的世界坐标。
如图2所示的是摄像机的视角,顶端的曲线代表摄像机照到的物体的表面,虚线表示在Kinect传感器中深度信息框架。A点表示物体上某一点在世界坐标系中的坐标,B点代表对应的深度坐标值,其中Xw,Yw和Xp,Yp分别平行,Zw代表了摄像机的焦距,则将深度信息转化为物理坐标的关系式为:
采用上述开发模型,既实现了视图层、控制层与模型层的分离,又实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。
要想计算出Xw和Yw,首先需要计算出Zp,Zp的大小和相机的分辨率等特性有关,相机的分辨率是640*480,θ代表的是相机的水平视角,由图3可以得出
如图4所示,左边是利用Kinect获取的垃圾桶RGB图像,右边是得到的深度图像在MATLAB中的显示,从图中可以看出,蓝色点集表示的是垃圾桶的深度信息,Kinect传感器可以获取到垃圾桶的深度信息,但深度信息里存在噪声,且有些噪声可能会影响到后面的三维重构,所以这些噪声是滤波时必须滤掉的,也即需要进行深度图像预处理。
图2 Kinect传感器前视角
图3 深度图像的框架维度
图4 Kinect传感器获取的深度图像
3.2 深度图像预处理
受到外界环境和传感器自身的干扰,Kinect传感器获取深度信息时会有较多噪声,这样就导致深度信息与实际的环境信息有误差,最终影响实验的准确性,常见的深度图像去噪方式有泊松方式去噪,高斯滤波去噪,中值滤波去噪和双边滤波去噪。
泊松方程去噪的原理是滤波时,当检测的物体表面只有一个凸点或凹点,周围都没有类似凹凸点时,则判断该点位噪声点,这样就会导致当物体表面本身粗糙或有凹凸不平时,泊松滤波会将粗糙点视为噪声。高斯滤波主要用于过滤高斯噪声和正态分布的噪声,但滤波时只考虑到了像素点的空间位置,忽略了像素值的大小,所以最终的滤波效果可能会导致深度图像的边界线比较模糊,这样就改变了深度图像的信息和轮廓,最终导致深度图像的精确度不高。中值滤波优于高斯滤波的地方在于中值滤波会降低对边缘的模糊效果,从而保护图像的边缘。双边滤波建立在高斯滤波的基础上,目的是为了保护深度图片的边缘信息。
本文采用了双边滤波去噪,如图所示,左边是双边滤波前,在MATLAB中所显示的深度信息,右边是滤波后的深度信息,经过双边滤波后,大部分噪声被过滤,深度信息更为纯净。
4 点云数据匹配
远程操控机器人时,通常希望获得全面的操作环境信息,摄像机的拍摄范围通常有限,所以需要从多个角度拍摄操作环境,从而获得点云数据。点云匹配则是为了将不同坐标系下的点云转换至同一坐标系下拼出完整的环境点云信息,同时计算相邻点云之间的相对位置关系,然后进行拼接。
图5 滤波前后的深度图像信息
通常摄像机获取的点云信息数据非常庞大,为了可以高效的进行点云匹配,我们选取有明显特征的点云进行数据匹配,这些被匹配的点,被称为特征点。Harris、SURF以及SIFT是常见的特征点检测方法[3]。本文采用SURF算法得到RGB图像的特征点。
当特征点确定完毕后,使用IPC算法进行点云匹配。IPC算法可以求出初始点云上每个点对应的目标点云上最接近的点,这样原始点云上的每个点和目标点云的最近点可以到达匹配。
主要操作步骤为:
(1)读入点云数据,点云集合P和X分别代表了原点集P和目标点集X
(5)算出集合P中的点到对应集合Y中点的距离:
图6所示为获取的特征点及特征点的匹配效果。匹配采用的是两个相邻视角的点云图,由图可以看出,两图重叠区域匹配度较高,可以达到基本需求。
图6 特征点匹配结果
5 颜色检测
颜色是物体的重要特性之一,也是机器人是否能识别到物体的一个重要参考条件。颜色空间是指将颜色数字化,常见的颜色空间主要是RGB颜色空间。红(R)绿(G)蓝(B)是三原色,也就是说,所有的颜色都可以通过这三种颜色叠加而成。
本文拿黄色作为例子进行检测实验,我们知道光线不同可能会影响颜色的空间信息,所挑选的黄色物体在正常光照下的颜色坐标为[230,230,15],在有遮挡物的情况下颜色坐标为[120,122,1],可以看出,绿色和红色值减少了将近一半,但二者的数值始终相近,且蓝色值比红黄值小非常多,所以满足黄色点的数值特点是:红色和绿色的比值接近1,红绿的数值比蓝色高5倍以上。
图7 正常光照下的颜色探测结果
图8 有遮挡条件下颜色探测结果
实验结果如图7图8所示,白色空隙处表示识别出的黄色物体,由图可以看出,Kinect传感器可以准确识别出不同环境下的黄色物体。
6 结束语
在基于虚拟现实技术的遥操作机器人领域,操作者想要得到更准确的机器人所在环境,需要重构三维虚拟场景,三维场景重构的精确度会影响遥操作任务的完成情况,本文提出了一种基于Kinect传感器的遥操作机器人环境重建的方法,本文完成的工作包括:
(1)利用Kinect传感器获取图像的深度信息和三维点云。(2)对三维点云进行去噪处理。(3)利用SURF算法和ICP算法对点云进行匹配。(4)利用Kinect传感器完成颜色的探测。
本实验中还存在的问题有:
(1)本文中的实验场景多是简单的室内场景,物体比较规则,光线也比较充足,但实际上机器人所处的环境复杂的多,现有的特征点提取办法不能很好地在较为复杂的环境中提取特征点,之后需要做的工作是分类总结在不同环境中使用提取特征点的不同算法。
(2)Kinect传感器的精度不高,获取的深度信息精确值只有1cm,并且获取深度的有效距离大约为0.5至3m,所以当碰到体积比较小的物体时,Kinect传感器无法完成三维重建。