在视觉系统中用于编制中断操作程序的系统和方法

文档序号:6102759阅读:200来源:国知局
专利名称:在视觉系统中用于编制中断操作程序的系统和方法
技术领域
本发明一般涉及用于操作带有摄像头和载物台的机器视觉检查系统的方法,其中摄像头和载物台可以在多个方向上彼此相对移动,以扫描并检查载物台上的工件的选定的特征,更具体地,涉及允许用户可以很容易地编制与运动(连续)图像获取不兼容的系统操作的程序,而且同样可以编制移动图像获取序列的程序。
背景技术
精密机器视觉检查系统(简写为“视觉系统”)可以用来获取被检查对象的精确维量测量,并用于检查对象的各种其它特性。这种系统可以包括一个计算机、一个摄像头和光学系统,和一个精密载物台,载物台可以在多个方向上移动,以使摄像头可以扫描正在被检查的工件的特征。一个典型的现有技术的商用系统是基于PC的视觉系统的QUICK VISION系列和从位于Aurora IL的Mitutoyo AmericaCorporation(MAC)公司可以获得QVPAK软件。视觉系统的QUICKVISION系列和QVPAK软件的特点和操作在例如,2003年1月发布的QVPAK 3D CNC视觉测量机的用户指南,以及1996年9月发布的QVPAK 3D CNC视觉测量机的操作指南中被进行了一般描述,它们的全体在此引入作为参考。该产品,以QV-302Pro模型为例,能够使用显微镜型的光学系统,在各种放大倍数下提供某个工件的图像,并且按需要移动载物台以在任何单视频图像的限制之外横过工件的表面。给定这种系统的期望放大率,测量分辨率,物理尺寸限制,单视频图像一般仅包括工件的正被观察或检查的一部分。
机器视觉检查系统通常使用自动视频检查。美国第6542180号专利讲述了一些自动视频检查的例子。如在‘180专利中讲述,自动视频检查计量仪器通常都有程序设计能力,使得用户可以针对每个特定工件结构定义一个自动检查事件序列。其实现可以是或者以有意的方式,例如基于文本的编程,或者通过一个逐渐“学习”检查事件序列的记录模式,其通过存储对应于用户执行的检查操作序列的机器控制指令序列而学习,或者通过两种方法的结合来实现。这种记录模式通常被称为“学习模式”或“训练模式”。一旦检查事件序列在“学习模式”被定义,那么该序列就可以用于在“运行模式”下自动获取(以及分析或检查)工件的图像。
包括特定检查事件序列(包括图像获取参数等)的机器控制指令,通常被存储为特定于特定组件结构的“部分程序”或者“工件程序”。能够创建具有执行预定检查操作序列的指令的部分程序的能力提供了多个好处,包括增强的检查重复性,以及在一个或多个兼容的机器视觉检查系统自动地重复执行相同部分程序的能力。
对于目的在于用于大范围内的工件的快速可编程的通用机器视觉检查系统,以前面参考过的基于PC的视觉系统的QUICK VISION系列为例,将图像获取操作与在最新获得的图像上执行的图像分析操作和/或特征检查操作交叉(这里称为“交叉”型操作)进行以成为惯例。然而,对于通用机器视觉检查系统有一个增加的需求是提供更高的吞吐能力。根据一个方法,这可以通过在使用摄像头和工件载物台之间连续的相对运动时,执行图像获取(与交叉型操作所要求的间歇性地停止和启动相对运动相反)来实现,从而大幅增加检查的吞吐量。这种操作在这里称为连续运动型操作。对于这种系统,包括闪光灯照明以在连续运动中辅助获取图像而不出现拖尾(或模糊)图像是十分有优势的。
用于高速生产线的高速“线内”视觉检查系统已经提供了连续运动类型图像获取。然而,这种“线内”视觉检查系统一般只用于单个生产线,并且一次一次地获取“相同”的图像,例如用于在传送系统上的连续的工件。在这种情况下,对于每个图像,运动速度和闪光照明参数等都是相同的。此外,工件结构和/或图像获取参数等都是很少变化的。因此,用于这种系统的编程方法不便于相对不熟练的用户对于无限种工件、摄像头位置、图像获取等参数快速编程。
相反,经验显示,便利于相对不熟练用户为无限种工件、摄像头位置、图像获取参数等进行快速编程,对于通用机器视觉检查系统是十分必要的。用于通用机器视觉检查系统的先前的编程方法并没有使连续运动型操作的编程变得足够简单或快速。并且,先前的编程方法并没有使与交叉型操作结合的连续运动型操作的编程变得足够简单或快速。可以克服这些问题和缺点的编程系统和方法,或者独立地,或者结合地都是所期望的。

发明内容
对于图像获取操作与图像分析和/或特征检查操作交叉的传统视觉系统,在“学习模式”过程中,用户一般通过定义每个图像获取(例如,通过控制视觉系统的位置、焦点、放大率、照明条件等,在视频显示器上获得所期望的图像),然后立刻基于该图像定义操作,如工件图像的检查或分析操作等,来创建部分程序。对于许多商用机器视觉系统,通过机器视觉系统,这种学习模式的操作被自动地或半自动地转换为相应的部分编程指令。这种学习模式的操作的序列,这里称为“普通”或“交叉”学习模式,被示意性地显示在图1A中。在该实例中,在普通学习模式中,在方框2,用户首先定义(或让视觉系统“学习”)怎样获取图像C1(如,怎样设置摄像头相对于工件的位置,使用什么样的光源和照明控制参数)等,然后定义(或让视觉系统“学习”)基于获取的图像C1要执行的操作(“图像C1的操作”),例如检查或分析操作等。接着,在方框4,用户首先定义(或让视觉系统“学习”)怎样获取图像C2,然后定义(或让视觉系统“学习”)基于获取的图像C2要执行的操作(“图像C2的操作”),等等。接着,在方框6,用户定义(或让视觉系统“学习”)怎样获取图像I1,然后定义(或让视觉系统“学习”)基于获取的图像I1要执行的操作(“图像I1的操作”),等等。接着,在方框8,用户定义一个“与图像无关的”操作,例如,一个将坐标系统的原点设置在特定位置的简单指令或命令。接着,在方框10和12,用户定义与前面对方框2和4描述类似的操作。根据传统的编程技术,基于交叉学习模式的操作的上述实例创建的部分程序,将执行以交叉操作的类似序列执行定义的操作。
但是,为了提供增加的吞吐量,通常希望编制机器视觉检查系统的程序以使用连续运动执行多个连续图像获取操作,并随后以“非交叉”方式,对这些获取的图像执行图像分析/检查操作,等。这种编程的操作序列被图示于图1B,它示意地显示了怎样提供程序的“连续运动”或移动图像的获取部分,通过编制在与移动图像获取(在此一般称为“兼容”或“兼容型”操作)兼容的学习模式操作中定义的至少一些图像获取操作的程序,其中的图像获取操作在该实例中是参考图1A的方框2、4、10和12描述的图像获取操作,将被根据图1B的方框14和20中所示的非交叉型序列而安排。识别“兼容”操作将在下面给出更详细的描述。
简而言之,在该实例中,当进入方框2的操作时,兼容的C1图像获取操作被安排在一个非交叉指令方框14中,并且对该图像相关兼容的C1操作被安排在随后的指令方框16中。接着,当进入方框4的操作时,兼容的C2图像获取操作被安排为下一个进入非交叉指令方框14的元素,并且对该图像的相关兼容型C2操作被安排为随后的指令方框16中的下一个元素。
如图1A中所示,方框2和4的兼容型操作的后面是方框6和8的操作,该操作被处理为与连续运动型移动图像获取序列不兼容的操作(在此一般被称为“非兼容”或“非兼容型”操作)。识别“非兼容”操作在下面有更详细的描述。简而言之,在该实例中,当进入方框6的非兼容操作时,它们将引起包括兼容操作的非交叉指令方框14和16的结束。对应于非兼容的图像I1操作的指令被以传统的“交叉”方式安排在指令方框18中。在该情况下,I1图像的获取操作的后面是对该图像的任何相关的非兼容的图像I1操作。接着,当在方框8中进入一个与图像无关的非兼容操作时,如命令将当前坐标系统的原点设置/重置在全局坐标系统中的特定点等等,相关指令被简单地安排为交叉指令方框18中的下一个元素。
如图1A中所示,方框6和8的非兼容型操作的后面是方框10和12的操作,它们在该实例中被处理为与连续运动型移动图像获取序列相兼容的操作。这样,相关指令被以先前针对兼容操作方框2和4以及相关的非交叉指令方框14和16而描述的方式,编制到非交叉指令方框20和22中。
一般说来,在图1B中示意性示出的编程结构或安排中,在学习模式操作中定义的至少一些兼容型图像分析和/或检查操作,被编程为由使用连续运动获取多个图像而执行,随后再调用这些图像并执行相关的分析/检查操作。应该认识到,图1A和图1B中所示的实例只是对于说明下面将要更加详细描述的术语和概念有帮助的操作序列的一个实例。例如,应该认识到,如果在方框4之后并且非兼容操作方框6之前,执行与方框2和4类似的额外的兼容操作,则在这些方框被方框6的非兼容操作结束之前,相应的指令会继续被安排为非交叉指令方框14和16中后续元素。同样,应该认识到,尽管对应于方框6和8的非兼容操作的指令被描述为形成一个“方框”18,这只是一种简便的方法来描述这些操作全部都是相同的“非兼容”型,以及只要非兼容操作序列没有被兼容操作“中断”,就以交叉方式一个接一个地对它们进行编程。指令的相同安排可以被或者描述和说明为一个独立的交叉型指令方框的序列,其中交叉型指令方框分别与进入学习模式的每个独立的非兼容操作相关联。
在此描述的编程系统和方法在学习模式操作中,接受与相关图像的分析和/或检查操作交叉的多图像获取操作,并创建部分程序,其中对至少一些图像的图像获取操作被安排到以“非交叉”方式获取图像的连续运动图像获取序列中,随后对这些获取的图像执行相关图像的分析/检查操作。
根据本发明的另一方面,在各种实施例中,在此披露的编程系统和方法可以自动操作以便利由相对非熟练用户快速对各种工件编程,其中最终程序包括连续运动图像获取序列。
如前面参考图1A的方框6和8以及图1B的方框18所概述的那样,并不是所有的图像获取操作及相关的图像分析和/或检查操作都适合被分离成连续的运动图像获取序列及随后的图像分析序列。例如,如果工件上的特定点的图像要被以一个与前面图像不同的放大率获取,那么改变放大率的特定硬件调整就必须在获取该图像前发生。假定硬件调整要花费时间(可能是依赖于每种视觉系统的不确定的时间量),则在硬件调整过程中最好停止摄像头的移动,以保证当图像获取实际进行时硬件调整已完成。因此,这种图像获取操作与连续(运动)图像获取不兼容,这种操作(可能与相关图像的分析/检查操作相组合)是一种非兼容图像获取操作,或者简称非兼容操作。一般说来,对于非兼容操作,摄像头和工件间的连续相对运动必须被停止(或中断),以保证获得恰当的图像获取条件,和/或保证根据作为前提的所需序列执行特定图像的分析或检查操作,以从随后的图像获取和/或分析操作中获得适当的结果。
在此描述的编程系统和方法在学习模式操作中,接受与相关图像的分析和/或检查操作交叉的多图像获取操作,并创建部分程序,其中对至少一些图像的图像获取操作被安排到以“非交叉”方式获取图像的连续运动图像获取序列中,随后对这些获取的图像执行相关图像的分析/检查操作,其中部分程序还被创建以包括一个或多个部分,在这些部分中特定的其它图像获取操作以及相关图像的分析和/或检查操作被交叉,至少当这些操作与连续运动图像获取不兼容时。
根据本发明的另一个方面,在此披露的编程系统和方法可以自动操作以便利由相对非熟练用户快速对各种工件编程,其中最终程序包括非交叉连续运动图像获取序列,以及任何必要的交叉图像获取和分析或检查操作序列。
在此披露的编程系统和方法使得用户可以使用一致的学习模式过程来编制通用机器视觉监视系统的程序,而不管特定的图像获取操作是否交叉于(或被“中断”)图像分析和/或特征检查操作(以传统方式),或者是否使用连续相对运动,而通过获取特定图像而不交叉中断图像获取操作的图像分析操作,来提供较高的吞吐量。
根据本发明的另一个方面,在此披露的编程系统和方法可以自动对以交叉方式执行过的特定学习模式操作进行再排序,以提供只是一个编程好的非交叉连续运动图形获取序列,而特定的非兼容学习模式操作的序列被作为交叉序列编程。
一般地说,本发明提供了方法和系统,该方法和系统允许用户定义学习模式过程中的兼容和非兼容操作,并生成部分程序,该部分程序尽可能合并了移动图像获取序列,同时保证在非兼容操作被调用时中断移动图像获取。在各种示意性实施例中,该系统以一种对用户完全透明的方式,也即用户不需要考虑各种操作是否是兼容或不兼容的的方式,提供了这种程序。
在各种示意性实施例中,提供一种用户接口以使用户可以确定机器视觉检查系统是否运行在一种自动地再序列化特定兼容的学习模式操作的模式(其中特定兼容的学习模式操作以交叉方式被执行),以提供至少一种编程的非交叉连续运动图像获取序列,或者确定机器视觉检查系统是否运行在传统模式,以创建一般包括传统类型的交叉程序指令的部分程序。
本发明的方法可以被包含在计算机可读取介质和/或载波或其它包括执行该方法的计算机可执行指令的信号中,指令可以被载入并由精密机器视觉检查系统的控制系统部分执行。
在某些实施例中,本发明包括解释和/或编译用于控制精密机器视觉检查系统以检查工件的计算机可执行指令的方法,一般包括两个步骤。首先,该方法允许用户定义兼容和非兼容操作,而不必有意地分离这些操作。其次,该方法自动将用户定义的操作安排到不同类型的程序指令中。第一类指令包括一个移动图像获取指令序列或例程,以及在基于图像获取指令序列得到图像后的一段时间执行的相关图像的分析/检查指令序列或例程。移动图像获取例程包括一个用于获取工件图像集,同时保持摄像头和工件载物台之间的相对运动的机器控制指令集。图像分析/检查例程包括一个用于分析/检查所获取的工件图像集的机器控制指令集。第二类指令包括控制机器视觉检查系统以执行至少一个“非兼容操作”的至少一个指令序列或例程,也即是一个图像获取和分析或检查操作的交叉序列,它与保持摄像头和工件之间的相对运动不兼容。


当与附图一起考虑时,通过参考下面的详细描述,本发明的上述方面以及许多附属优点将更容易被认识到,并且被更好的理解,其中图1A示意性地表示了进入学习模式的普通或交叉操作序列;图1B示意性地表示了一个包括由图1A的交叉操作序列派生出的非交叉连续运动图像获取操作的程序部分的典型结构;图2是一个机器视觉检查系统的图解;图3是一个控制系统部分以及机器视觉检查系统的视觉组件部分的图表;图4A是一个说明了用于创建包括连续运动图像获取序列的用于视觉系统的部分程序的方法的流程图;图4B是一个说明了识别在图4A的方框304中不能被执行的非兼容操作的方法的流程图;图5A示意性地说明了一个典型的学习模式的操作序列,以及一个根据包括连续运动图像获取序列的编程序列创建的部分程序的第一实施例的对应的示意性表示部分;图5B说明了根据对应于图5A中所示的典型学习模式的操作序列,包括连续运动图像获取序列的编程序列创建的部分程序的第二实施例的示意性表示部分;图6是一个示出了用于自动执行包括连续运动图像获取序列的指令序列的部分程序结构的说明性实施例的流程图;
图7是一个来自视频显示器的示例屏幕截图,它说明了用户接口特征,该接口特征使得用户可以根据本发明的原则确定是否要实现部分程序的创建,以及学习模式的部分编程。
具体实施例方式
图2是一个根据本发明的一个典型机器视觉检查系统10的方框图。机器视觉检查系统10包括一个在运行中进行连接以与控制计算机系统14交换数据和控制信号的视觉测量机12。控制计算机系统14还在运行中进行连接以与一个监视器16、一个打印机18、一个操纵杆22、一个键盘24和一个鼠标26交换数据和控制信号。视觉测量机12包括一个可移动工件载物台32和一个光学成像系统34,光学成像系统34可能包括一个变焦距镜头或可互换镜头。变焦距镜头或可互换镜头一般提供了对光学成像系统34提供的图像的各种放大率。
操纵杆22可以被典型地用于控制可移动工件载物台32在一般与光学成像系统34的焦平面平行的X和Y方向上的移动。操纵杆22还可以控制可移动光学成像系统34在Z或焦距方向上的移动。操纵杆22可以被以所示之外的其它形式来提供,比如用作机器视觉检查系统10的“虚拟运动控制设备”的并可以通过任何计算机输入设备如鼠标26等来控制的监视器16上的任何直观表示或窗口小部件(widget)。
图3是一个根据本发明的机器视觉检查系统100的控制系统部分120和视觉组件部分200的图。如下面将要详细描述的那样,控制系统部分120用于控制视觉组件部分200。视觉组件部分200包括一个光学部件部分205、光源220、230和240,和一个具有中心透明部分212的工件载物台210。工件载物台210是沿位于一般与载物台表面平行的平面上的X和Y轴可控移动的,载物台上可以放置一个工件20。光学部件部分205包括一个摄像头系统260、一个可互换物镜250、一个转塔镜头部件280和同轴光源230。通过使用可控电机294,光学部件部分205是沿一般与X和Y轴正交的Z轴可控移动的。
要被使用机器视觉检查系统100成像的工件20被放置在工件载物台210上。光源220、230和240中的一个或多个分别发射用于照亮工件20的光222、232或242。由光源220、230和/或240发出的光照亮了工件20,并作为工件的光255而被反射或透射,它穿过可互换物镜250和转塔镜头部件280,被摄像头系统260聚集。由摄像头系统260捕捉的工件20的图像在信号线262上被输出给控制系统部分120。
用于照亮工件20的光源220、230和240可以包括一个平台光220、一个同轴光230和一个表面光240,例如一个环形光或可编程环形光,所有这些光源都分别通过信号线或总线221、231和241被连接至控制系统部分120。作为机器视觉检查系统100的初级光学部件,光学部件部分205可以包括除前面所讨论组件外的其它镜头和其他光学元件,比如光圈、分光镜等,比如可以用于提供同轴照明或其它期望的机器视觉检查系统的特征的。作为机器视觉检查系统100的次级光学部件,转塔镜头部件280包括至少一个第一转塔镜头位置和镜头286,和一个第二转塔镜头位置和镜头288。控制系统部分120通过信号线或总线281,在至少第一和第二塔镜头位置之间,沿轴284旋转转塔镜头部件280。
工件载物台210与光学部件部分205之间的距离可以被调整以改变由摄像头系统260捕获的工件20的图像的焦距。特别是,在各种实施例中,使用驱动传动装置、连接线缆等以使光学部件部分205沿Z轴移动的可控电机294,光学部件部分205是在相对于工件载物台210的垂直Z轴方向上可移动的。在此使用的术语Z轴,指用于调节由光学部件部分205获得的图像的焦距的轴。可控电机294,当使用时,被通过信号线296连接至输入/输出接口130。
如图3中所示,在各种实施例中,控制系统部分120包括一个控制器125、一个输入/输出接口130、一个存储器140、一个工件程序生成器和执行器170、一个CAD文件特征提取器180和一个电源部分190。应该认识到,这些组件中的每一个,以及下述的额外组件,都可以被通过一个或多个数据/控制总线和/或应用编程接口,或者通过各种元件间的之间的直接连接而互连。
输入/输出接口130包括一个成像控制接口131、一个运动控制接口132、一个照明控制接口133和一个镜头控制接口134。运动控制接口132包括一个位置控制元件132a和一个速度/加速控制元件132b。但是,应该认识到,在各种实施例中,这些元件可以是被合并的和/或无法区分的。照明控制接口133包括光控制元件133a-133n,它们为机器视觉检查系统100的各种相应光源,如光源220、230和240,控制例如选择、功率、开/关切换和选通脉冲,如果适用。
存储器140包括一个图像文件存储器部分141、一个工件程序存储器部分142和一个视频工具部分143。视频工具部分143包括工具部分143a-143m,它们为每个对应的工具确定GUI、图像处理操作等。每个工具部分143a-143m还可以包括运动兼容性信息,用于确定与视频工具相关的操作是否与移动图像获取模式的操作兼容,使得该工具可以根据本发明的原理被恰当地编程,如下面更加详细的概述。在某些实现中,运动兼容性信息可以是在与该工具相关的一般操作指令中所固有的,可以通过工件程序生成器和执行器170的连续运动模式指令生成部分172来分析一般操作指令,以确定它们是否与操作的连续运动模式相兼容。在其它实现中,运动兼容信息可以包括特定运动兼容信息,如预定兼容性或非兼容性代码,或程序分支、地址,或子例程选择指令。在其它情况下,运动兼容性信息使得视频工具操作被工件程序生成器和执行器170的连续运动模式指令生成部分172以恰当的交叉或非交叉方式编程,如前面所述以及下面更加详细的讨论。视频工具部分143还包括一个兴趣区域生成器143x,它支持自动、半自动和/或手动操作,其中操作定义了视频工具部分143中包括的各种视频工具中可运行的各种感兴趣的区域。一般说来,存储器140存储数据,其数据用于操作视觉系统组件部分200以捕获或获取工件20的图像,使得获取的工件20的图像具有期望的图像特性的数据。存储器140还存储用于操作机器视觉检查系统100以手动或自动对所获取图像执行各种检查和测量操作,并通过输入/输出接口130输出结果的数据。存储器140还包含定义了通过输入/输出接口130可运行的图形用户界面的数据。
平台光220、同轴光230和表面光240的信号线或总线221,231和241都分别被连接至输入/输出接口130。来自摄像头系统260的信号线262以及来自可控电机294的信号线296被连接至输入/输出接口130。除了携带图像数据,信号线262还携带来自控制器125的起动图像获取的信号。
一个或多个显示设备136以及一个或多个输入设备138也可以被连接至输入/输出接口130。显示设备136和输入设备138可被用于浏览、创建和/或修改部分程序,用于浏览摄像头系统260捕获的图像,和/或用于直接控制视觉组件部分200。
对于CAD文件特征提取器180,信息如表示工件的CAD文件或实质上相同的工件的先前图像,在机器视觉检查系统的工业应用中是常常用到的。在这些情况下,CAD文件表示或先前的图像可被用于便利离线部分编程。
控制系统部分120适用于确定图像获取设置和/或获取工件20的图像,使得工件20的输入图像在包括要检查的工件特征的兴趣区域内具有期望的图像特性。在各种典型实施例中,当用户使用机器视觉检查系统100来为工件20创建工件图像获取程序时,该用户或者通过使用工件编程语言,自动地、半自动地、或手动地进行明确的指令编码,或者通过利用图像获取训练序列来移动机器视觉检查系统100,而使得工件程序指令捕获上述训练序列而生成指令,来生成工件程序指令。特别是,这些指令将使机器视觉检查系统可以操作工件载物台210和/或摄像头系统260,使得工件20的特定部分处于摄像头系统260的视野,并处于期望的焦距状态。指令将选择一个具有期望放大率的镜头,并启动光源200-240中的一个或多个,以在图像获取过程中提供期望的工件20的照明。一般说来,指令还将定义对结果图像所执行的各种分析和检查操作。此外,如将参考图4A-5B所充分描述的那样,本发明提供了多种方法,这些方法使得用户可以输入在学习模式操作过程中与移动图像获取兼容或不兼容的混合操作,并且相应的操作将被自动地编程到包括连续运动图像获取序列的部分程序中,以在部分程序的执行过程中增加吞吐量。一般说来,对于作为连续运动图像获取序列的一部分而获取的一个工件图像集,控制系统120命令摄像头系统260捕获图像集中的工件20的每个图像,并将捕获的图像输出给控制系统部分120。然后,控制系统部分120将在控制器125的控制下,通过输入/输出接口130输入捕获的图像,并将捕获的图像存储在图像文件存储器部分141中,以用于随后的分析和检查。控制器125还可以将捕获的图像显示在显示设备136上。
控制系统部分120适用于分析和检查这些工件检查图像中的,或者在非兼容操作过程中获取的图像中的工件特征,并且存储和/或输出检查结果或基于分析或检查结果执行其它恰当的操作。在各种典型实施例中,当用户使用机器视觉检查系统100来根据本发明为工件20创建工件图像的分析/检查程序时,用户一般生成程序指令是通过利用图像获取和分析/检查训练序列来移动机器视觉检查系统100,使得工件程序指令获取训练序列以及各种系统和方法根据本发明安排将相关部分程序的指令以便利增加的检查吞吐量,如上述及下面将要更加详细描述的。
一般说来,对于非兼容性操作,如自动聚焦操作或部分坐标系统确定操作,例如所需图像的获取和相关分析/检查操作,将以交叉的、连续的或几乎连续的方式执行。一般说来,对于与移动图像获取模式的操作兼容的操作,这些指令将导致机器视觉检查系统首先连续地获取或捕获并存储图像集,而不中断获取序列,以执行分析或检查操作,也即,以非交叉方式,随后重调存储在存储器140的图像文件存储器部分141中的捕获的工件检查图像,并使用包括在存储器140的视频工具部分143中的各种视频工具所提供的能力,对图像执行各种分析/检查操作。该处理对已捕获的图像集中的图像重复进行。通常,视觉系统可以更快地获取该图像集,因为它可以在图像获取过程中相对于工件连续地移动摄像头。参考共同授让的和审查的序列号为No.10/435,625的美国专利申请,该申请在此引入作为参考,可以更好地理解与“非交叉”移动图像获取操作相关的各种一般考虑。但是,应该认识到,尽管移动图像获取序列及随后执行的分析/检查操作是作为’625申请中的操作的独立模式而一般描述的,根据本发明的原理,这些非交叉操作可以出现在包含在具有“中断”操作序列的相同部分程序中的一个或多个非交叉操作序列中,如前所述以及下面的更加详细的描述。因此,包括在’625申请中的描述补充了本披露,但不应该将之理解为对本发明的限制,本发明在其范围和应用中更通用。
可与移动图像获取模式的操作兼容的某些类型的视频工具,可以包括,例如,形状或模式匹配工具,边缘和/或边界检测工具,圆和尺寸测量工具等。这些工具被常规使用,并包括在各种商用机器视觉检查系统,如视觉系统的QUICK VISION系列,以及上述的相关QVPAK软件。对于图像集中的每个图像,在一个实施例中,控制系统部分120将每个分析/检查操作的结果输出给输入/输出接口,以输出给各种显示设备136,包括视频显示器、打印机等。控制系统120还可以将每个检查操作的结果存储在存储器140中。
如上所述,用户能够使用一致的编程过程来对通用机器视觉检查系统进行编程,而不管特定的图像获取操作是否交叉于(或被“中断”)图像分析和/或特征检查操作(以传统方式),或者是否使用连续相对运动,而通过获取一个或多个图像而不交叉中断图像获取操作的图像分析操作,来提供较高的吞吐量,这是所希望的。例如,如果要以不同于工件的其它部分的放大率获取工件中的特定点的图像,那么在获取该图像前,必须有特定硬件调整改变放大率,并可能要通过自动聚焦再调整焦距。假定硬件调整要花费时间(可能是依赖于每种视觉系统的不确定的时间量),在某些情况下,在运动继续通过该图像获取位置之前,在期望的图像获取位置停止摄像头的移动,以保证有足够的时间使硬件调整完成,并在期望的位置获取相关图像,这可能是一种更简单、更保守、更健壮的编程习惯。因此,在以期望放大率获取相关图像之前,必须执行这些类型的硬件调整操作,并且可能与连续(移动)图像获取不兼容。换句话说,在这些非兼容操作(在此情况下是放大率改变和/或自动调焦操作)执行之前或过程中,任何先前的连续相对运动图像获取序列必须被停止(或中断),然后,如果随后的操作与移动图像获取兼容,则可以启动或恢复随后的移动图像获取模式的操作。
本发明目的在于通过自动生成部分程序,提高连续运动型视觉系统可用的部分程序,该部分程序一般包括上述两类操作要被以包括移动图像获取序列的方式执行的兼容操作,以及不需要用户区分学习模式操作过程中的两类操作的非兼容(中断)操作。在各种实施例中,用户不需要手动(或有意识地)切换或改变他们的学习模式操作输入的类型,以定义将兼容操作序列及非兼容操作安排在部分程序中的程序。在各种实施例中,本发明的一种方法被体现在计算机可执行指令中,该计算机可执行指令存储在工件程序生成器和执行器170和/或它的连续运动模式指令生成部分172中。
在一个可选实现中,该方法通常包括三个步骤。首先,该系统进入移动图像获取或连续运动学习模式,其中可以定义与移动图像获取兼容的图像集的获取和分析/检查。
第二,对于每个要定义的图像获取及相关分析/检查操作,确定该操作是否与移动图像获取兼容。如果该操作(操作集)被确定为兼容,则相关的图像获取被包括在移动图像获取序列中,它包括用于获取和存储工件图像集的机器控制指令集。同样,相关的分析/检查操作被包括在一个图像再调用和分析序列中,该序列包含用于再调用和分析/检查该存储的工件图像集的机器控制指令集。如果在另一方面,该操作被确定出不与移动图像获取兼容,那么建立在移动图像获取序列之外执行的指令集,它包括用于执行包括图像的获取和分析/检查的非兼容操作的机器控制指令集。第二步被按需要重复,以为工件编制要定义的每个部分程序操作的程序。
第三,所有确定出的指令序列被作为对该工件的工件部分程序的一部分而存储。
在另一个可选实现中,构建一个自动部分程序生成系统或方法,使得一旦一个操作被确定出与移动图像获取不兼容,则该部分程序生成系统或方法自动退出移动图像获取序列编程模式,以允许用户定义该模式(例如处于普通的“交叉”学习模式)外的非兼容操作。类似地,在定义了非兼容操作后,如果确定出另一个操作(或操作集)与移动图像获取兼容,该系统或方法自动再进入移动图像获取序列编程模式,以定义图像集的连续获取以及随后的再调用和分析/检查操作。在各种典型实施例中,从移动图像获取序列编程模式退出和(再)进入,对用户是完全透明的,用户可以简单地遵循普通学习模式编程过程,而根据本发明的部分程序系统和方法自动地流线连接特定的兼容操作,以包括一个或多个连续运动图像获取序列。
在各种实现中,关于一个操作是否与移动图像获取兼容的确定是在没有用户输入的情况下自动做出的。例如,与视频工具等相关的操作集可以被预定为与移动图像获取不兼容,而相关的预定信息,如“非兼容标记”或预结构化的指令序列,可以被存储在系统存储器中,例如在视频工具存储部分143等中。基于这些信息,每当用户请求定义这些预定非兼容操作中的一个时,例如通过连续运动模式指令生成部分172的控制或停用操作,工件程序生成器和执行器170可以自动退出移动图像获取编程模式,并生成恰当的“交叉”操作序列。在一个可选实现中,连续运动模式指令生成部分172可以被构建以分析视频工具或其他机器视觉检查系统工具的内在操作,确定它们是否与移动图像获取序列兼容,并由此生成恰当的“非交叉”或“检查”操作序列。例如,在各种可选实施例中,某些可以被连续运动模式指令生成部分172预定或分析为与移动图像获取非兼容的操作可以包括(1)一个可变运动操作,包括相对于工件移动摄像头,但实际的相对移动依赖于运行时每次执行而变化,(2)其完成时间依赖于特定系统硬件特性的操作,(3)运行时需要从即刻图像分析中导出信息的操作,(4)包括在相同位置对工件拍摄多个图像的操作,(5)“与图像无关的”坐标系统变化,例如在各种实施例中,将坐标系统的原点“平移”至全局或当前坐标(100,0,0),或者将坐标系统“旋转”45度的执行被视为非兼容操作。
图4A是一个说明了一种用于为包括连续运动图像获取序列及与移动图像获取不兼容的操作的视觉系统创建部分程序的典型方法(或例程)300的流程图。方法或例程300通常当学习模式操作被开始时而开始,并且希望从学习模式操作中得到的部分程序包括移动图像获取序列。在方框302,对要被定义的图像获取和分析/检查操作集中的每一个,下面的方框304-312被控制执行。
在判决方框304中,确定要被定义的当前操作或当前操作集(例如与视频工具相关的操作集)是否与移动图像获取序列或移动图像获取模式的操作兼容。如上所述,某些操作与移动图像获取不兼容,因此停止与执行这些非兼容操作相关的摄像头与工件间的相对移动是有利的。作为另一个实例,一个操作可以被确定为非兼容,如果该操作需要使用硬件系统或硬件操作(如移动镜头系统以改变放大率)的特定集合,或软件系统或图像处理操作(如执行自动调焦操作或当坐标系统将用于未来操作时,基于当前图像确定坐标系统等)的特定集合。通常,自动做出与特定操作是否与移动图像获取兼容相关的确定是有利的,但是,在各种实施例中,半自动和/或手动兼容性确定,对至少某些操作或应用,同样在本发明的范围内。例如,当定义操作时,根据上述准则或用户认为的任何其它合适的准则,用户可以指定每个操作是否是兼容的。一般地,操作是与移动图像获取不兼容的,如果运行中当执行时它们导致可变结果,如果它们修改了后面的获取或分析操作的执行(例如下面将描述的部分坐标系统变化或“PCS”变化),或者如果它们最好在摄像头保持与工件静止时执行。例如可以通过选择与操作相关的图形用户界面窗口或菜单中的复选框等,来指示和/或选择兼容性。作为另一个选择,兼容性的确定可以自动做出,然后由用户手工或半自动确认。在各种实施例中,多个一般类别可以被用于确定是否任何操作与移动图像获取兼容。参考图4B所述的操作,可以在各种实施例中用于方框304的操作。但是,用于执行方框304的可选方法同样在此进行了描述,本领域技术人员可以根据此披露中的信息设计进一步的可选方法。
如果在方框304确认出一个操作与移动图像获取序列兼容,那么操作进行到方框306,其中图像获取操作被编制为移动图像获取序列的一部分,以及进行到方框308,其中对图像的相关分析/检查操作被编程为操作序列的一部分,它在图像的获取和存储之后再调用存储的图像,然后根据定义的操作分析和/并检查图像。否则,如果在方框304确定出一个操作与移动图像获取序列不兼容,那么操作进行到方框310,其中图像获取操作和对图像的相关的分析/检查操作,被编程为序列的一部分,其中相对运动的至少一个轴被停止,或降低到与非兼容图像获取和分析/检查操作相关的一个无关紧要的速度。在图4A中所示的实施例中,如果一个先前操作集被编程为“当前”非交叉图像获取序列的一部分,则该序列通常被方框310的操作中断或结束。
在方框308或310之后,操作进行到判决方框312,其中确定是否还有要被执行的图像获取和/或分析/检查操作。如果在方框312确定出还有要被包括到当前部分程序的操作,例如可以由用户输入学习模式中的额外的操作来指示,那么操作返回方框304,其中该方法继续。否则,如果在方框312确定出没有还要包括在当前部分程序中的操作,例如可以由用户终止学习模式来指示,那么操作进行到方框314,其中从先前步骤得到的部分程序的指令被保存以为将来使用,方法或例程300结束。
图4B是一个说明了一个用于确定特定操作是否与移动图像获取兼容的典型方法或例程340的流程图。在图4B中所示的实施例使用5个一般类别来识别非兼容操作,并适用于提供一个用于执行图4A中所示方框304的方法。方法或例程340通常当在学习模式中定义了图像获取和分析/检查操作集时而开始,然后在方框341命令执行对应于下列判决方框342-346的操作。
在判决方框342,确定要被定义的当前操作或当前操作集(例如与视频工具相关的操作集)是否包括可变运动型的操作,即包含相对于工件移动或调整摄像头的操作,尽管实际的移动或调节可能在运行时仅变化一部分。可变运动操作的实例包括,但并不仅限于,AutoFocus(自动调焦)操作和AutoTrace(自动跟踪)操作。简而言之,AutoFocus操作包含在沿相对于工件的Z轴调整摄像头时拍摄的工件的一部分的多个图像,以及基于所获取图像的分析选择能产生最佳焦距图像的摄像头的位置。AutoTrace模式包含跟随工件上的一个目标特征的边缘或边界(或一个参考点集)。这两种操作被常规包含,并用在上述的视觉系统的QUICK VISION系列以及相关的QVPAK软件中。这两种操作都需要相对于工件移动摄像头,但是摄像头的精确移动依赖于每个正被检查的工件在运行时会变化。另外,在AutoFocus操作过程中,当摄像头没有相对于工件的X-Y运动时,最佳焦距位置(沿Z轴)被最好地确定出。因此,可变运动操作与移动图像获取序列不兼容。所以,如果在方框342确定出一个操作是可变运动操作,在各种实施例中,它被随后编程为非兼容和/或交叉的部分程序指令集,例如,通过进行到如所示的图4A的方框310。下面将参考图5A和5B描述一个可能的编程非兼容和/或交叉部分程序指令,以及兼容和/或非交叉部分程序指令的实施例。
仍参考图4B,如果在方框342确定出操作不是一个可变运动型的操作,那么操作继续进行判决方框343,其中确定该操作是否是完成操作所需时间依赖于特定的硬件系统性能或在特定视觉系统或是可以用于实现部分程序类型的视觉系统间变化的定时特性的类型的,或者否则在部分编程时是否是可被可靠预测的。例如,改变摄像头所看到的图像的操作,以及在相关图像被获取之前不能被完成的操作,都是非兼容的。这种操作的实例包括改变视觉系统的放大率的操作,或者旋转工件载物台(或转位工作台)的操作。依赖于所使用的特定系统,完成这些操作所涉及的时间是变化的,有时即使在相同系统中,如果对图像获取必要的硬件操作没有及时完成,图像获取将不能在工件的适当位置,或者可能产生无法估计的结果。因此,为了在各种实现中提供比较简单的和健全的部分编程,如果完成特定操作的时间不能在程序的执行过程中被以足够的可靠性预测,或者知道在根据某些触发信号或用在特定应用中的准则触发图像获取之前,它将花费比可用时间更多的时间,那么它被确认为与移动图像获取非兼容,并且随后它被编程为非兼容和/或交叉的部分程序指令集,例如通过进行到如所示图4A的方框310。
仍参考图4B,如果在方框343确定出操作不是这样一种类型,完成操作所需时间依赖于特定硬件系统性能或定时特性,与各种移动图像获取操作所需时间相比操作所需时间也不是过多的,那么操作继续进行判决方框344,其中确定当前操作是否需要从“即刻”的图像分析中得到的信息。如果是这样,这种操作与移动图像获取非兼容。这种类型的操作的实例包括,将坐标系统(例如部分坐标系统)校准到位于当前工件的图像中的特定特征集。例如,该操作通常包含三个步骤从内存或硬盘加载部分坐标系统(PCS)设置指令;依靠在期望工件图像中确定的一个或多个工件特征位置校准PCS;当解释部分程序中的随后的部分程序指令中指定的或参考的坐标值时,不论对相同图像或另外的图像,都将工件的依赖图像的PCS建立为要用的坐标系统。如果一个操作需要基于这种“即刻”的图像分析得到或实现信息,则该操作被确定为与移动图像获取不兼容,它随后被编程为非兼容和/或交叉的部分程序指令集,例如通过进行到如所示图4A的方框310中。
仍参考图4B,如果在方框344确定出操作不是一种需要“即刻”图像分析的类型的操作,那么操作继续进行判决方框345,其中确定一个操作是否包含在相同位置拍摄工件的多个图像,例如最优化照明条件。这种操作的实例包括,亮度控制操作,双区域对比度控制操作,照明向导操作等。这种操作示例于前面参考的商用的基于PC的视觉系统的QUICK VISION系列和从位于Aurora IL的MitutoyoAmerica Corporation(MAC)公司可以获得QVPAK软件。简而言之,双区域对比度控制操作包含一个图像中的两个相临区域的百分对比度的重复分析,以最优化它们间的对比度,从而增强这两个区域间的边缘的清晰度。照明向导操作包含在照明设置的不同组合下拍摄多幅图像,通过选择性地叠加图像,模拟和插入各种照明设置进一步组合,并基于最好的真实和/或模拟/插值图像识别出一个照明设置组合,该光线组合为获取图像提供了最优的或足够的照明条件。这些操作中的每一个都包含拍摄多个图像,并基于多个图像的比较分析确定最优照明条件。当摄像头相对于工件保持静止以可以获得相同位置的多个适合比较的图像时,这些操作被最好地执行。因此,如果在方框345一个操作被确定为处于该类操作中,则该操作被确定为不与移动图像获取兼容,并且随后被编程为非兼容和/或交叉的部分程序指令集,例如通过进行到如所示图4A的方框310。
仍参考图4B,如果在方框345确定出操作不是一种包含在相同位置拍摄工件的多个图像的类型的操作,那么操作继续进行方框346,其中确定操作是否为随后的操作修改要被使用的坐标系统。前面参考方框344描述的部分坐标系统(PCS)提供了这种操作的一个实例。这种操作还包括“与图像无关的”坐标系统变化,例如,在各种实施例中,“平移”坐标系统的原点至一个全局或当前坐标位置(100,0,0),和/或将坐标系统“旋转”45度的命令。如果在方框346一个操作被确定为处于该类操作中,则该操作被确定为不与移动图像获取兼容,并且随后被编程为非兼容和/或交叉的部分程序指令集,例如通过进行到如所示图4A的方框310。否则,如果一个操作被确定为不是各个方框342-346所分析的各类型操作的任何一个,那么它被确为与操作的移动图像获取序列兼容,并随后被编程为兼容和/或非交叉的部分程序指令集,例如通过进行到如所示图4A的方框306。
参考5个判决方框342-346所述的非兼容型操作,仅仅表示用于将操作分为兼容操作和非兼容操作的典型类别,对于各种不同机器视觉系统、视频工具实现或应用,操作的其它类型/类别以及组合可能与移动图像获取非兼容,基于该披露这些对于本领域中的技术人员将是显而易见的。例如,根据先前描述,PCS操作可以被可选地分类为“即刻图像分析”操作,或“坐标系统修改”操作,或者这两者。类似地,各种自动调焦操作可以被可选地分类为“即刻图像分析”操作,或“相同位置的多图像”操作,或者这两者。因此,确定一个操作是否与移动图像获取序列兼容的方法并不限于参考图4B所述的实例的方法,使用较少或较多类别的系统,或者甚至不使用“分类”的方法也是可以被设计的。另外,尽管在各种实现中确定最好是全自动做出的,但在各种其它实现或应用中它也可以被手动或半自动执行。
图5A示意性地说明了以交叉方式由用户输入的学习模式的图像获取及分析/检查操作集350,以及相应的根据按照本发明的部分程序指令序列的一个典型方法的部分程序指令集370的第一实施例的示意性表示部分。在学习模式的图像获取及分析/检查操作集350中,在方框352,用户输入图像获取操作(例如,怎样相对于工件放置摄像头,使用什么光源和照明控制参数等)和分析/检查操作的一个交叉操作集,包括图像C1的获取和分析操作集353,图像C2的获取和分析操作集354,与图像C3无关的操作集355,根据在此描述的原理,这里采用的上述操作集的每一个都包括与操作的移动图像获取序列兼容的操作。如相应的部分程序指令集370中所反映的那样,例如根据前面所述的方法或例程和/或原理,图像C1和图像C2分别的获取和分析操作集353和354,被确定为兼容型的操作,并且它们的相应的部分编程指令被安排到包括用于获取和存储各个C1和C2图像的指令的移动图像获取指令序列372中,以及被安排到图像的分析/检查指令序列373中,图像的分析/检查指令序列373包括再调用各个C1图像并执行各个C1-A和C1-B操作等,再调用各个C2图像并执行各个C2-A和C2-B操作等,与由各个方框353和354的学习模式操作所定义的相对应。
如图5A中所示,例如,根据前面所述的方法或例程和/或原理,与图像C3无关的操作集355也被确定为兼容型操作,因此它们的相应的部分编程指令被安排为图像的分析/检查指令序列373的下一元素。例如,比如从英寸变成米制单位的操作,输出和/或显示控制操作,以及不落入前面参考图4B的方框342-346所述的类别中的许多其它类型的操作,是与图像无关的操作,可能被包括在操作的非交叉序列中,或者独立地,或者与如典型的非交叉序列方框373中所示的图像的再调用和分析操作一起。
接着,在典型的学习模式操作集350中,在方框356,用户输入图像获取和分析/检查操作的交叉集,包括图像I1-A和I1-B的获取和分析操作集等,根据在此描述的原理,该操作集包括与操作的移动图像获取序列不兼容的操作。在某些情况下,这些指令可能包括实现操作,例如移动到基于图像I1-A、I1-B等的分析所确定的最终自动调焦位置的操作。此外,在方框356,用户接着输入非兼容的与图像无关的操作I2,例如先前在此描述的坐标系统的原点的平移操作,或者其它不依赖于图像信息并且不落入前面参考图4B的方框342-346所述的类别中的其它操作等。
如相应的部分程序指令集370中所反映的那样,例如根据前面所述的方法或例程和/或原理,在方框356执行的操作集被确定为非兼容型的操作,因此相应的非兼容交叉图像获取和分析/检查指令序列方框374被插入,以中断或结束先前的移动图像获取指令序列372。对应于非兼容图像I1-A、I1-B的操作等的指令,以及任何实现I1-A和/或I1-B操作的结果的指令(如果适用),以及所后的操作I2,被以“交叉”方式安排到指令块374中。在此情况下,I1-A图像获取操作之后是对该图像的任何相关的非兼容图像I1-A操作,接着I1-B图像获取操作之后是对该图像的任何相关非兼容图像I1-B操作,以及是任何实现先前的I1-A和I1-B操作的结果的指令等(如果适用)。接着,当与图像无关的非兼容操作I2被输入后,相关的指令被简单地安排为交叉的非兼容指令方框374中的下一元素。
接着,在典型的学习模式操作集350中,在方框357,用户输入图像获取和分析/检查操作的交叉集,包括图像C4的获取和分析操作集358,以及图像C5的获取和分析操作集359,根据在此描述的原理,这两个操作集都被认为是与操作的移动图像获取序列兼容的操作。因此,如相应的部分程序指令集370中所反映的那样,例如根据前面所述的方法或例程和/或原理,图像C4和图像C5的获取和分析操作358和359分别被确定为兼容型操作,相关的指令被编程到非交叉指令方框376和378的第二序列中,以前面针对描述兼容操作方框353和354,以及相关的非交叉指令方框372和373的方式。
在部分程序指令集370的示意性说明的实例中,对应于学习模式操作,根据移动图像获取序列与获取和分析/检查图像兼容的指令,被安排到第一移动图像获取指令序列372及相关的随后的图像分析/检查指令序列373,以及第二移动图像获取指令序列376及相关的随后的图像分析/检查指令序列378中,使得可以使用移动图像获取方法连续地获取尽可能多的图像,从而最大化检查的吞吐量。非兼容操作指令序列374被以一种排列插入,出于前面所述原因,它将结束先前的移动图像获取指令序列372(及其相关的图像的分析/检查指令序列373)。应该认识到,如果在输入方框356的非兼容操作之前,用户输入了额外的“兼容型”学习模式的操作,则移动图像获取指令序列372,以及图像的(再调用和)分析/检查指令序列373的对应部分,会被扩展而包含在非兼容操作之前输入的这些操作。
部分程序指令集370的排列被描述为使非兼容操作指令序列374以一种排列被插入,它将结束先前的移动图像获取指令序列372(及其相关的分析/检查指令序列373),并且移动图像获取指令序列376(及其相关的分析/检查指令序列378)意味着是一个“新的”移动图像获取指令序列。但是,应该认识到,在一个可选的描述和/或部分编程实现中,可能会说非兼容操作指令序列374被一种排列插入,在前面的“兼容”方框372及相关的分析/检查指令序列373建立后,它将中断移动图像获取模式的部分编程,然后非兼容操作指令序列374被以提供图像的获取和分析/检查操作的交叉排列的“传统的”部分编程模式编程,然后“兼容”方框操作358和359被识别为兼容操作,因此,方框376及相关方框378的指令序列被通过恢复移动图像获取模式的部分编程而编程。应该认识到,这两个可选描述和/或实现的最终结果在功能上基本相同,每个都包括在本发明的范围内。
图5B说明了针对图5A中所示的学习模式的图像获取及分析/检查操作集350的,根据按照本发明的部分程序指令序列的第二典型方法的部分程序指令集370”的第二实施例的示意性表示部分。部分程序指令集370’具有一个与前面用于描述部分程序指令集370的结构相类似的结构,除了指令序列373’被构造以执行与那些构造在图5A所示的部分程序指令集370中的分离的指令序列方框373和378中的操作相类似的操作的组合。因此,将仅描述部分程序指令集370和部分程序指令集370’之间的主要区别。
最初,包括在指令序列372’中的指令以及指令序列373’的初始C1、C2和C3操作,被如前面参考图5A的指令序列372和373所描述的那样来建立。接着,可能与非兼容操作指令序列374相同的非兼容操作指令序列374’,被以一种排列插入,出于前面所述原因,它将结束先前的指令序列372’。但是,与部分程序指令集370相反,在部分程序指令集370’中,指令序列373’不被结束,仅被非兼容操作指令序列374’中断,然后在非兼容操作指令序列374’之后被恢复,通过包括与构建在图5A所示的部分程序指令集370中的分离指令序列方框378中的指令类似的指令。通常,与指令序列373相比,这需要将额外的指令包含到指令序列373’中,这使得与图5B相关的编程方法比与图5A相关的编程方法要稍微更复杂一些,和/或可能更不健全。
例如,出于解释的目的,假定包括在图5A的非兼容方框356中的与图像无关的操作I2修改用于随后操作的坐标系统。在与序列370相关的方法中,结束的指令方框373的C1和C2操作指令被编程,以在根据场景改变坐标系统的非兼容指令方框序列374的指令被执行之前,被在与图像C1和C2相关的相同坐标系统中执行。因此,在指令序列方框373中不包括特殊的“坐标系统”指令。相反,在与序列370’相关的方法中,指令方框373’的C1、C2和C3操作指令一般必须被编程,以与图像C1和C2以及与图像无关的C3操作相关的坐标系统相同的坐标系统中被执行。但是,因为方框373’的指令在根据这里所述的场景改变坐标系统的非兼容操作指令序列374的操作之后被执行,所以,在执行相关的C1-X和C2-X的图像分析/检查操作以及与图像无关的C3操作时,实现与C1和C2的图像和与图像无关的C3操作的坐标系统的指令被包括在指令序列方框373’中。因为类似的原因,在与序列370’相关的方法中,“中断的”指令方框373’的C4和C5操作指令必须被编程以在与图像C4和C5相关的坐标系统相同的坐标系统中被执行。但是,因为方框373’的C4和C5操作指令在根据这个场景可能会改变坐标系统的,并且实现要与方框373’的C1、C2和C3操作相关的坐标系统的特殊“坐标系统”指令之后被执行,在执行相关的C4-X和C5-X的图像分析/检查操作时,实现与C4和C5的图像相关的坐标系统的附加特殊“坐标系统”指令需要被包括在指令序列方框373’中。
应该认识到,不管额外的部分编程的复杂性,使用上述的可选的部分编程原理,部分程序指令集370’被提供,其中对应于学习模式操作的,根据移动图像获取序列与获取和分析/检查图像相兼容的指令,被安排到第一和第二移动图像获取指令序列372’和376’,以及相关的随后的图像分析/检查指令序列373’中,以使得使用移动图像获取法可以连续地获取尽可能多的图像,从而最大化检查的吞吐量。
图6是一个示出了用于执行示意性表示的部分程序400的说明性实施例的流程图,其中示意性表示的部分程序400用于自动执行包括连续运动图像获取序列的指令序列。在方框401,一个部分程序被输入或初始化到机器视觉系统中。在方框402,对于在部分程序中定义的每个操作或操作集,控制下列方框403-410的执行。
在判决方框403,确定当前操作或当前操作集是否是非兼容或中断操作或序列的一部分,例如,基于参考图4B描述的方法,或者基于操作的相关的预定分类,或一个识别标记或部分程序中的语句,或其它已知方法。用于执行方框403的可选方法可以由本领域中的技术人员基于本披露中的信息设计。
在方框403,如果一个操作被确定出是非兼容或中断操作序列,则操作进行到方框404,其中如果移动图像获取序列正在进行,则它被结束或中断,与移动图像获取序列相关的图像被再调用,并且执行它们的相关分析和检查操作,并且相关结果被输出和/或存储。在方框404的操作结束后,在方框405执行非兼容或中断的操作或序列(在方框403中确定)。
在方框403,如果一个操作被确定出不是非兼容或中断操作或序列的一部分,则操作进行到判决方框407,其中确定当前操作是否是正在进行的移动图像获取序列的一部分。如果当前操作是当前移动图像获取序列的一部分,则操作进行到方框408,其中控制机器视觉系统以执行沿着或“飞越”与当前移动图像获取序列相关的路径,并获取和存储相关图像。否则,在方框407,如果一个操作被确定为不是移动图像获取序列的一部分,则操作进行到方框409。在此情形下,通过到达方框409,认为当前操作是操作的当前图像再调用和分析检查序列的一部分(还可能包括特定的独立操作,如上所述),并且执行当前操作,输出和/或存储相关的结果。
在方框405、408或409中的任何一个之后,操作进行到判决方框410,其中确定是否还有另外的要被执行的部分程序操作。如果在方框410确定出在当前部分程序中还有还要执行的操作,则操作返回方框402,该方法继续。否则,如果在方框410确定出没有还要被执行的操作,则该方法。
图7是一个来自视频显示器的示例屏幕截图,它说明了用户接口特征,该接口特征使得用户可以根据本发明的原则确定是否要实现部分程序的创建,以及学习模式的部分编程。在图7中,视频显示器700包括一个工件图像显示窗口703、一个视频工具面板706、一个包括一个Z轴焦矩控制部分708和一个X-Y运动控制部分709的移动控制面板707、和一个X-Y-Z位置显示面板710。视频显示器700还包括一个包括”学习”模式菜单选项702的下拉菜单面板701,“学习”模式菜单选项702可以被例如用户将光标放置在菜单选项上并点击来选中。当学习模式被激活或选中时,由菜单选项旁边的出现的复选标记来指示。在图7所述的实施例中,下拉菜单面板701还包括一个“连续运动模式”菜单选项703,可以被例如用户将光标放置在菜单选项上并点击来选中或取消,以确定根据本发明的连续运动图像编程方法或例程是否将在学习模式部分编程操作中被激活,如前所述。当在学习模式操作过程中连续运动部分编程方法要被激活时,由菜单选项旁边的出现的复选标记来指示。因此,在图7所示的实施例中,根据用户通过如上所述的图形用户界面的特征的输入,根据本发明的系统和方法可以被激活或停用。当连续运动部分编程方法在学习模式操作过程中被停用时,在学习模式操作过程中提供传统的部分编程结果。在根据本发明的各种实施例中,用户可能会使用相同的学习模式操作的入口实践,而不管是使用连续运动部分编程方法还是传统的部分编程方法,但是,各自产生的部分程序将具有不同的指令排列,如上所述。在各种其它实施例中,在所有的学习模式操作过程中,连续运动部分编程方法都被激活,菜单选项703可能被省略。
尽管说明和描述了本发明的优选和典型实施例,应该认识到,根据本发明的原理,在不脱离本发明的精神和范围的情况下可以进行各种改变。
权利要求
1.一种用于对用于检查工件的精密机器视觉检查系统进行编程的方法,该精密机器视觉检查系统包括一个由至少一个摄像头和一个工件载物台组成的图像获取系统,和一个控制系统部分,其中工件载物台和摄像头中的至少一个是可移动的,以提供它们之间的相对运动,该方法包括用户操作该精密机器视觉检查系统以在学习模式的操作中执行交叉有多个图像分析操作的多个图像获取操作;确定在学习模式的操作中执行的各个操作是否是下列之一,a)与操作的移动图像获取序列兼容的兼容操作,和b)与操作的移动图像获取序列不兼容的非兼容操作;和如果各个操作被确定为兼容操作,提供相应的各个部分编程指令,用以自动地为多个图像提供移动图像获取序列。
2.如权利要求1所述的方法,其中确定各个操作是否是兼容操作和非兼容操作之一的步骤在没有用户输入的情况下自动进行。
3.如权利要求1所述的方法,其中确定在学习模式的操作过程中执行的各个操作是否是兼容操作包括确定各个操作是否是可变运动操作,其完成时间依赖于各个机器视觉监视系统的性能特性的操作,需要从即刻的图像分析中获得信息的操作,和包含在相同位置对该工件拍摄多个图像的操作中的一个。
4.如权利要求1所述的方法,其中如果各个操作被确定为非兼容操作,则该方法包括,提供相应的各个部分编程指令,用以自动地中断先前建立的操作的移动图像获取序列。
5.如权利要求4所述的方法,其中当部分程序指令在机器视觉系统上被执行时,该执行包括获取和存储使用连续运动获取多个图像,其后中断连续运动并执行获取图像并分析该图像以提供依赖于该图像的结果的操作,其后再调用使用连续运动获取和存储的该多个图像中的各个图像,并基于先前定义的各个分析操作分析再调用的各个图像。
6.一种计算机可读取介质,包括要被加载到用于检查工件的精密机器视觉检查系统的控制系统部分中的计算机可执行指令,该精密机器视觉检查系统包括一个由至少一个摄像头和一个工件载物台组成的图像获取系统,和该控制系统部分,其中工件载物台和摄像头中的至少一个是可移动的,以提供它们之间的相对运动,当在该控制系统部分上被执行时,该计算机可执行指令执行的步骤包括在精密机器视觉检查系统的学习模式的操作过程中,接收由用户输入的交叉有多个图像分析操作的多个图像获取操作;确定接收到的由用户输入的操作中的各个操作是否是下列之一,a)与操作的移动图像获取序列兼容的兼容操作,和b)与操作的移动图像获取序列不兼容的非兼容操作;如果各个操作被确定为兼容操作,提供相应的各个部分编程指令,用以自动地为多个图像提供移动图像获取序列。
7.一种用于对用于检查工件的精密机器视觉检查系统进行操作的方法,该精密机器视觉检查系统包括一个由至少一个摄像头和一个工件载物台组成的图像获取系统,和一个控制系统部分,其中工件载物台和摄像头中的至少一个是可移动的,以提供它们之间的相对运动,该方法包括(a)在学习模式操作过程中,使用移动图像获取模式的部分编程,该移动图像获取模式的部分编程提供了至少一个部分程序指令序列,该指令序列用以在非中断的连续运动序列中顺序获取工件的图像集,(b)对每个在学习模式操作过程中输入的图像获取和分析/检查操作,(i)确定该操作是否是与操作的移动图像获取序列兼容和非兼容的操作之一;(ii)如果该操作被确定为与操作的移动图像获取序列兼容,包括相应的在用于在连续运动过程中获取和存储工件图像集的指令的移动图像获取序列中的图像获取操作,并且还确定一个指令的图像分析/检查序列,该序列包括一个用于分析/检查各个图像的各个机器控制指令集,其中的各个图像包括在在连续运动过程中获取和存储的图像集中,其中用于分析/检查每个包括在在连续运动过程中获取和存储的图像集中的各个图像的各个机器控制指令,通过在获取和存储各个图像之后再调用和分析各个图像而被执行,以使得在连续运动过程中对工件的图像集的初始获取和存储可以在不中断连续运动的情况下被执行;(iii)如果操作被确定为与操作的移动图像获取序列不兼容,提供用于执行非兼容操作的部分编程指令的相应的各个序列,其中相应的各个序列被用以结束先前建立的指令的移动图像获取序列,(c)将所有确定的指令序列存储为针对工件的工件部分程序的一部分,其中步骤(b)(i)确定的基础上的步骤(b)(ii)和(b)(iii)的性能在没有用户输入的情况下被自动执行。
8.如权利要求7所述的方法,其中步骤(b)(i)在没有用户输入的情况下被自动执行。
9.如权利要求8所述的方法,其中一个操作集被根据它们的类型预定为与移动图像获取不兼容。
10.如权利要求9所述的方法,其中根据它们的类型被预定为与移动图像获取不兼容的操作集包括,可变运动类型的操作,其完成时间依赖于机器视觉监视系统的硬件性能特性的操作,需要从即刻的图像分析中获得信息的操作,和包含在相同位置对该工件拍摄多个图像的操作中的一个。
11.如权利要求7所述的方法,还包括在一个精密机器视觉检查系统上执行工件程序。
全文摘要
提供了用于机器视觉检查系统的部分编程的方法和系统,它允许用户很容易地定义学习模式操作过程中的交叉有相关图像的分析和/或检查操作的多个图像获取操作,并且在得到的部分程序图像获取操作中,至少一些图像被安排在以“非交叉”方式获取图像并存储图像的连续运动图像获取序列中,以增加机器视觉检查系统的吞吐量。与存储的图像相关的图像分析/检查操作随后通过再调用存储的图像而被执行。在此披露的编程系统和方法可以自动操作以便利相对不熟练用户对各种工件的快速编程,其中得到程序包括连续运动图像获取序列。
文档编号G01C11/36GK1805542SQ200510127288
公开日2006年7月19日 申请日期2005年12月1日 优先权日2004年12月20日
发明者马克·L.·德兰尼 申请人:株式会社米姿托约
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1