用于控制视觉引导机器人组件的系统和方法
【专利摘要】一种方法包括下列步骤:致动机器人臂以在起始位置执行动作;将机器人臂从起始位置朝向第一位置移动;根据视觉处理方法,确定在机器人臂到达第一位置时来自于第一位置的第一部件是否将准备好经受由机器人臂执行的第一动作;开始用于确定第二部件从第二位置的位置偏离和在机器人臂到达第二位置时第二部件经受由机器人臂执行的第二动作的准备度的视觉处理方法的执行;以及根据由视觉处理方法预确定的第一部件从第一位置的位置偏离而使用机器人臂在第一部件上执行第一动作。
【专利说明】用于控制视觉引导机器人组件的系统和方法
[0001]相关申请的交叉引用
[0002]本申请要求保护申请于2013年10月4日的美国临时申请N0.61/886764的利益,所述临时申请全部结合于此作为参考。
[0003]政府许可权利
[0004]本发明是在由能源部颁发的合同号为DE-EE-0002217的政府支持下做出的。政府在本发明中具有一定的权利。
【技术领域】
[0005]本公开涉及一种用于控制机器人组件的方法和系统。
【背景技术】
[0006]至少一些制造过程使用机器人组件以组装某些设备。例如,可使用机器人组件组装电池。机器人组件包括至少一个能够在部件上执行动作(诸如钻孔或焊接)的可动机器人臂。常规的机器人组件使用允许机器人在预编程的位置以预编程的定向操作部件的精密的工具、夹具或托盘。刚性的、昂贵的部件定位还将机器人组件的灵活性限制到特定的或单个的设备。
[0007]具有用于部件定位的相机视觉的机器人组件是一种用于无需精确、昂贵部件定位硬件以组装部件,并且从而使得生产更加灵活且成本高效的新的方法。然而,捕捉和处理视觉图像耗费时间和适当的结构以获得机器人引导所需的精度和可靠性。因此,对于优化制造过程,并且从而最小化使用机器人系统完全组装设备所需要的时间来说,结合地控制机器人臂操作和视觉处理是有效的。
【发明内容】
[0008]本公开涉及一种使用相机控制机器人组件的方法。在当前公开的方法中,相机可被用于导引机器人组件的机器人臂的运动。通过使用当前公开的方法,在机器人臂在运动中时相机捕捉部件的图像,而不是等待机器人臂到达其目标位置,从而最小化制造过程的循环时间。
[0009]在实施例中,该方法包括主要过程,该过程包括以下步骤:致动机器人臂以在起始位置执行动作;将机器人臂从起始位置朝向第一位置移动;根据视觉处理方法确定在机器人臂到达第一位置时来自于第一位置的第一部件是否将准备好经受由机器人臂执行的第一动作;开始用于确定第二部件从第二位置的位置偏离和在机器人臂到达第二位置时第二部件经受由机器人臂执行的第二动作的准备度的视觉处理方法的执行;以及根据由视觉处理方法预确定的第一部件从第一位置的位置偏离而使用机器人臂在第一部件上执行第一动作。该步骤在下一个机器人组装循环中重复,其中第一位置和动作分别重新被指定为新的起始位置和动作,而第二部件、位置和动作分别作为新的第一部件、位置和动作,并且第二部件的位置偏离作为新的第一部件的位置偏离。
[0010]该方法还包括视觉处理方法,即在后台中持续工作的嵌入式处理过程,具有以下的步骤:从指定位置识别将要经历动作的下一个部件;检查相机是否准备好捕捉来自于指定位置的识别的部件的图像;检查是否识别的部件处于图像捕捉的位置处;当机器人臂朝向指定位置移动时使用相机从指定位置捕捉所识别的部件的图像;当机器人臂朝向指定位置移动时,至少部分地基于所识别部件的位置而确定所识别的部件从指定位置的位置偏离;设置所识别的部件从指定位置的状态,以准备好经受动作。
[0011]本公开还涉及一种用于控制机器人组件的系统。在实施例中,本系统包括机器人组件,该机器人组件包括机器人臂和可操作地联接到机器人臂的臂致动器。臂致动器构造为将机器人臂从第一位置移动到第二位置。该系统进一步包括传送组件,该传送组件包括多个传送带。每个传送带被构造为移动多个部件,包括第一部件和第二部件。该系统还包括视觉组件,该视觉组件包括多个相机。每个相机与至少一个传送带对齐。这样,每个相机构造为捕捉部件中的至少一个的图像。系统还额外地包括系统控制器,该系统控制器与臂致动器以及多个相机和传送带电通讯地连接。系统控制器被编程为执行以下指令:致动机器人臂以在起始位置执行动作;将机器人臂从起始位置朝向第一位置移动;根据视觉处理方法,确定在机器人臂到达第一位置时来自于第一位置的第一部件是否将准备好经受由机器人臂执行的第一动作;开始用于确定第二部件从第二位置的位置偏离和在机器人臂到达第二位置时的第二部件经受由机器人臂执行的第二动作的准备度的视觉处理方法的执行;以及根据由视觉处理方法预确定的第一部件从第一位置的位置偏离而使用机器人臂在第一部件上执行第一动作。该步骤在下一个机器人组装循环中重复,其中第一位置和动作分别重新被指定为新的起始位置和动作,而第二部件、位置和动作分别作为新的第一部件、位置和动作,并且第二部件的位置偏离作为新的第一部件的位置偏离。
[0012]系统控制器还编程为执行视觉处理方法,即在后台中持续工作的嵌入式处理。视觉处理方法包括下列步骤:从指定位置识别将要经历动作的下一个部件;检查相机是否准备好捕捉来自于指定位置的识别的部件的图像;检查是否识别的部件处于图像捕捉的位置处;当机器人臂朝向指定位置移动时使用相机从指定位置捕捉所识别的部件的图像;当机器人臂朝向指定位置移动时,至少部分地基于所识别部件的位置而确定所识别的部件从指定位置的位置偏离;设置所识别的部件从指定位置的状态,以准备好经受动作。
[0013]当考虑结合附图时,本发明的上述的特征和优势以及其他的特征和优势可从以下用于实施本发明的最优模式的详细描述显而易见。
【专利附图】
【附图说明】
[0014]图1是用于组装设备的系统的示意性框图,其中该系统可控制机器人组件;
[0015]图2是示出了控制机器人组件的方法的流程图;
[0016]图3是示出了视觉处理方法的流程图,该视觉处理方法可为示于图2的方法的一部分;以及
[0017]图4是示出了观测优化方法的流程图,该优化方法可为示于图2的方法的一部分。
【具体实施方式】
[0018]参考附图,在所有这些视图中,同样的附图标记对应于同样的或类似的部件,图1示意性地图示了用于组装由多个部件X组成的设备(例如,电池)的系统100。系统100包括系统控制器102,该系统控制器具有至少一个处理器104和至少一个存储器106 (或者任意合适的非瞬时性计算机可读存储介质)。处理器104可为(一个或多个)专用集成电路(ASIC)、(一个或多个)电路以及(一个或多个)中央处理单元(即微处理器)的组合。存储器106可为只读存储器、只读可编程存储器、随机存取存储器、硬盘驱动器或其他合适的非瞬时性计算机可读存储介质的一个或多个的组合。处理器104可执行存储在存储器106中的控制器可执行指令。控制器可执行指令可为软件或固件程序或路径、(一个或多个)组合逻辑电路、(一个或多个)串联逻辑电路、(一个或多个)输入/输出电路和设备、合适的信号调节和缓存电路以及提供下面详细描述的功能的其他部件。可以想象系统控制器102可不包括存储器106,因为存储器106可以是系统控制器102的外部设备。
[0019]系统100进一步包括机器人组件101,其包括至少一个机器人臂108和用于驱动机器人臂108的至少一个臂致动器110,诸如电机。机器人臂108可包括可操作地联接到机器人致动器110的至少一个细长的支撑件112。例如,细长的支撑件112可被机械地连接到臂致动器110。这样,臂致动器110可致动机器人臂108,以将细长的支撑件112在三个自由度上移动(例如,旋转或平移)。除了细长的支撑件112外,机器人臂108包括至少一个端部效应器114和互连细长的支撑件112和端部效应器114的连结点116。如这里使用的,术语“端部效应器”是指能够在部件X上执行工作的工具。作为非限制性的示例,端部效应器114可为夹钳、钻孔机或焊接工具。因此,端部效应器114可例如抓取、钻孔或焊接部件X。连结部116可具有另外3个自由度,并且从而允许端部效应器114相对于细长的支撑件112移动。虽然图中示出了一个臂致动器110,机器人组件101可包括两个或更多的致动器110。例如,一个臂致动器110可移动细长的支撑件112,而另一个臂致动器110可将端部效应器114相对于细长的支撑件112移动。
[0020]机器人臂108可操作地联接到臂致动器110,并且从而臂致动器110可致动机器人臂108。基于机器人臂108的致动,细长的支撑件112可移动或端部效应器114可在部件X上执行动作。例如,臂致动器110可致动机器人臂108以使用端部效应器114抓取或释放部件X。替代地或额外地,臂致动器110可致动机器人臂108,从而将端部效应器114相对于细长的支撑件112旋转。臂致动器110可响应于来自于系统控制器102的命令或输入而致动机器人臂108。相应地,系统控制器102与臂致动器110通讯连接,例如电通讯连接。
[0021]系统控制器102也与传送组件118通讯连接(例如,电通讯连接)。传送组件118可为系统100的一部分,并且包括多个传送带120,每个传送带120构造为传输和移动部件X。进一步地,传送组件118包括可操作地联接到传送带120的传送致动器122,诸如电机。传送致动器122可被打开以移动传送带120。除了传送致动器122,传送致动器122包括可操作地关联于每个传送带120的部件传感器124。每个部件传感器124可检测部件X在沿传送带120的特定位置L处的存在或不存在。在图示的实施例中,每个部件传感器124可为能够检测部件X在沿传送带120的特定位置L处的存在或不存在的光电传感器,诸如发光二极管(LED)传感器。每个部件传感器124与系统控制器102通讯连接(例如,电通讯连接)。因此,系统控制器102可基于部件传感器124的输入而确定部件X在沿传送带120的特定位置L处的存在或不存在。
[0022]系统100进一步包括与系统控制器102通讯连接(例如,电通讯连接)的视觉或光学系统126。系统组件126可检测每个部件X在传送带120中的位置和定向。在图示的实施例中,视觉组件126包括能够捕捉部件X的图像的多个相机128。每个相机128可操作地关联于一个传送带120,并且从而可捕捉部件X在相应的传送带120上的图像。具体来说,每个相机128与至少一个传送带120对齐,使得每个相机128构造为捕捉在相应的传送带120中的部件X的至少一个的图像。相机128与系统控制器102通讯连接(例如,电通讯连接)。从而,系统控制器102可协调所有相机128的操作,并且可至少部分地基于由相机128捕捉的图像而确定部件X在传送带120上的位置和定向。系统控制器102可继而至少部分地基于部件X在传送带120上的位置和定向而向机器人组件101发送命令。视觉组件126可包括用于照明传送组件118的光源130,并且从而最小化当相机128捕捉部件X的图像时环境光的影响或环境光的缺少。
[0023]为了提高由相机128捕捉的图像的质量,视觉组件126的某些特征需要被微调,以检测错误(诸如当部件X没有按计划移动时)并且响应于所检测的错误而控制系统100。例如,光源130的光通量可被调整以最小化如上所述的环境光源对相机128的影响。系统控制器102可被编程为使得其可识别部件X的某些物理特征。识别部件X的物理特征是有用的,可帮助系统控制器102确定X的位置和定向。此外,相机128的曝光时间也可被调整为提高由相机128捕捉的图像的质量。如这里所使用的,术语“曝光时间”是指相机的快门打开以允许光线到达相机128的感光传感器的时间量。视觉组件126对比度阈值可为被调整为提高由相机128拍摄的图像的质量。在本公开中,术语“对比度”是指在图像的亮和暗的区域之间的亮度的差别的度量,而术语“对比度阈值”是指相机的最小的可感知的对比度。
[0024]参考图2,本公开还涉及一种用于控制机器人组件101的方法200。在方法200中,当机器人臂108移动时,相机129可捕捉部件X的图像,以最小化用于完全组装设备(诸如电池)的组装部件X所需的时间。方法200起始于步骤202。在步骤202中,系统控制器102经由臂致动器110而命令机器人臂在起始部件上执行起始动作。例如,系统控制器102可命令机器人臂108拾取或放下起始部件X。替代地,在步骤202中,系统控制器102可命令机器人臂108钻孔或焊接起始部件X。特别地,系统控制器102可命令端部效应器114在起始部件X上执行工作。当端部效应器114在起始部件X上执行工作时,机器人臂108处于起始位置。步骤202进行致动机器人臂108,以响应于来自于系统控制器102的命令而在起始部件X上执彳了起始动作。在起始部件X上执彳了起始动作之后,在步骤202中,系统控制器102将起始位置的动作标记F设为0FF,以指示不能立即执行在起始位置的下一个动作,且同时,如果机器人臂108将同样的位置作为第二位置再次访问,起始位置可用于通过视觉处理方法300而捕捉新图像(图3)。接着,方法200前进到步骤204。
[0025]在步骤204中,系统控制器102命令机器人臂108从起始位置朝向第一位置移动。为了这个目的,系统控制器102可向臂致动器110发送命令信号(或移动命令)。响应于该命令信号,臂致动器110致动机器人臂108,将机器人臂108从起始位置移动到第一位置。步骤204从而将机器人臂108从起始位置朝向第一位置移动。接着,方法200前进到步骤206。
[0026]在步骤206中,系统控制器102确定在机器人臂108到达第一位置时第一部件Xl是否将准备好经受由机器人臂108执行的第一动作。第一动作和此前的动作相同或者不同。例如,第一动作可为拾取第一部件X1、释放第一部件X1、钻孔第一部件X1、焊接第一部件、或能够由端部效应器114在第一部件Xl上执行的任意其他动作。
[0027]为了确定在机器人臂108到达第一位置时第一部件Xl是否将准备好经受由机器人臂108执行的第一动作,系统控制器102依赖于下面具体描述的视觉或光学处理方法或子程序300(图3)。视觉处理方法300(图3)可当系统102执行方法200时在后台中连续运行。通过使用可视处理方法300 (图3),系统控制器102可经由第一位置的动作标记F至少部分基于动作位置偏移而确定当机器人臂108到达第一位置时第一部件Xl是否将准备好经受由机器人臂108执行的第一动作。在本公开中,术语“动作位置偏移”是指部件Xl从机器人臂108的指定的第一位置的位置偏离,其中该指定的第一位置是存储在存储器106中并且是可被处理器104以及控制器102所访问的。因此“部件从指定位置的位置偏离”是指部件的位置距离存储在存储器106中的指定的位置的距离。该动作位置偏移可通过执行视觉处理方法300而确定(图3),并且当机器人臂108移动至动作位置时视觉处理方法300将部件X (例如第一部件Xl或第二部件X2)的位置和定向考虑在内。在步骤206中,系统控制器102基于第一部件Xl的动作位置偏移确定一旦机器人臂108到达第一位置时第一部件Xl是否将准备好经受由机器人臂108执行的第一动作。换句话说,系统控制器102基于第一部件Xl的相对于机器人臂108的指定的第一位置的位置偏离而确定在机器人臂108到达第一位置时第一部件Xl是否将准备好经受由机器人臂108执行的第一动作。第一部件Xl相对于机器人臂108的指定的第一位置的位置偏离至少部分地基于当相机128捕捉第一部件Xl的图像时的第一部件Xl的位置和定向。如上所讨论的,当机器人臂108朝向第一位置移动时,相机128捕捉并且处理第一部件Xl的图像。
[0028]如果系统控制器102确定当机器人臂108到达第一位置时,第一部件Xl没有准备好经受由机器人臂108执行的第一动作,该系统控制器102将再次执行步骤206 (包括视觉处理方法300)直到系统控制器102确定当机器人臂108到达第一位置时,第一部件Xl将准备好经受由机器人臂108执行的第一动作。特别地,如果第一部件Xl不在使用视觉处理方法300所确定的位置偏离(即,动作位置偏移)中,那么方法200将再次执行步骤206。在再次执行步骤206之前,系统控制器102可命令视觉处理方法300和机器人臂108停止预定的时间量。另一方面,如果在机器人臂108到达第一位置时第一部件Xl将准备好经受由机器人臂108执行的第一动作,那么方法200前进到步骤208。
[0029]在步骤208中,系统控制器102开始视觉处理方法300 (图3)连同将机器人臂108从第一位置朝向第二位置移动的过程的执行。在执行步骤208后,方法200前进到步骤210。
[0030]在步骤210中,臂致动器110致动机器人臂108,以当机器人臂108到达第一位置时在第一部件Xl上执行第一动作。从而步骤210使得仅当第一部件Xl在从第一位置的位置偏离中才使用机器人臂108在第一部件上执行第一动作。如上所讨论的,机器人臂108响应于来自于系统控制器102的早先的命令而在第一部件X上执行第一动作。第一动作可包括拾取第一部件Xl、释放第一部件Xl、钻孔第一部件Xl、焊接第一部件、或能够由端部效应器114执行的任意其他动作。在机器人臂108在第一部件X上执行第一动作之后,系统控制器102将第一位置的动作标记F设为0FF,指示下一动作不能立即在第一位置执行,并且同时,如果机器人臂108再次访问同样的位置,第一位置可用于通过视觉处理方法300而捕捉新图像(图3)。在执行步骤210后,方法200将在步骤212中将部件计数增加1,并且立即返回步骤204。然而,这次,在步骤204中,系统控制器102命令机器人臂108从第一位置(或将其重新指定为新的起始位置)朝向变为新的第一位置的第二位置移动。考虑到机器人臂108移动向新的第一位置,并且当机器人臂108到达第二或新的第一位置时,机器人臂108可能需要在第二部件或新的第一部件上执行动作,剩余的步骤被重复。
[0031]通过使用方法200,当机器人臂108朝向第一位置移动时而不是等待机器人臂108到达第二位置时系统100捕捉部件X (例如,第一部件Xl或第二部件X2)的图像,从而最小化制造过程的循环时间。使用捕捉的部件X的图像,系统控制器102可以确定在机器人臂108到达第二位置时第二部件X2是否将准备好经受由机器人臂108执行的第二动作。然而,这个确认可在机器人臂108到达第二位置之前发生,因此,方法200还可被称为观测方法。在方法200和300过程中,传送带120持续地将部件X(例如,第一和第二部件X1、X2)相对于机器人臂108移动。从而可以预期方法200还可包括使用一个或多个传送带120将部件X相对于机器人臂108移动。
[0032]参考图3,如上所讨论的,系统控制器102可执行视觉处理方法300,以确定在机器人臂108到达指定位置时部件X是否将准备好经受由机器人臂108执行的动作。当方法200执行时,视觉处理方法300持续地在后台执行。
[0033]视觉处理方法300起始于步骤302。在步骤302中,系统控制器102经由在步骤212中的部件计数而确定哪个部件X (例如,第一部件Xl或第二部件X2)需要经受由机器人臂108所执行的动作。作为非限制性的示例,在步骤302中,系统控制器102确定哪个部件X需要被机器人臂108所抓持、释放、钻孔或焊接。将经受机器人臂108所执行的动作的部件X可被称为所识别的部件。接着,系统控制器102转到步骤304。
[0034]在步骤304中,系统控制器102确定可在步骤302中捕捉所识别的部件X(例如,所识别的部件)的图像的相机128是否可用于捕捉所识别的部件的图片(或视频)。例如,如果由于相机当前正在拍摄另一部件的图片或在相机位置有动作执行而导致相机128不能拍摄所识别的部件的照片,那么动作标记F处于ON状态,接着系统控制器102确定相机128不可用,并且步骤304重复直到相机128可用。如果相机128可用,动作标记F处于OFF状态,那么步骤300转到步骤306。
[0035]在步骤306中,系统控制器102确定所识别的部件是否处于该部件可被拍照的位置(即,指定的部件位置)。该确认可至少部分地基于来自于部件传感器124的至少一个的输入。如果所识别的部件不处于指定位置,并且从而相机128不能拍摄所识别的部件的图片,则方法300重复步骤306。这时,传送带120持续地将所识别的部件相对于机器人臂108移动。如果所识别的部件处于指定位置,并且从而相机128能够拍摄所识别部件的图片,则方法300前进到步骤308。
[0036]在步骤308中,系统控制器102接收之前由相机128所捕捉的所识别的部件的图像。如以上关于步骤206所讨论的,当机器人臂108相对于传送带20移动时,相机128可捕捉所识别的部件X(例如,第一部件Xl或第二部件X2)的图像。在接收到所识别的部件X的图像后,方法300前进到步骤310。
[0037]在步骤310中,系统控制器102确定动作位置偏移。如这里所使用的,术语“动作位置偏移”是指所识别的部件(例如,第一部件Xl或第二部件X2)距离机器人臂108的指定位置(例如,第二位置)的位置偏离。具体地,系统控制器102可至少部分地基于来自于从所识别的部件X(例如,第一部件Xl或第二部件X2)的捕捉到的图像中收集的信息的输入而确定动作位置偏移(即距离机器人臂108的指定位置的位置偏离)。接着,方法300转到步骤312。
[0038]在步骤312中,系统控制器102将动作标记F设为0N,指示当机器人臂108到达指定位置时部件X将准备好经受由机器人臂108执行的第一动作。动作标记F和确定的动作位置偏移两个通讯至其他路径(即方法200)使得系统控制器102可在步骤208中确定在机器人臂108到达指定位置时,所识别的部件X是否将准备好经受由机器人臂108执行的动作。
[0039]参考图4,本公开还涉及一种用于确定当机器人臂108从第一位置朝向第二位置移动时可执行的观测动作(look-ahead act1n)的数量的方法400。如这里使用的,术语“观测动作”是指当机器人臂108移动时并且在机器人臂108到达其目标位置之前捕捉部件X(例如,第一部件Xl或第二部件X2)的图像。换句话说,方法400可用于确定当机器人臂108从第一位置向第二位置移动时一个或多个部件可被相机128捕捉的图像的数量。方法400从而可被称为观测优化方法,并且可例如用作堆叠处理的一部分。如这里使用的,“堆叠处理”是指多个部件在彼此顶部堆叠的过程。方法400起始于步骤402。
[0040]在步骤402中,系统控制器102确定机器人臂108在第一部件Xl上执行第一动作(例如,拾取、释放、钻孔、焊接)所消耗的时间量(即第一动作时间)。相应地,术语“第一动作时间”是指机器人臂108在第一部件Xl上执行第一动作所消耗的时间量。第一动作时间可被存储在系统控制器102的存储器106中。步骤402确定机器人臂108在第一部件Xl上完成第一动作所需要的时间量。然后,方法400前进到步骤404。
[0041]在步骤404中,系统控制器102确定机器人臂108从第一位置沿编程的路径以恒定的或可变的速度移动而行进到第二位置所消耗的时间量(即行进路径时间)。术语“行进路径时间”是指机器人臂108从第一位置沿编程的路径以恒定的或可变的速度移动而行进到第二位置所消耗的时间量。步骤404确定机器人臂108从第一位置行进到第二位置所需要的时间量。行进路径时间可被存储在系统控制器102的存储器106中。一旦系统控制器102确定了行进路径时间,则方法400前进到步骤406。
[0042]在步骤406中,系统控制器102确定机器人臂108在第二部件X2上执行第二动作(例如,拾取、释放、钻孔、焊接)所消耗的时间量(即第二动作时间)。相应地,术语“第二动作时间”是指机器人臂108在第二部件X2上执行第二动作所消耗的时间量。步骤406确定机器人臂108在第二部件X2上完成第二动作所需要的时间量。第二动作时间可被存储在系统控制器102的存储器106中。然后,方法400前进到步骤408。
[0043]在步骤408中,系统控制器102确定机器人臂108需要执行以根据存储在存储器106中的指令完成一个循环所需的重复运动序列的总数量(即“重复运动序列的总数量”)。在本公开中,术语“重复运动序列的总数量”是指机器人臂108需要执行以完成一个循环的重复运动序列的总数。重复运动序列的总数量可被存储在存储器106中。接着,方法400转到步骤410。
[0044]在步骤410中,系统控制器102确定根据存储在存储器106中的指令完成一个循环所需的观测动作的总数量(即观测动作的总数量)。如这里讨论的,术语“观测动作”是指当机器人臂108移动时捕捉部件X(例如,第一部件Xl或第二部件X2)的图像。因此,步骤410确定完成该循环所需的图像的总数量。具体地,系统控制器102可通过将观测动作的总数量等同于在步骤408中确定的重复运动的总数量而确定观测动作的总数量。例如,如果一个循环需要机器人臂108的5个重复性的运动序列,则系统控制器102将观测动作的总数量确定为也是5。接着,方法400前进到步骤412。
[0045]在步骤412中,系统控制器102确定当机器人臂108从第一位置行进到第二位置时的可行的观测动作的数量(即沿臂行进路径的可行的观测动作的数量)。如这里使用的,术语“臂行进路径”是指当机器人臂108从第一位置移动到第二位置时所行进的路径。为了确定沿臂行进路径的可行的观测动作的数量,系统控制器102从在步骤410中确定的观测动作的总数量的值减去I。例如,如果观测动作(如在步骤410中确定的)的总数量为5,那么系统控制器102从5减1,并且确定当机器人臂108从第一位置向第二位置行进时可行的观测动作的数量为4。在确定可行的观测动作的数量后,方法400转到步骤414。
[0046]在步骤414中,系统控制器102确定沿臂行进路径的可行的观测动作的数量是否为O。如果沿臂行进路径的可行的观测动作的数量为零,方法400转到步骤416,其中系统控制器102将可行的观测动作的数量调整为I。在将可行的观测动作的数量调整为I后,方法400持续到步骤418。另一方面,如果可行的观测动作的数量不是0,则方法400直接前进到步骤418。
[0047]在步骤418中,系统控制器102至少部分地基于在步骤412或416中确定的可行的观测动作的数量而确定相机128执行所有可行的观测动作所消耗的时间量(即所有可行的观测动作的时间)。“所有可行的观测动作的时间”是指在步骤412或416中确定的相机128执行所有可行的观测动作(即捕捉部件图像)所消耗的时间。接着,系统控制器102转到步骤420。
[0048]在步骤420中,系统控制器120确定当机器人臂108从第一位置行进到第二位置时,先前在步骤412或416中确定的所有可行的观测动作是否可被实际地执行。为了完成这个目的,系统控制器102将所有可行的观测动作的时间与下列项的和比较:(a)在步骤402中确定的第一动作时间;(b)在步骤404中确定的行进路径时间;以及(c)在步骤406中确定的第二动作时间。例如,为了执行步骤420,系统控制器102可计算下列方程:
[0049]Σ nT Qmagei) >T (A — B) +P ⑷ +P (B)
[0050]其中:
[0051]Σ J(Imagei)是至少部分地基于在步骤412或416中确定的可行的观测动作的数量而确定的相机128执行所有可行的观测动作所消耗的时间量;
[0052]T(A-B)是机器人臂108从第一位置沿编程的路径以恒定的或可变的速度移动而行进到第二位置所消耗的时间量(即行进路径时间),如在步骤404中确定的;
[0053]P(A)是机器人臂108在第一部件Xl上执行第一动作(例如,拾取、释放、钻孔、焊接)所消耗的时间量(即第一动作时间),如在步骤402中所确定的;以及
[0054]P⑶是机器人臂108在第二部件X2上执行第二动作(例如,拾取、释放、钻孔、焊接)所消耗的时间量(即第二动作时间),如在步骤406中所确定的。确定所有可行的观测动作的过程不需要实时执行。标称值可离线估计。进一步地,单个步骤的动作时间和行进时间并不需要相同。
[0055]如果所有可行观测动作时间不大于(a)在步骤402中确定的第一动作时间;(b)在步骤404中确定的行进路径时间;以及(c)在步骤406中确定的第二动作时间的总和,则方法400转到步骤422。在步骤422中,当机器人臂108从第一位置行进到第二位置时,系统控制器102命令相机128执行如在步骤412或416中确定的可行的观测动作(即,捕捉部件X的图像)次数。步骤422使用相机128执行在步骤412或416中确定的可行观测动作。
[0056]并且在步骤420中,如果所有可行观测动作时间大于(a)在步骤402中确定的第一动作时间;(b)在步骤404中确定的行进路径时间;以及(c)在步骤406中确定的第二动作时间的总和,则方法400返回到步骤412,其中系统控制器102如上所讨论地重新调整可行的观测动作的数量。当确定当机器人臂108从第一位置向第二位移移动时可捕捉的图像的数量时,方法400考虑图像处理时间;机器人臂108的特定动作;机器人臂108的加速、减速和速度;以及传送带120的操作。
[0057]由于实施本发明的最优模式已经被详细地描述,所以那些本公开涉及的技术类似的将认可用于在附加的权利要求的范围内的实践本发明的多种替代的设计和实施例。
【权利要求】
1.一种用于控制机器人组件的方法,包括 致动机器人臂,以在起始位置进行起始动作; 将机器人臂从起始位置朝向第一位置移动; 经由控制器执行视觉处理子程序,其中视觉处理子程序包括: 确定在机器人臂到达第一位置时,第一部件是否将准备好经受由机器人臂进行的第一动作; 确定第二部件从第二位置的位置偏离; 确定在机器人臂到达第二位置时,第二部件是否将准备好经受由机器人臂进行的第二动作;以及 如果机器人臂位于由视觉处理子程序预确定的第一部件从第一位置的位置偏离内,则使用机器人臂在第一部件上进行第一动作。
2.如权利要求1所述的方法,进一步包括重复致动、移动、执行和进行步骤,其中第一位置重新指定为第一位置,第一动作重新指定为起始动作,第二部件重新指定为第一部件,第二位置重新指定为第一位置,第二动作重新指定为第一动作,并且第二部件从第二位置的位置偏离重新指定为第一部件从第一位置的位置偏离。
3.如权利要求2所述的方法,其中视觉处理子程序是在后台持续工作的嵌入式过程。
4.如权利要求3所述的方法,其中视觉处理子程序包括从指定的位置识别经受下一个动作的下一个部件。
5.如权利要求4所述的方法,其中视觉处理子程序进一步包括相机是否准备好从指定的位置捕捉所识别的部件的图像。
6.如权利要求5所述的方法,其中视觉处理子程序进一步包括确定所识别的部件是否处于相机能够捕捉所识别的部件的图像的位置处。
7.如权利要求6所述的方法,其中所述视觉处理子程序进一步包括,当机器人臂朝向指定位置移动时,使用相机从指定位置捕捉所识别的部件的图像。
8.如权利要求7所述的方法,当机器人臂朝向指定位置移动时,至少部分地基于所识别的部件的位置而确定所识别的部件从指定位置的位置偏离。
9.如权利要求8所述的方法,将所识别的部件从指定位置的状态设置为准备好经受下一个动作。
10.如权利要求1所述的方法,进一步包括确定当机器人臂从起始位置向第一位置移动时,一个或多个部件可被相机捕捉的图像的数量。
【文档编号】G05D3/12GK104516362SQ201410520270
【公开日】2015年4月15日 申请日期:2014年9月30日 优先权日:2013年10月4日
【发明者】Y-T.林, T.达罗, J.A.埃布尔, R.D.特纳三世, D.J.卡索利 申请人:通用汽车环球科技运作有限责任公司