智能制造一站式解决方案专家

浙江中兴集团旗下

行业新闻

工业机器人抓取时如何定位

2022-08-25

文章题目从机器视觉的角度,从摄像机标定、平面物体检测、纹理物体、非纹理物体、深度学习、与任务/运动规划的结合等六个方面进行了深入分析。


首先要明白机器人领域的机器视觉和计算机视觉有一些区别:机器视觉的目的是为机器人提供操作对象的信息。因此,机器视觉的研究大概有这几块:


1.物体识别:在图像中检测物体类型,与CV研究有较大交叉;

2.姿态估计:计算物体在摄像机坐标系中的位置和姿态。对于机器人来说,要抓东西,不仅要知道是什么,还要知道在哪里;

3.摄像机标定:由于上面只计算了物体在摄像机坐标系中的坐标,我们还需要确定摄像机和机器人之间的相对位置和姿态,这样就可以将物体的姿态转换成机器人的姿态。


当然,我主要专注于物体抓取领域的机器视觉;SLAM等领域我就不说了。

由于视觉是机器人感知的重要组成部分,因此有很多研究。我将按照从简单到复杂的顺序介绍一些我所知道的。


1.摄像机标定


其实这是一个比较成熟的领域。由于我们所有的物体识别只是计算物体在摄像机坐标系中的姿态,所以机器人在操作物体时需要知道物体在机器人坐标系中的姿态。因此,我们需要首先校准相机的姿态。


内参校准我就不提了,参考张的论文或者各种校准工具箱;


对于外部参考校准,根据摄像机安装位置有两种方式:


到手:相机与机器人的极坐标系统固定连接,不随机械臂的移动而移动。


眼手:摄像头固定在机械臂上,随机械臂移动。


这两种方案类似,第一种是眼对手。


只需在机械臂末端固定一个棋盘,在相机视野内移动几个姿势。因为摄像机可以计算出棋盘格相对于摄像机坐标系的位姿A_i,而机器人的运动学正解可以计算出从机器人基座到末端手爪的位姿变化E_i,而末端手爪和棋盘格的位姿相对恒定。


这样,我们可以得到一个坐标系环CX=XD。


至于手握眼球的情况,同样,只需要在地面上放一个棋盘(与机器人底座固定连接),然后让机械臂拿着相机拍几个位置,然后形成一个AX=XB的坐标环。


2.平面目标检测


这是目前工业流水线上最常见的场景。目前该领域对视觉的要求是:快速、准确、稳定。所以一般采用最简单的边缘提取+边缘匹配/形状匹配的方法;而且为了提高稳定性,一般会以点亮光源为主,采用对比度大的背景来减少系统变量。


目前很多智能相机(比如康耐视)直接嵌入了这些功能;而且物体一般放置在一个平面上,摄像机只需要计算出物体的(x,y,θ)T三自由度位姿。


另外,这种应用场景一般用于加工特定工件,相当于只有姿态估计,没有物体识别。

当然,在工业上追求稳定也无可厚非,但是随着生产自动化需求的增加,服务机器人的兴起。更复杂物体的完整位姿(x,y,z,rx,ry,rz)T的估计已经成为机器视觉的研究热点。


三。有纹理的物体


机器人领域最先研究有纹理的物体,比如饮料瓶、快餐盒等具有丰富纹理的表面。


当然,这些对象仍然可以使用边缘提取+模板匹配的方法。但在实际的机器人操作过程中,环境会更加复杂:光照条件不确定(光照),物体与摄像机的距离不确定(缩放),摄像机看物体的角度不确定(旋转,仿射),甚至被其他物体遮挡(遮挡)。


具体原理可以在上面4万+引用的论文或者各种博客中找到。简单来说,这种方法提取的特征点只与物体表面的某一部分纹理有关,与光照变化、尺度变化、仿射变换和整个物体无关。


因此,利用SIFT特征点,我们可以直接在相机图像中找到与数据库中相同的特征点,从而确定相机中的物体是什么(物体识别)。


对于不会变形的物体,特征点在物体坐标系中的位置是固定的。因此,我们可以在获得几对点后,直接求解摄像机中的物体与数据库中的物体之间的单应矩阵。


如果我们使用深度相机(如Kinect)或双目视觉方法,我们可以确定每个特征点的三维位置。然后直接求解这个PnP问题,就可以计算出物体在当前摄像机坐标系中的姿态。


↑这里有一份实验室前大四毕业生的成果。


当然,在实际操作中,要使其真正可用还有很多细节,比如:首先,利用点云分割和欧氏距离去除背景的影响,选择特征稳定的物体(有时SIFT会发生变化),利用贝叶斯方法加快匹配速度。


而且除了SIFT之外,后来还出了很多类似的特征点,比如SURF,ORB等等。


四。有纹理的物体


好吧,有问题的物体很容易解决,所以生活或行业中还是有很多物体是没有质感的:


我们最容易想到的是:有没有一个特征点可以描述物体的形状,并且具有类似SIFT的不变性?


可惜,据我所知,目前还没有这样的特征点。


所以之前的方法还是使用基于模板的匹配,但是匹配的特征是经过特殊选择的(不仅仅是边缘等简单特征)。


简单来说,本文同时使用彩色图像的梯度和深度图像的表面法线作为特征来匹配数据库中的模板。


因为数据库中的模板是从多个视角拍摄一个物体后生成的,所以这种匹配得到的物体姿态只能算是一个初步的估计,并不准确。


但是,只要我们有了物体的这个初步估计姿态,就可以直接使用ICP算法(迭代最近点)将物体模型与3D点云进行匹配,从而获得物体在摄像机坐标系中的精确姿态。


当然,这个算法的实现还有很多细节:如何建立模板,颜色渐变的表示等。另外,这种方法不能处理物体被遮挡的情况。(当然部分遮挡可以通过降低匹配阈值来处理,但是会造成误识别)。


针对部分遮挡,我们实验室的张博士去年对LineMod进行了改进,但由于论文没有发表,所以没有过多涉及。


动词 (verb的缩写)深度学习


由于深度学习在计算机视觉领域已经取得了非常好的成果,我们作为机器人自然会尝试将DL用于机器人物体识别。


首先对于物体识别,这个可以复制DL的研究成果,各种CNN都可以。在2016年的“亚马逊抓取大赛”中,很多队伍都采用了DL作为物体识别算法。


但是在这个比赛中,虽然很多人使用DL进行物体识别,但是仍然使用简单或者传统的算法进行物体姿态估计。DL似乎没有被广泛采用。正如周所说,语义分割网络一般用于分割彩色图像上的物体,然后通过ICP将一些分割的点云与物体的三维模型进行匹配。


其方法大致如下:对于一个物体,取很多小块的RGB-D数据(只关注一个面片,可以用局部特征处理遮挡);每个块都有一个坐标(相对于物体坐标系);然后,首先使用自编码器降低数据的维数。然后,利用降维后的特征训练霍夫森林。


六。与任务/体育规划相结合


这部分也是一个有趣的研究内容。因为机器视觉的目的是为机器人操作物体提供信息,并不局限于摄像机中的物体识别和定位,往往需要与机器人的其他模块相结合。


我们让机器人从冰箱里拿一瓶雪碧,但雪碧被米琳达挡住了。

我们做的是这样的:首先去掉美琳达,然后拿走精灵。


所以对于机器人来说,它首先需要通过视觉确定Sprite在mirinda后面,同时需要确定mirinda是可以移开的,而不是冰箱门这样的固定物体。


本文地址:http://www.msnbrh.com/news/IndustryNews/771.html
在线咨询
联系我们
TOP