在过去几年里,使用机器视觉做为关键元件的运动控制系统渐渐普及。越来越多工程师和科学家发现,结合目前的机器视觉和运动控制技术,可以在解决困难的应用问题时提供许多优势。软体及硬体技术方面的进步亦有助于推动这种趋势,拜它们所赐,结合运动控制和机器视觉的系统更加容易实现,成本也较低。在设计这一类的系统时,应该留意目前的技术进步、方法,以及设计用来帮助布署系统的工具。
在建立视觉导引运动控制系统时,有几件事情要考虑。首先要考虑的事情之一就是要如何设定系统。就拿一个在行动电话上加上盖子的视觉导引运动系统而言,电话每次的位置和方向未必都相同。为了让它容易操作,可以把行动电话放在一个X-Y-Theta平台上,用来同时修正位置及方向。在此可以使用视觉来定位盖子,并测量需要进行多大的动作,才能正确地放置盖子及改变其走向。在建立这一类系统时,必须考虑多项问题,包括视觉如何与运动通讯,以便正确地将零件移到位置上。要让运动和视觉元件之间能够进行通讯,需要使用一种校准方式。如(图一)所示,在校准视觉导引运动系统时,必须考虑几个步骤如下。
- (1)应该排除影像系统中的任何扭曲现象,它们可能导致运动控制系统解读的距离不正确;
- (2)必须将影像中测得的距离(通常以像素为单位)与在平台或马达上测得的距离(例如几步或计数)建立关联;
- (3)最后,必须将视觉座标系统与运动控制系统建立关联,以修正两个座标系统之间的任何误差。
要从影像中的距离转换成运动控制系统中的距离,视多项参数而定,包括摄影机与被移动之物体之间的距离,以及透镜类型。在摄影机上使用不同的缩放程度,会从摄影机的角度改变物体的大小,结果对该物体进行的测量都会和移动摄影机之前获得的测量结果不同。图一为简单的视觉及运动系统流程显示图。
常见扭曲形式的校正
在校正于2D平面上移动的视觉导引运动控制系统时,理想中应该确定摄影机与对着摄影机做相对移动的平面或平台呈完全垂直的角度。如果摄影机未呈垂直,就会得到方向扭曲,而最接近摄影机的部份平面会显得比远离摄影机的平面来得大,即使两个部份一样大其结果也相同。有些软体套件例如Vision软体可以在校准过程中使用特殊的校准功能,进行角度扭曲的修正。
透镜扭曲则是在校准系统时的另一个错误来源。透镜扭曲的原因是透镜靠近边缘的地方有瑕疵。这样可能会导致靠近影像边缘的直线显得像曲线。这问题就和角度扭曲一样,使用部份影像处理套件也可以在校准过程中使用特殊的校准功能,对透镜钮曲进行修正。
建立影像单元与运动控制单元的关联
要校准视觉导引运动控制系统,可以用多种方式达成。最简单的方法之一是使用从机器视觉和运动控制元件中取得的资料,实验性地校准系统。运用这种方法,可将运动控制系统移到多个位置上,并使用机器视觉系统记录转译距离。利用收集到的资料,就可以决定一个方程式,用来将摄影机的像素单位转译成平台可以使用的单位,例如编码器上的次数。回到行动电话的拾取及置放范例中,假设在X方向上将平台移到1公分,使用显微镜时,将观察到平台在X方向上移动了100个像素。随后可以建立一个校准常数,即0.01cm/pixel,表示所测量到的每个像素相当于平台上的0.01公分。
《图二 使用软件建立影像单元与运动控制单元关联的简单程序代码》 |
|
建立视觉座标系统与运动座标系统的关联
消除或修正影像中的扭曲效果之后,在设计系统时,应该考量的另一个预防措施就是确保摄影机的座标系统与运动控制元件的座标系统同步。根据应用的方式以及想获得的准确度,若要获得最大的效能,这一点可能非常重要。没有和运动控制座标系统完全同步的摄影机会导致由它指挥移动的位置产生错误。举例来说,如果使用平台,而摄影机没有和平台同步,那么可能仅将平台朝着X方向移动,摄影机却记录了平台在X及Y方向上的移动。座标系统未对准的问题可以透过座标转换(coordinate transformation)加以校正。座标转换可以将一个座标系统的座标(例如平台)改变成另一个座标系统(例如摄影机)。机器人应用需要这种座标转换来判断要采用何种关节值,才能移动到要前往的位置。在(图三)中,黑色的座标系统供摄影机使用,绿色座标系统(角度略有转动)则供平台使用。
《图三 运动控制和视觉之间的坐标系统可能没有校准,导致在系统之间传送距离信息时产生不正确》 |
|
接着必须决定的第一件事,就是两个座标系统之间的角度有多大。这个角度称为位移角度(offset angle)。只需将平台朝着已知的向量移动(最好是相当简单的东西),然后使用机器视觉系统测量开始和结束的位置。命令平台移动的距离,和使用摄影机的影像测量而得的移动距离之间的差异可以帮助判断旋转角度为何。举例来说,假设让平台在X轴上移动2000个单位(0,0至2000,0)。由于只在X轴上移动,因此影像中任何在Y轴上的移动都可以协助判断位移角度。如果来自摄影机的影像显示平台在X轴上移动了173个像素,在Y轴上移动了100个像素,那么可以用Y值在X值上的反正切(inverse tangent),计算旋转的角度,所以可以取100/173的反正切来计算位移角度,也就是30度。
在决定位移角度之后,接下来必须决定视觉单位和运动控制单位之间的转换。将影像中测量而得的移动长度和运动控制上测量而得的移动长度做比较。要决定影像中的移动长度,请使用置放X向量与Y向量所造成的三角形斜边。因此,使用毕氏定理,就可以计算长度Z=sqrt(X2+Y2)。
以此计算影像中测量而得的移动长度=sqrt(1002+1732)=200像素。
现在知道,就以上的范例而言,视觉单位与运动控制单位的比例是200:2000或1:10。在校准时必须留意的问题之一是,校准时的取样越多,最后的校准会越准确。另外一个要留意的问题是,运动控制系统可能有一些不完全之处,将会导致它在移动过程中有一点点不同。为了提高可重复性,应该从不同点上取得多个样本,以找出转换比例。同时,利用这个比例,可能会注意到,为了在影像中观察到一个像素的移动,必须将平台移动至少10个单位。在这类的系统中,经常会发现平台的移动解析度比摄影机的解析度大得多,表示影像中的小变化可能导致动作的大变化。
如果经常检查平台位置,以确定它在那里,可能会发现它在目标位置四周跳来跳去。若是发生这种情形,可能也必须考虑采用一个死频带(deadband area),这样当平台移到已经很接近目标位置的位置上时,运动控制就不会再继续进行调整。
座标转换
下一个必要步骤是使用系统的资讯来决定如何将摄影机座标系统上一个点的位置转换成平台的座标系统。为了更清楚说明如何了解转换方式,假设要将平台从位置(0,0)移到摄影机座标系统上的新位置X1及Y1(如蓝色线所标示),X1及Y1在正象限中,如(图四)所示。
要进行座标转换时,必须知道的资料是点在平台座标系统中的X及Y座标(以图四中的红色虚线表示)。已经知道的资料是摄影机座标系统中的X及Y座标,利用这些资料,便可以找到摄影机座标系统中的位移角度。要在平台座标系统中找到向量的角度,只需要从向量在摄影机座标系统中的角度减去已知位移角度即可。利用直角三角形,如果知道一边的长度和一个角,就可以找到另外两边的长度。因为在平台座标系统中找到角度的值,因此可以使用正弦定律和余弦定律来找到另外两边。结果是:
sin(theta3)=Y2/H becomes A*sin(angle on stage frame)=Y2
cos(theta 3)=X2/H becomes H*cos(angle in stage frame)=X2
《图五 使用LabVIEW进行简单坐标转换的程序代码》 |
|
利用这个简单的方程式,可以决定从影像中的已知座标转换至平台的未知座标。在采用这种方法时,必须注意的是当向量落在其它象限中时,算式会不同。但是,决定其它象限算式的方式和以上介绍的方式非常类似。
在特定的应用中,可以使用封闭回圈控制来进行运动视觉校准。这个方法背后的想法是利用影像中某个定点的理想位置和观察得到的位置之间的差异,作为驱动控制回圈的错误信号。举例来说,该定点可以是所欲置放零件上的刻痕位置,一般均希望能将这个刻痕和影像中的某个理想位置对齐。当控制回圈连续反覆调整零件或摄影机时,错误会渐渐变小,直到理想位置和观察得到的位置之间没有差异为止。利用这个方法可以方便将摄影机对齐平台座标系统。接着可以将这个方法再进一步应用,利用估计运算法,可在控制元件的同时,将系统的不完全性也纳入考量,例如光线的变化以及影像撷取的低页框率。
结论
视觉导引运动控制系统适用于多种应用,从自动化细胞集落分析到简单的拾取及置放应用皆可。设计这样的系统可能很具挑战性,但是可以打开新的机会,使生产力达到最大。当然,校准只是建立完整系统的一部份,但它是非常重要的一部份。排除视觉系统中的扭曲影响、建立运动单元与视觉单元的关联,以及进行座标转换,都是提高视觉导引运动系统的准确性、可重覆性及整体价值时必须考量的重要因素。