DIY编程器网
标题:
视觉导引运动控制系统开发分析
[打印本页]
作者:
liyf
时间:
2012-1-22 00:00
标题:
视觉导引运动控制系统开发分析
过去几年里,运动控制系统已经把机器视觉作为其关键部分。越来越多的工程师和科研人员认识到当前的机器视觉技术和运动控制技术相结合对于解决复杂应用问题有相当大的帮助。软硬件技术的发展也促进了运动控制和机器视觉系统的结合,并降低了它们的开发难度和开发成本。在设计这种系统时,了解目前的技术发展、方法以及开发工具会对您的工作提供很大的帮助。
当您开发一个视觉导引运动控制系统时,有很多方面需要考虑。其中重要的一点就是如何建立该系统。比如一个视觉导引运动控制系统用于在移动电话上安装机盖,每次电话的位置和方向可能有所不同。为了使问题变得简单,假定移动电话放置在X-Y-Theta工作台来校正位置以及方向。视觉系统用来定位机盖并测量电话移动到正确位置运动系统需要移动的方向和距离。开发这样的系统也有很多的问题必须考虑到,例如视觉单元如何和运动单元关联来保证把部件移动到位。在运动和视觉单元之间建立通信需要校准。如图1所示,在校准一个视觉导引运动控制系统时,需要按照以下几个步骤进行:首先,您需要校正图像系统的所有失真,它们有可能导致错误的测量距离被传递到运动控制系统上;
然后,您需要把图像测量的距离(通常用像素表达)和工作台或电机测量的距离(通常用步进的次数或计数值)联系起来;最后,您需要把运动控制系统与视觉坐标系统相关联,从而校正两个系统的偏移。这种图像测量距离到运动控制距离的转换依赖于很多的参数,其中包括相机和被测物体间的距离以及镜头的类型。相机焦距的改变会使得物体成像的大小有所不同,因此测量的结果也会与相机移动之前有所不同。一个简单的视觉和运动控制系统框图如图1所示。
常见失真的校正
当校正运动控制部分在2维平面上的视觉导引运动控制系统时,应该确保您的相机垂直于该平面或工作台。如果相机不垂直,那么图像将有透视性失真,就是说对于一个各部分尺寸相同的物体,距离相机近的部分会比显得比距离相机远的部分要大。某些软件包,如NI视觉软件,可以使用某些校准算法来校正这些透视性失真。
在校准系统时镜头失真也一种误差源。镜头失真来自于镜头边缘的变形。这会导致直线在图像边缘上变成曲线。像透视性失真一样,镜头失真可以使用某些图像处理软件如NI 视觉软件的特定功能在进行校正。
关联视觉单元和运动控制单元
校准视觉导引运动控制系统可以通过多种方法来实现。最简单的方法是通过实验利用机器视觉和运动控制单元采集到的数据来校准系统。使用这种方法,您可以移动运动控制系统到多个工作点并使用机器视觉系统来测量其运动的的距离。利用所采集到的数据,您可以确定计算出从相机的像素值与工作台运动之间的等式关系,比如说编码器的计数单位。回到移动电话捡取和放置的例子,假定您的工作台向X方向移动了1cm,您使用相机观察到工作台在X方向移动了100像素。您就可以建立一个校准常量0.01 cm/像素,它说明您在工作台上所测量的0.01 cm相当于1个像素。
图2 用于关联视觉单元和运动控制单元的LabVIEW 代码。
关联运动坐标系统和视觉坐标系统
在消除或校正了图像系统的失真影响后,另一个您在设计系统时要防范的问题是确保相机的坐标系统和运动控制的坐标系统同轴。根据具体的应用以及您所要获得的精度,同轴性可能会成为提高性能的最关键环节。相机和运动控制坐标系统不严格同轴会导致指令的偏差。例如,如果您使用不同轴的工作台和相机,当物体在工作台上沿X方向向移动时相机会记录工作台在X方向和Y方向同时移动。使用坐标转换可以校正坐标系统的偏移。坐标转换可以把一个坐标系统(工作台坐标系统)转换为另一个坐标系统(相机的坐标系统)。例如机器人应用中经常会用到这些坐标变换技术来根据获取的信息确定最终的执行系统应该怎样工作。在下图中,黑色为相机坐标系统,绿色为工作台坐标系统,二者相差一定的角度。
图3:坐标系统的不同轴会导致运动控制系统与视觉系统距离换算时出现偏差。
首先您要确定的两个坐标系统的角度偏差值。我们把这一角度称为偏差角。一种简单的做法是通过移动工作台一个已知角度,利用机器视觉系统来测量起始位置和终止位置来确定该偏差角。例如,假定您仅在X轴移动了工作台2000单位(0,0到2000,0位置)。由于您只移动了X轴,在图像坐标系中测量的Y轴的任何移动都能帮助您确定该偏差角。如果相机的图像显示工作台在X轴移动了173像素,在Y轴移动了100像素,可以通过对Y和X比值的反正切来计算旋转的角度。对100/173取反正切得到偏差角为30度。
在确定了偏差角后,下一步您要确定视觉单元和运动控制单元之间的转换关系。您可以通过比较在图像中测量出的运动距离和在运动控制中给出的运动距离来计算得该转换公式。为了确定在图像中的移动距离Z,可以利用勾股定理通过X值和Y值进行计算。Z=sqrt(X^2+Y^2)。
在视觉系统中移动的长度=sqrt(100^2+173^2) = 200像素。
现在您可以从上面的范例中知道,视觉单元到运动控制单元的比率为200:2000或1:10。在进行校准时您需要注意的一点是当您在校准时采样的点数越多,在最后您的校准结果越准确。另一点需要注意的是运动控制系统可能有轻微缺陷,这会导致不同部件移动相同距离有轻微差别。为了提高可重复率,您应该通过采集不同点的多个样本来计算转换比率。此外,使用这种比率,您可以发现为了能在图像上观察到一个像素距离的移动,您至少需要将工作台移动10个单位。这些类系统中,工作台的分辨率远高于镜头的分辨率的情况是很常见的,这意味着图像中的微小移动将会在运动系统中导致很大的位移变化。若您连续的核对工作台的位置,您可能发现它会在目标位置附近跳动。一旦出现这样的情况,您可以考虑设置盲区,这样当您感觉工作台已足够接近目标区域,运动控制就不再继续进行调整。
坐标转换
下一步我们将要利用系统的相关信息来决定如何把相机坐标系统上点的位置转换到工作台坐标系统上。可以
利用下图来更好地说明这种转换如何实现:假定将工作台从0,0移动到到相机坐标系统的新位置X1 和Y1(以蓝色代表),X1和Y1都位于第一象限内。
关于坐标转换,您需要知道某点在工作台坐标系统中的X坐标和Y坐标,在图中由红色的虚线表示。在相机坐标系统中的X坐标和Y坐标是已知的,利用它们您可以很容易地计算出在相机坐标系统中的偏差角。利用相机坐标系统下的角度矢量减去已知的偏置角就能方便地得到工作台坐标系统中的角度矢量。利用矢量H作为斜边您可以构建一个直角三角形,Y2和X2是它的两条未知长度的直角边。对于直角三角形,当您知道其中一条边和一个角的大小,就能够计算出其余两条边的大小。由于我们已经通过计算得到了工作台坐标系统中的矢量角度的大小,就可以通过正弦定律和余弦定律来计算其余两条边的大小。结果如下:
通过sin(theta3)=Y2/H 得到 H*sin(angle in stage frame)= Y2
通过cos(theta3)=X2/H 得到H*cos(angle in stage frame)= X2
图5坐标转换的LabVIEW代码
利用这组简单的等式,您可以完成从已知的图像坐标系下的坐标到未知的工作台坐标系下的坐标的转换。在使用这种方式时需要注意的是,当矢量落在其它象限时等式会有所不同。然而,确定其它象限下坐标变换的等式和以上方法非常类似。
对于特定的应用,您可以使用闭环控制来实现运动视觉校准。这种方法的原理是利用某一特征在理想位置和观察位置的差值作为误差信号来进行一个控制回路。例如,您可以将部件上的一个凹槽作为特征,将它调整到图像中的某个理想位置。控制回路会在连续循环中不断调整部件或相机,误差会越来越小直到理想位置和观察到的特征点的位置重合。利用这种方法,您可以轻松地校准相机和工作台的坐标系统。您还可以进一步利用估计算法在控制部件的同时估算出系统的缺陷,比如光照变化以及图像采集中较低的帧速。
结论
视觉导引运动控制系统适和多种应用,从大量元件的自动分析到简单的捡取和放置应用。设计这种系统虽然很复杂,但它能最大限度地提高生产效率。校准只是建立整个系统比较初级的部分但它非常重要。消除视觉系统的失真、将运动单元与视觉单元相关联以及进行坐标转换是非常重要的几个部分,它们可以提高您的视觉导引运动系统的精度、可重用性以及整体价值。
欢迎光临 DIY编程器网 (http://diybcq.com/)
Powered by Discuz! X3.2