走进汉振
INTO HANCHINE
汉振分享 | 机器人如何快速精准地抓取无序散乱工件?——3D视觉目标识别与定位
日期:2019年05月23日

为什么要从无序到有序?因为人类的大部分行为都在为熵减而奋斗。具体到离散制造业,即使到自动化程度已经很高的今天,仍然摆脱不了为“有序”而做出的大量投入。因为一条从毛坯到成品的自动化制造生产线仍然需要不少的“缓冲”,以避免由于某个环节的故障导致全线停产的尴尬。换一种思路,在生产线上可以将产品横平竖直的摆放整齐,但是生产过程对于精度的追求是无止境的,只要有[X,Y,Z,Rx,Ry,Rz]中任何一个值发生了变化,对于工业机器人或者一个自动执行机构而言,仍然是“无序”的状态。因此,从无序到有序,是一个永恒的需求。

这里,只讨论工业机器人和机器视觉之间如何协作得以实现从无序到有序的跨越。人,作为目前为止最为复杂的智能体来实现这个过程较为容易,除了力有不足亦或是精度不够,实现其过程是轻而易举的。眼睛获取图像数据,通过大脑分析、定位获得物体的位姿信息,大脑指挥执行机构—手,去实现抓取并放置到既定位置。在维纳1948年的《控制论》中,类似的流程被用来直观的诠释“Cybernetics”的内涵,这也是工业自动化不断发展,孜孜以求的目标所在。

眼睛、大脑、手是实现上述过程的关键三点,在机器人-机器视觉系统中,视觉传感器、识别与定位算法、机器人则作为对应。机器视觉诞生伊始,这一问题即被关注,在经典著作《Robot Vision》(Berthold K.P. Horn,1986)提到“One of the remaining obstacles to the widespread introduction of industrial robots is their inability to deal with other parts that are not precisely positioned”。简而言之,在一个典型的无序抓取(Random Bin Picking, RBP)系统中,需要解决以下问题:


离散制造业中,一个部件或者总成通常由多个零件组装而成,组装过程的来料往往是成批次的,随机放置于流转箱中或者是有序放置于托盘/萃盘上,这是无序到有序的一个需求点。除此之外,零件中的金属件在装配之前通常需要经过多道工序,例如:浇/压铸——热处理——车削——磨削——表面处理。其中车削和磨削工艺就需要精确的将来料件放到加工夹具,而其前道工序通常是无序状态,是极为典型的无序抓取上料的需求场景。


在这里,虽然机器人是一个极为重要的因素,为了简化,我们将多轴(通常为6轴)机器人作为一个执行机构考虑,而对其性能和功能的表述均略过。如此,则回归到引言中提到的四个有关视觉方面的问题,下面的内容将分别简述。


良好的数据是后续分析的基础,所谓“garbage in, garbage out”。因此,能提供高精度、高完整性的三维数据是实现RBP的前提。3D成像原理多样,从模拟人眼机理的双目视觉,到基于三角法的各种技术路线,包括结构光和线激光两大主流,甚至到如今的时间飞行(TOF)原理均有多种产品可用。目前市面上可商业化的,用于工业RBP的3D成像传感器仍然以线激光和面结构光为主。其中,线激光由于每一次只能获得一条线上的点云数据,所以需要直线模组带着传感器运动扫描,适应程度较低。为了解决这一问题,有厂商采用了多线激光,并用电机带动激光旋转实现扫描而不是让整个成像传感器运动的方法,但是该方法的扫描速度较慢,通常需要1-2秒时间。


基于面结构光的3D成像需要用到编码结构光或者散斑结构光,结构光的投射方法又分为DMD(Digital Micromirror Device)、MEMS(Micro-Electro Mechanical Systems)振镜产生条纹光或者利用DOE(Diffraction optical device)产生散斑结构光。目前,高精度工业级3D相机以DMD产生编码结构光为主,MEMS振镜方式由于其体积小、功耗低、成本低等原因逐渐被用到精度要求较低的场景,DOE方式在消费级产品中占据主流。


在计算机视觉领域,识别与定位耗费数千万工程师的无数日夜和美好年华,推动它不断前进。但是,在工业3D无序抓取中,这一问题变得有所不同。截止目前,虽然有众多的目标识别方法被提出来,例如基于模型的方法(Distante. Arcangelo, etc. 1988),基于特征的方法(Diyi Liu, etc. 2018),甚至基于机器学习的方法(Harada, Kensuke, etc.2018)也越来越受到关注,但是基于模型的方法仍然被大多数系统所使用。因为工业生产场景,在既定时间区间内通常只生产同一种产品,而且该方法还能避免形状类似的其它型号混入而造成设备故障。除此之外,在工业生产中,被抓取的零件通常都是基于设计模型而生产,其3D数据模型不难获得也是这一方法生命力较强的原因之一。而其它的方法虽然在智能化方面有所表现,但是在可靠性方面目前仍然未达到工业生产的要求。


在RBP应用中,只识别到产品的形状和轮廓还是远远不够的,还得需要一套较为智能的算法来判断哪一个零件是“抓取友好”的,即能够被机器人夹爪方便的抓取而不影响其它工件,同时机器人的姿态不至于碰到障碍物,这就涉及到下一个问题,路径的规划与避障。


机器人的路径规划是一个自机器人诞生之日起都被研究且必须攻克的问题。不过,与许多工程问题一样,在工程实践和产品应用中,需求与挑战总是层出不穷。在速度要求并不苛刻的场景中,路径规划的唯一目的是避开机器人的奇异点以避免机器人在运动中自我锁死和避开周边的障碍物。总体上,这些算法采用了基于先验知识的仿真甚至穷举法,在工程实践中会有更多的优化来减少对算力的需求。特别地,针对路径规划问题,Iversen、Thomas Fridolin等(2017)在论文《Benchmarking motion planning algorithms for bin-picking applications》中的成果值得一读。


手眼标定为解决机器人坐标和3D成像系统自身坐标的统一问题,毕竟,在工程师将3D传感器和机器人强制组合之前,他们彼此互不相识。2D视觉机器人定位是一个理论研究和工程应用均已成熟的技术,其中手眼标定被充分的研究,许多工程师都将九点标定法(及其衍生方法)奉为圭臬,因为该方法确实在工程应用中屡试不爽。

在RBP应用中,由于涉及到更多的参数需要标定,其难度大大增加。在现有的商用产品中,都采用了自有体系的标定方法和算法,其方便程度和能够获得的精度不一,说明该技术方向仍然需要不断完善。就笔者了解,利用抓取物本身标定,通过迭代计算的方法可以获得更好的精度,当然其过程较为耗时。而利用小球的标定方法也能够取得良好的结果。不过,仍然期待有更加简洁易用,精度更高的标定方法出现。


在这里,给读者描述一个更为直观的RBP系统构成。首先,需要一台精度满足要求的工业级3D相机,如图6所示。


该3D相机具有很好的精度,其重复精度达到了微米级。由于在一定景深范围内,非线性和其它噪声的影响,其测量精度下降了两个数量级,在一个RBP系统中,手眼标定同样会引入误差,包括机器人本身的误差,最终的抓取精度达到2mm,当然,这仍然是一个目前为止很好的表现。


下面,用一个实验系统,更为直观的展示这一系统的动态过程。图8-a中用3D相机拍摄随机摆放的转向节,其中条纹状即为编码结构光投射到物体上的效果。图8-b中,机器人获得命令,要动手了。图8-c中,机器人成功地获得它想要的目标。就像这样,在图8-d中,机器人在RBP系统的指挥下将所有万向节抓得一个不剩。


有人将RBP称为机器人应用领域的一座圣杯,在今天看来,似乎有些美丽的夸张,因为我们的手已经触摸到圣杯的金座,那么我们的另一座圣杯还在前方。早在1984年,Daniel V. Edson在报到GE工厂的“bin-picking”机器人的时候,那是一个科幻的存在,用“highly sophisticated”来描述这一机器视觉系统,然而今天,我们有大量的工程师都在为RBP贡献力量,虽然在工程实践中有无数的挑战,但是在我们眼中,已经不足以用“highly sophisticated”来形容,也许是俗语“会者不难,难者不会”的一种诠释。

虽然在全球有不少的RBP系统已经投入商用,国内的初创企业也有不俗进步,不少应用已经能够长期稳定运行在条件恶劣的工厂,但是远未达到“成熟”的程度。用户需要更为智能,使用更为方便的系统。好在是,我们现在手里的工具越来越多,也越来越好用,快速的CPU和GPU,丰富且性能优异的图像处理算法,深度学习算法都在加速RBP的进步并给用户带来价值。RBP,需要更快,更精,更智能。