锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

工业机器人抓取时怎么定位的?用什么传感器来检测?

时间:2022-08-25 17:00:00 3050al旋转传感器fly传感器

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达 


从机器视觉的角度来看,作者从六个方面对文章的标题进行了深入的分析,包括相机标定、平面物体检测、纹理物体、无纹理物体、深度学习和任务/运动规划。


首先,我们需要了解机器人领域的视觉(Machine Vision)跟随计算机领域(Computer Vision)有一些不同的视觉:机器视觉的目的是为机器人提供操作对象的信息。因此,对机器视觉的研究可能有以下几点:

1.物体识别(Object Recognition):在图像中检测到物体类型等 CV 很大一部分研究交叉;
2.位姿估计(Pose Estimation):计算出物体在摄像机坐标系下的位置和姿态,对于机器人而言,需要抓取东西,不仅要知道这是什么,也需要知道它具体在哪里;
3.相机标定(Camera Calibration):因为以上只计算了相机坐标系下物体的坐标,我们还需要确定相机和机器人的相对位置和姿势,以便将物体的位置转换为机器人的位置。
当然,我主要在物体抓取领域的机器视觉;SLAM 等别的领域就不说了。

因为视觉是机器人感知的一个非常重要的内容,所以有很多研究,我知道一些,按照从简到复杂的顺序:

一. 相机标定

这实际上是一个相对成熟的领域。由于我们所有的物体识别只计算相机坐标系下物体的位置,机器人需要知道物体在机器人坐标系下的位置。因此,我们首先需要校准相机的位置。

内参标定不说,参照张正友的论文,或各种标定工具箱;

根据相机的安装位置,外参标定有两种方式:


  • Eye to Hand:相机与机器人极坐标固连,不随机械臂运动

  • Eye in Hand:相机固定在机械臂上,随机械臂移动


这两种解决方案的想法相似。首先,眼睛在手外(Eye to Hand)


只需在机械臂末端固定一个棋盘格,并在相机视野中移动几个姿势。因为相机可以计算棋盘格相对于相机坐标系的位置A_i 、机器人运动学正解可以计算机器人底座到末端抓手之间的位置变化E_i 、而末端爪手和棋盘格的位置相对固定。

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

有很多方法可以解决这种结构。我在这里给出一个参考文献:

Shiu, Yiu Cheung, and Shaheen Ahmad. "Calibration of wrist-mounted robotic sensors by solving homogeneous transform equations of the form AX= XB."ieee Transactions on Robotics and Automation 5.1 (1989): 16-29.

眼睛在手上(Eye in Hand)情况也差不多。在地上放一个棋盘格(与机器人基座固定),然后让机械臂用相机走几个位置,然后形成一个。AX=XB 的坐标环。


二. 平面物体检测

这是目前工业装配线上最常见的场景。目前,该领域的视觉要求是:快速、准确、稳定。因此,它通常是最简单的边缘提取 边缘匹配/形状匹配的方法;此外,为了提高稳定性,系统变量通常会通过主光源和大对比背景来减少。


目前,许多智能相机(如 cognex)这些功能直接嵌入;此外,物体通常放置在平面上,相机只需计算物体(x,y,θ)T 三自由度位置即可。

此外,这种应用场景通常用于处理特定的工件,相当于只估计位置而不识别物体。

当然,追求工业稳定性是可以理解的,但随着生产自动化和服务机器人的兴起的要求越来越高。对更复杂物体的完整位置(x,y,z,rx,ry,rz)T 据估计,它已成为机器视觉研究的热点。

三、有纹理的物体

机器人视觉领域是第一个开始研究纹理的物体,如饮料瓶、零食盒等表面纹理丰富的物体。

当然,这些物体也可以从类似的边缘提取 模板匹配的方法。然而,在实际机器人操作过程中,环境会更加复杂:光照条件不确定(光照)、物体距离相机距离不确定(尺度)、相机看物体的角度不确定(旋转、仿射)、甚至是被其他物体遮挡(遮挡)。



幸好有个叫 Lowe 大神,提出了一个叫做的大神 SIFT (Scale-invariant feature transform)的超局部特征

Lowe, David G. "Distinctive image features from scale-invariant keypoints."International journal of computer vision 60.2 (2004): 91-110.

具体原理可以看篇文章的具体原理 4万 简单或各种博客,简单地说,该方法提取的特征只与物体表面的纹理、光变化、尺度变化、仿射变化和整个物体有关。

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


对于不变形的物体,特征点固定在物体坐标系下。因此,在获得多个点对后,我们可以直接找到相机中物体与数据库中物体之间的单应性矩阵。

如果我们使用深度相机(如Kinect)或双眼视觉方法,确定每个特征点 3D 位置。然后,直接解决这个问题。 PnP 在当前相机坐标系下,可以计算出物体的位置。


↑ 这是实验室毕业前师兄的成绩


当然,实际操作过程中还是有很多细节工作才可以让它真正可用的,如:先利用点云分割和欧氏距离去除背景的影响、选用特征比较稳定的物体(有时候 SIFT 也会改变),用贝叶斯加速匹配等。

而且,除了 SIFT 此外,还有很多类似的特征,比如 SURF、ORB 等。

四. 无纹理物体

嗯,有问题的物体很容易解决,所以生活或工业中有很多物体没有纹理:



我们最容易想到的是,是否有一个特征点可以描述物体的形状和跟踪 SIFT 类似的不变性?

不幸的是,据我所知,目前还没有这样的特征。

因此,以前的一大类方法仍然是基于模板匹配但是,特别选择了匹配特征(不仅仅是边缘等简单特征)。

在这里,我介绍一下我们实验室以前使用和重现的算法 LineMod:

Hinterstoisser, Stefan, et al. "Multimodal templates for real-time detection of texture-less objects in heavily cluttered scenes." Computer Vision (ICCV), 2011 IEEE International Conference on. IEEE, 2011.


简单地说,这篇论文同时被使用图像梯度的彩色图像作为深度图像的表面方向与数据库中的模板板。

由于数据库中的模板是从一个物体的多个角度生成的,因此匹配的物体位置只能被初步估计为不准确。

但是,只要有这个初步估计的物体位置,我们就可以直接使用它 ICP 算法(Iterative closest point)与物体模型相匹配 3D 点云,以获得相机坐标系下物体的准确位置。


当然,该算法在具体实施过程中仍有许多细节:如何建立模板、颜色梯度表示等。此外,该方法无法处理物体被屏蔽的情况。(当然,部分屏蔽可以通过降低匹配阈值来处理,但会导致误解)。

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

五、深度学习

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

首先,可以复制物体识别 DL 各种研究成果 CNN 拿过来用好了。在 2016 年的『亚马逊抓取大赛』中,很多队伍都采用了 DL 作为物体识别算法。

然而, 在这个比赛中,虽然很多人采用 DL 进行物体识别,但在物体位姿估计方面都还是使用比较简单、或者传统的算法。似乎并未广泛采用 DL。如 @周博磊 所说,一般是采用 semantic segmentation network 在彩色图像上进行物体分割,之后,将分割出的部分点云与物体 3D 模型进行 ICP 匹配。

当然,直接用神经网络做位姿估计的工作也是有的,如这篇:

Doumanoglou, Andreas, et al. "Recovering 6d object pose and predicting next-best-view in the crowd." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016.



它的方法大概是这样:对于一个物体,取很多小块 RGB-D 数据(只关心一个patch,用局部特征可以应对遮挡);每小块有一个坐标(相对于物体坐标系);然后,首先用一个自编码器对数据进行降维;之后,用将降维后的特征用于训练Hough Forest。

六. 与任务/运动规划结合

这部分也是比较有意思的研究内容,由于机器视觉的目的是给机器人操作物体提供信息,所以,并不限于相机中的物体识别与定位,往往需要跟机器人的其他模块相结合。



我们让机器人从冰箱中拿一瓶『雪碧』,但是这个 『雪碧』 被『美年达』挡住了。

我们人类的做法是这样的:先把 『美年达』 移开,再去取 『雪碧』 。

所以,对于机器人来说,它需要先通过视觉确定雪碧在『美年达』后面,同时,还需要确定『美年达』这个东西是可以移开的,而不是冰箱门之类固定不可拿开的物体。


当然,将视觉跟机器人结合后,会引出其他很多好玩的新东西。由于不是我自己的研究方向,所以也就不再班门弄斧了。

来源:知乎  作者:fly qq

原文链接:https://www.zhihu.com/question/26199861

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章