控制机器人的方法、示教机器人的方法和机器人系统与流程

文档序号:15279260发布日期:2018-08-28 23:20阅读:222来源:国知局

本发明涉及控制机器人。



背景技术:

在工厂里,机器人系统用于使工作(诸如零部件的传送、组装和处理)自动化。机器人系统具有机器人,机器人具有多个自由度。具有多个自由度的机器人的示例包括垂直多关节型机器人、水平多关节型机器人、并联机器人和笛卡尔坐标机器人。用户可以使机器人根据机器人程序移动,从而可以使机器人出于各个目的执行各种类型的工作。在对具有变化的零部件执行工作(诸如传送、组装和处理)或者在生产线启动时或在切换之后执行示教(teach)的情况下,一种技术通过使用视觉传感器来调整机器人的位置差。例如,日本专利申请公开no.2014-184530提出了用于示教机器人的技术。在该技术中,将照相机附接到焊接机器人的前端,并且迫使机器人重复地执行运动以校正标记(mark)与目标位置和方位之间的位置差。

当通过使用视觉传感器来执行重复控制(该重复控制重复地使机器人执行运动以校正机器人的姿势)时,需要预先确定阈值以用于确定重复控制是否完成。日本专利申请公开no.2014-184530的技术通过对图像中包含的标记在平移方向上的位置差使用阈值来确定机器人相对于组件的平移距离是否收敛。另外,该技术通过使用图像中包含的标记的圆度来校正照相机相对于标记的倾斜;并且通过对标记的圆度使用阈值来确定机器人相对于组件的倾斜角度是否收敛。用于这些确定的阈值每个都是由机器人系统的工作者凭经验确定的。在机器人的前端的平移方向上的定位精度重要的情况下,只要用于平移方向的阈值被适当地设置,倾斜角度的精度就不是重要的。然而,近年来,因为机器人还被用于精密的工作,诸如精密组装,所以机器人的前端的倾斜也需要被以高精度设置。由于这个原因,在工作者通过计算标记的圆度来确定机器人的前端的倾斜是否收敛的情况下,要求工作者正确地理解机器人的前端的位移和标记的圆度的变化量之间的关系并且设置圆度的阈值。然而,考虑诸如视觉传感器的布置的因素计算圆度的阈值是花费时间的。另外,因为视觉传感器的误差因素也需要被考虑,所以设置适当的阈值对工作者施加了沉重的工作负荷。



技术实现要素:

根据本发明的第一方面,一种控制机器人的方法包括:通过使用由机器人支撑的视觉传感器来测量特征点的被测(measured)坐标值;计算位置差的转换量,所述位置差的转换量是通过将所述被测坐标值和所述特征点的预定目标坐标值之间的位置差的量转换为与所述特征点不同的确定点的位置差的量而获得的;以及将至少所述位置差的转换量与第一阈值进行比较,并且确定所述机器人的姿势是否在目标范围内。

根据本发明的第二方面,一种示教机器人的方法包括:通过使用由机器人支撑的视觉传感器的测量来测量特征点的被测坐标值;计算位置差的转换量,所述位置差的转换量是通过将所述被测坐标值和所述特征点的预定目标坐标值之间的位置差的量转换为与所述特征点不同的确定点的位置差的量而获得的;将至少所述位置差的转换量与第一阈值进行比较,并且如果所述位置差的量超过所述第一阈值,则根据所述位置差的量来对所述机器人的姿势进行校正;以及重复所述测量、计算和校正,并且将在所述位置差的转换量等于或小于所述第一阈值的状态下获得的所述机器人的姿势设置为示教点。

根据本发明的第三方面,一种机器人系统包括:机器人;视觉传感器,所述视觉传感器由所述机器人支撑;以及控制器,所述控制器被配置为控制所述机器人和视觉传感器。所述控制器被配置为:计算变换参数,所述变换参数指示特征点的被测坐标值和所述特征点的预定目标坐标值之间的位置差的量,所述特征点的被测坐标值是通过使用所述视觉传感器而获得的;以及校正所述机器人的姿势以使得位置差的转换量等于或小于预定阈值。所述位置差的转换量是通过将所述变换参数应用于位于与所述特征点不同的位置处的确定点的坐标而计算的。

根据本发明的第四方面,一种机器人系统包括:机器人;视觉传感器,所述视觉传感器被配置为测量特征点并且获得被测坐标值;控制器,所述控制器被配置为控制所述机器人;以及输入单元,所述输入单元被配置为接收从用户朝向所述控制器的输入。所述控制器经由所述输入单元获得关于与所述特征点不同的确定点的设置信息数据。所述机器人系统使用所述确定点的坐标值和所述被测坐标值,并且确定所述机器人是否正在采取(take)目标位置和方位。

从以下参考附图对示例性实施例的描述,本发明的进一步的特征将变得清楚。

附图说明

图1是第一实施例的机器人系统的解释图。

图2a是工件保持治具(jig)的透视图。

图2b是工件保持治具、第一工件和第二工件的透视图。

图3a是示出立体照相机被机器人手释放的状态的透视图。

图3b是从另一个方向看图3a中所示的机器人手和立体照相机的透视图。

图3c是示出立体照相机被机器人手把持(hold)的状态的透视图。

图4是示出根据第一实施例的对于示教的预先准备的流程图。

图5a是用于校准的校准治具的解释图。

图5b是基准图案部分的平面图。

图6是示出显示在显示器上的设置窗口的解释图。

图7是第一实施例的机器人控制设备和传感器控制设备的功能框图。

图8是第一实施例的示教工作的流程图。

图9是用于示出特征点的目标坐标值和被测坐标值之间的关系的示意图。

图10a是示出确定点的坐标值、目标坐标值和被测坐标值之间的关系的示意图。

图10b是示出坐标变换之后获得的坐标值的示意图。

图10c是示出非收敛状态下的坐标值之间的关系的示意图。

图10d是示出收敛状态下的坐标值之间的关系的示意图。

图11a是示出在第一实施例的确定过程中执行ng确定的情况下的、坐标值之间的关系的示例的示意图。

图11b是示出在第一实施例的确定过程中执行ok确定的情况下的、坐标值之间的关系的示例的示意图。

图12a是示出在比较示例的确定过程中执行ok确定的情况下的、坐标值之间的关系的示例的示意图。

图12b是示出在比较示例的确定过程中执行ng确定的情况下的、坐标值之间的关系的示例的示意图。

图13a是第二实施例中的用于组装工作的第一工件和第二工件的解释图。

图13b是示出第二实施例的机器人的配置的示意图。

图14是示出第二实施例中的对于执行组装工作的预先准备的流程图。

图15是第二实施例中的用于校准的校准治具的解释图。

图16是第二实施例的组装工作的流程图。

图17是用于示出第三实施例的计算过程的示意图。

具体实施方式

以下,将参考附图来详细地描述本发明的一些实施例。

第一实施例

图1是第一实施例的机器人系统的解释图。机器人系统100包括机器人200、立体照相机300、工件保持治具400、机器人控制设备500、传感器控制设备600、显示器700、示教盒800和输入设备850,立体照相机300是视觉传感器的一个示例。机器人200包括机器人臂201和机器人手202,机器人手202是末端执行器的一个示例。机器人臂201是垂直多关节型机器人臂。机器人200的基端(即,机器人臂201的基端)被固定到台架150。

机器人臂201的前端具有直接地或经由力传感器(未示出)附接到它的机器人手202。即,机器人200的前端是机器人手202。机器人手202包括手掌单元210以及多个手指211和212,手掌单元210是手本体,多个手指211和212可以相对于手掌单元210打开和关闭。在第一实施例中,手指的数量是两个。通过这些组件,机器人手202可以把持或释放工件。手掌单元210包括壳体和驱动机构,驱动机构被壳体容纳并且被配置为驱动手指211和212。

工件保持治具400是夹住工件以使得工件不相对于台架150移动并且被固定到台架150的治具。工件保持治具400设置在机器人手202可以在其内移动的区域中。机器人200的前端(即,机器人手202)可以在机器人坐标系o中以六个自由度移动,机器人坐标系o的原点在机器人200的基端处。具体地,机器人手202可以在机器人臂201的运动的帮助下在三个平移方向和三个旋转方向上移动。平移方向对应于机器人坐标系o中彼此正交的三个轴,旋转方向是围绕这三个轴的方向。

示教盒800用于通过用户的操作向机器人控制设备500发送命令。当接收到该命令时,机器人控制设备500根据该命令使机器人200移动。即,通过操作示教盒800,用户可以移动机器人臂201,并且在任何方向上、以任何速度对机器人手202执行缓慢进给(jogfeed)。此外,通过操作示教盒800,用户允许机器人200打开和关闭机器人手202的手指211和212。

机器人控制设备500主要控制机器人200的运动。传感器控制设备600主要控制立体照相机300的操作,并且执行计算过程,诸如图像处理和测量过程。

机器人控制设备500是计算机,并且包括中央处理单元(cpu)501。另外,机器人控制设备500包括只读存储器(rom)502、随机存取存储器(ram)503和硬盘驱动器(hdd)504作为内部存储器。机器人控制设备500还包括接口(i/f)505和总线506。cpu501、rom502、ram503、hdd504和接口505经由总线506彼此通信地连接。

传感器控制设备600是计算机,并且包括cpu601。另外,传感器控制设备600包括rom602、ram603和hdd604作为内部存储器。传感器控制设备600还包括记录盘驱动器605、接口(i/f)606和总线607。cpu601、rom602、ram603、hdd604、盘驱动器605和接口606经由总线607彼此通信地连接。

机器人控制设备500的接口505经由通信线连接到机器人200、工件保持治具400和示教盒800。传感器控制设备600的接口606经由通信线连接到立体照相机300、显示器700和输入设备850。另外,机器人控制设备500的接口505和传感器控制设备600的接口606经由通信线彼此连接。因此,cpu501和cpu601可以彼此通信。在第一实施例中,两个cpu(cpu501和cpu601)用作控制单元。

机器人控制设备500的rom502存储基本程序。ram503是暂时存储各种数据(诸如cpu501执行的计算过程的结果)的存储器。hdd504存储限定机器人200的运动的机器人程序510。机器人程序510包括示教点信息511和命令信息512。cpu501根据机器人程序510来控制机器人200的运动,并且使机器人200执行工作,诸如工件组装工作。当设置示教点信息511(即,执行示教工作)时,cpu501根据来自传感器控制设备600的cpu601的命令或来自示教盒800的命令来控制机器人200的运动。即,cpu501从来自cpu601的信息确定机器人200的姿势,该姿势是要求机器人200采取的姿势;并且根据cpu501已经确定的姿势信息使机器人200实际移动。另外,cpu501可以创建或更新当机器人200被实际移动时使用的姿势信息作为示教点信息511。

传感器控制设备600的rom602存储基本程序。ram603是暂时存储各种数据(诸如cpu601执行的计算过程的结果)的存储器。hdd604存储当执行示教时使用的程序610。盘驱动器605可以读取记录在盘608上的各种数据或程序。当示教机器人200时,cpu601根据程序610来控制立体照相机300的操作和经由机器人控制设备500控制机器人200的运动。另外,cpu601控制显示器700的显示操作。例如,cpu601使显示器700显示立体照相机300捕获的图像数据和通过执行图像处理获得的结果数据,并且将信息提供给用户。输入设备850可以是键盘或鼠标,并且可以通过用户在观看显示器700的同时操作输入设备850来将信息(诸如字符、数值或指针位置)输出到传感器控制设备600。

在第一实施例中,将针对hdd604是计算机可读记录介质并且存储程序610的情况进行描述。然而,本公开不限于此。程序610可以被记录在任何记录介质中,只要该记录介质是计算机可读记录介质即可。例如,rom602、盘608或外部存储器(未示出)可以用作提供程序610的记录介质。具体地,软盘、光盘、磁光盘、磁带、非易失性存储器(诸如usb存储器)、ssd等可以用作记录介质。

此外在第一实施例中,已经对于机器人控制设备500和传感器控制设备600各自通过单个计算机实现、因此机器人系统100总共具有两个计算机的情况进行了描述。然而,本公开不限于此。机器人控制设备500和传感器控制设备600的两个功能可以通过单个计算机实现,或者可以通过执行分布式处理的三个或更多个计算机实现。此外,尽管传感器控制设备600设置在立体照相机300的壳体的外部,但是相同的功能可以通过被壳体容纳的智能照相机来实现。

图2a是工件保持治具400的透视图。图2b是工件保持治具400、工件w1和工件w2的透视图,工件w1是第一工件,工件w2是第二工件。如图2a中所示,工件保持治具400包括基座部分401、工作对接(butted-against)部分402和403以及治具手指404和405,工作对接部分402和403被固定到基座部分401。工件保持治具400可以根据机器人程序510来打开和关闭治具手指404和405。在工件w1被放置在基座部分401上的状态下,可以通过关闭治具手指404和405来夹住工件w1。

图2b示出了工件w1被工件保持治具400保持的状态。在第一实施例中,对于工件w1和w2的装配工作是作为组装工作执行的,在组装工作中,工件w2被组装到工件w1。具体地,装配工作是通过使工件保持治具400保持工件w1、使机器人手202把持工件w2并且移动机器人臂201来执行的。如图2b中所示,当执行装配工作时,把持工件w2的机器人手202被移动到工件w1正上方的工作开始位置pa,然后工件w2从工作开始位置pa被移动到工作开始位置pa正下方的位置。因此,要求正确的示教以将机器人手202(即,工件w2)正确地定位在工作开始位置pa处。

在第一实施例中,立体照相机300用于示教机器人200。立体照相机300能够连接到机器人200和从机器人200断开。具体地,在立体照相机300相对于机器人手202定位的状态下,立体照相机300被机器人手202把持。

图3a、3b和3c是第一实施例的机器人手202和立体照相机300的透视图。图3a和3b示出了立体照相机300被机器人手202释放的状态,图3c示出了立体照相机300被机器人手202把持的状态。立体照相机300是通过使用立体方法来捕获被测对象的图像以使得被测对象的三维位置和方位可以被测量的照相机。立体照相机300可以在从传感器控制设备600接收到成像命令时捕获图像,并且将获取的图像数据发送到传感器控制设备600。立体照相机300具有照相机301和照相机302,照相机301是第一照相机,照相机302是第二照相机。这两个照相机301和032设置在照相机壳体310的内部。照相机301和302是具有图像拾取元件(诸如ccd图像传感器或cmos图像传感器)的数字照相机。照相机壳体310经由附接部分(未示出)固定到基座部分311。基座部分311具有定位销321和322以及锥形部分331和332作为附接到机器人手202和从机器人手202拆卸的机构。

机器人手202的手掌单元210的平坦表面210a在与立体照相机300的定位销321和322相对应的位置处具有圆孔221和细长孔222。机器人手202的手掌单元210的平坦表面210a、圆孔221和细长孔222是机器人手202的机械基准,并且手指211和212是相对于这些机械基准在预定容限内安装的。具体地,在通过使用手掌单元210的平坦表面210a、圆孔221和细长孔222来相对于手掌单元210定位手指调整治具(未示出)的状态下,相对于手指调整治具(未示出)来调整手指211和212在手指211和212的打开和关闭方向上的安装位置。可以通过将具有不同厚度的垫片附接到打开和关闭机构(未示出)以便夹着手指来调整打开和关闭方向上的手指211和212之间的尺寸。以这种方式,相对于手掌单元210调整手指211和212。当用于立体照相机300的基座部分311压靠机器人手202的手掌单元210时,基座部分311的表面和手掌单元210的表面彼此对接,并且定位销321和322分别与圆孔221和细长孔222啮合。通过该操作,可以相对于机器人手202定位立体照相机300。在手指211和212的内侧,设置有锥形部分231和232。当手指211和212在基座部分311压靠手掌单元210的状态下被关闭时,机器人手202的锥形部分231和232分别与立体照相机300的锥形部分331和332啮合。锥形部分231和232以及331和332产生使基座部分311压靠手掌单元210的力,以使得立体照相机300可以被稳定地固定到机器人手202。因此,附接和拆卸机构被配置为直接将立体照相机300附接到机器人手202。该配置减小由机器人臂201的误差以及在机器人手202的制作中产生的手掌单元210和凸缘表面(其为机器人臂201的前端)之间的误差引起的影响,因此可以以高精度执行示教工作。因此,立体照相机300被机器人手202把持,从而被机器人200支撑。

在第一实施例中,工件保持治具400是当执行示教工作时使用的被测对象。图2a中所示的工件保持治具400具有多个标记mk1至mk3。标记mk1至mk3可以由立体照相机300测量,并且是特征点的一个示例。标记mk1至mk3是相对于工件保持治具400的机械基准以高精度定位的。机械基准可以是工作对接部分402和403。标记mk1至mk3形成在基座部分401的顶面上,并且在高度方向上具有预定精度范围的厚度或深度。标记mk1至mk3是黑色的以便与基座部分401具有足够的对比度,使得可以通过图像处理来以高精度将它们识别为特征点。这里,任何方法可以用于向基座部分401提供标记mk1至mk3。例如,激光束加工、印刷、蚀刻、电镀或粘附密封可以用于提供标记。另外,尽管针对标记mk1至mk3被直接提供给工件保持治具400的情况给出了示例,但是可以通过将标记提供给用作基准板的另一个构件并且将基准板附接到工件保持治具400来仅在示教中暂时布置标记mk1至mk3。

图4是示出根据第一实施例的对于示教的预先准备的流程图。首先,该过程设置立体照相机300的校准值(s101)。在步骤s101中,该过程执行两种类型的校准:(1)立体照相机校准,以及(2)基座和照相机之间的校准。该过程然后将校准的参数设置到传感器控制设备600,即,使hdd604存储这些参数。

(1)立体照相机校准

该过程对立体照相机参数进行校准。立体照相机参数用于从立体照相机300捕获的立体图像上的对应点坐标获得三维测量值。具体地,该过程确定照相机301和302中的每一个的照相机内部参数。照相机内部参数指示照相机301和302捕获的每个图像的以像素为单位表达的像素坐标值和三维空间中的视线向量之间的关系。该过程还确定照相机外部参数。照相机外部参数指示照相机301和照相机302之间的相对位置和方位。即,该过程确定坐标变换矩阵作为照相机外部参数。坐标变换矩阵指示第一传感器坐标系和第二传感器坐标系之间的相对位置和方位,第一传感器坐标系表示照相机301的位置和方位,第二传感器坐标系表示照相机302的位置和方位。关于对于这样的立体照相机的校准,各种方法是已知的。如果特征点从照相机301捕获的图像和照相机302捕获的图像提取,则可以确定从传感器坐标系看见的特征点的三维坐标值。在第一实施例中,照相机301是基准照相机,因此立体测量的结果被表达为从第一传感器坐标系看见的坐标值。以下,第一传感器坐标系被表达为传感器坐标系v,其是表示立体照相机300的位置和方位的坐标系。

(2)基座和照相机之间的校准

前述立体照相机校准使得能够以高精度三维地测量从传感器坐标系v看见的特征点的位置。然而,因为传感器坐标系v是其原点是照相机301的透镜主点的坐标系,所以传感器坐标系v的位置和方位不能从外部直接测量。因此,在第一实施例中,还执行基座和照相机之间的校准以确定传感器坐标系v相对于基座部分311的位置和方位。校准结果数据被存储在传感器控制设备600的hdd604中。将详细描述基座和照相机之间的校准的方法,该方法对基座部分311和传感器坐标系v之间的关系进行校准。

图5a是用于校准的校准治具900的解释图。校准治具900包括基座部分901、支柱部分902和903、顶板部分904和基准图案部分905。基座部分901和顶板部分904是被设置为彼此面对并且经由支柱部分902和903彼此接合的板状构件。基座部分901在与立体照相机300的销321和322相对应的位置处具有孔906和907,如手掌单元210的圆孔221和细长孔222那样。通过该结构,可以以高再现性定位立体照相机300。

图5b是基准图案部分905的平面图。基准图案部分905设置在顶板部分904的内表面上。基准图案部分905是板状构件。在基准图案部分905的表面上,像阵列一样形成通过蚀刻过程等以高精度制成的k个标记908。基座部分901的顶面、孔906和907以及基准图案标记908的位置在校准治具900被制成之后用测量仪器(未示出)测量,因此这些组件之间的关系是以高精度已知的。另外,基座坐标系b相对于基座部分901的顶面以及孔906和907的测量值设置。基座坐标系b是视觉传感器的坐标系,并且在立体照相机300的安装基准位置处对应于立体照相机300的位置和方位。而且,标记908的三维坐标值m(i)(i=1至k)被坐标变换为从基座坐标系b看见的三维坐标值bm(i)(i=1至k),并且三维坐标值bm(i)被存储在校准装置(未示出)的计算单元中。因此,在相对于校准治具900定位立体照相机300的状态下,立体地测量基准图案部分905的标记908,从而可以确定基座坐标系b和传感器坐标系v之间的关系。

基座坐标系b和传感器坐标系v之间的关系通过旋转矩阵rc和平移向量tc来表达。如果当立体地测量标记908时获得的、从传感器坐标系v看见的坐标值vm(i)(i=1至k)没有误差,则以下表达式(1)成立。

bm[i]=rc·vm[i]+tc(i=1,2,3,...,k)(1)

然而,因为实际测量数据具有误差,所以表达式(1)的左侧和右侧不是彼此正好相等。由于这个原因,通过对以下表达式(2)进行求解来获得最小二乘解。

即,满足表达式(2)的旋转矩阵rc和平移向量tc被确定为最小二乘解。该问题被认为是点集之间的匹配问题,并且可以通过使用例如使用奇异值分解的方法来求解。通过该求解,获得旋转矩阵rc和平移向量tc作为基座和照相机之间的校准值,这些校准值用于将相对于传感器坐标系v的坐标值坐标变换为相对于基座坐标系b的坐标值。

接着,设置示教的目标坐标值(s102)。在第一实施例中,目标坐标值被设置为使得工件w2被定位在位置pa处,如图2b中所示。图6是示出显示在显示器700上的设置窗口的解释图。用户可以在观看图6中所示的设置窗口的同时设置目标坐标值。

示教的目标坐标值的设置是通过输入立体照相机300的机械基准(诸如基座部分311的表面以及定位销321和322)以及提供给工件保持治具400的标记mk1至mk3之间的设计上的位置关系来执行的。例如,设置相对于基座坐标系b的、设计上的标记mk1至mk3的三维目标坐标值bp(i)(i=1至3)。这里,目标坐标值bp(i)(i=1至3)是三维坐标值,各自通过具有xyz的三个分量的向量来表达。目标坐标值bp(i)可以通过用户从预先存储在传感器控制设备600的hdd604中的目标坐标值的列表选择目标坐标值bp(i)来设置,或者可以通过用户操作输入设备850并且将数值输入到输入设备850中来设置。在用户使用输入设备850输入数值的情况下,可以引入表示标记mk1至mk3的位置和方位的标记物(marker)坐标系m以更简化输入操作。在这种情况下,用户输入标记mk1至mk3相对于标记物坐标系m的三维坐标值mp(i)(i=1至3)以及标记物坐标系m相对于基座坐标系b的相对位置和方位的设计值。在设计值通过brm的旋转分量和btm的平移分量表达的情况下,标记mk1至mk3的三维坐标值bp(i)(i=1至3)通过以下表达式(3)来表达。

在输入操作在标记物坐标系m中执行的情况下,仅由标记mk1至mk3的形状确定的标记mk1至mk3的布置可以与机器人手202相对于标记物坐标系m的位置和方位分开设置。这简化了当标记的数量大时的设置。在图6中所示的设置窗口710的示例中,显示了机器人手202和立体照相机300的三维cad模型,并且在cad模型上用箭头指示了基座坐标系b的位置和方位。另外,在cad模型窗口上,指示标记物坐标系m的位置和方位的箭头以及指示标记mk1至mk3的点p1至p3的点根据用户输入的关于标记物坐标系m的位置和方位信息以及标记的坐标值叠加。因为用户可以直观地检查输入的设置信息,所以设置变得更容易,并且错误可以几乎不发生。因此,步骤s102使传感器控制设备600的hdd604存储标记mk1至mk3相对于基座坐标系b的目标坐标值bp(i)。

接着,设置确定点(s103)。确定点是用于计算稍后描述的收敛确定的假想点,并且不同于通过使用立体照相机300测量的特征点。确定点是与特征点分开地额外提供的,以用于允许立体照相机300相对于标记mk1至mk3的倾斜快速地收敛到期望的精度范围中。确定点相对于基座坐标系b的坐标值bpadd被存储在传感器控制设备600的hdd604中。因为确定点是仅用于计算的假想点,所以确定点可以位于立体照相机300的视场之外,即,立体照相机300的可测量范围之外。确定点是自由选择的点,但是它优选定位为比用作特征点的标记mk1至mk3更靠近立体照相机300或机器人200。更优选地,确定点是某个区域内的自由选择的点。该某个区域是通过将被手指211和212以及手掌单元210包围的并且在其中机器人手202可以把持工件的区域(以下,称为把持区域)和被机器人手202把持的工件的外形(outershape)进行相加而获得的。例如,确定点可以是基座坐标系b的原点或传感器坐标系v的原点,或者可以是手指211的前端点。当确定点被设置时,用户可以操作输入设备850并且将数值直接输入到输入设备850中,或者可以选择被指示为除了标记mk1至mk3之外的自由选择的特征点以及机器人系统100的坐标系的原点的选项中的一个。在后一种情况下,用户可以在观看显示器700的屏幕的同时选择并且设置诸如基座坐标系b的原点和工具坐标系t的原点的选项中的一个。这使得设置工作比前一种情况容易,在前一种情况下,数值被输入作为确定点。

在图6中所示的设置窗口710的示例中,设置窗口710显示基座坐标系b、工具坐标系t和传感器坐标系v的原点。因此,用户可以通过启用对应的复选框来选择一个。另外,设置窗口710的“用户定义”的字段允许用户自由地设置坐标值。用户输入的数值可以允许对应的三维点的位置被叠加在cad窗口上,或者相反地,用户可以通过像点击一样的操作来从cad窗口上的模型的表面和角部之中选择特征点,从而在gui上设置确定点。可以设置一个或多个确定点,但是在第一实施例中,将对于设置单个确定点的情况进行描述。因此,步骤s103使传感器控制设备600的hdd604存储确定点相对于基座坐标系b的坐标值bpadd。

在上面的描述中,已经对于用户涉及确定点的设置的情况进行了描述。然而,机器人系统100可以根据附接到机器人200的机器人手202的形状自动地设置确定点。例如,传感器控制设备600的hdd可以存储用于将机器人手202的类型与对应的确定点相关联的表格,并且机器人系统100可以获得关于附接的机器人手202的信息并自动地设置对应的确定点。在这种情况下,用户不需要设置确定点,并且确定点被自动地设置以执行校正机器人的姿势的校正运动。

此外,该过程设置阈值δ和阈值δ(s104),阈值δ是第一阈值,阈值δ是第二阈值。阈值δ是用于稍后描述的收敛确定的阈值,阈值δ是用于稍后描述的形状残差确定的阈值。用户可以考虑预期用途所需的精度来自由地设置阈值δ和δ。在图6中所示的设置窗口710中,可以通过用户仅输入以毫米为单位的平移量来指定阈值。这消除了对于用户知道倾斜角度的需要,因此允许直观的输入。因此,步骤s104使传感器控制设备600的hdd604存储阈值δ和δ。上述步骤s101至s104是可以离线执行的准备工作,因此可以利用不连接到机器人系统100的另一个计算机来执行。

接着,将立体照相机300附接到机器人手202(s105)。具体地,步骤s105使机器人手202把持立体照相机300。例如,用户通过使用示教盒800来执行机器人臂201的缓慢进给以使得机器人手202的手掌单元210面向上,然后将立体照相机300放置在手掌单元210上。用户然后操作示教盒800,并且使机器人手202的手指211和212靠近以夹住立体照相机300。

接着,移动机器人200(即,机器人臂201)以使得机器人臂201采取开始示教的姿势(s106:运动步骤、运动过程)。机器人200的开始示教的姿势是其中立体照相机300的视场包含工件保持治具400的姿势,工件保持治具400是被测对象。即,机器人200(即,机器人臂201)可以采取任何姿势,只要立体照相机300可以捕获工件保持治具400的标记mk1至mk3的图像即可。在这种情况下,cpu501可以根据当用户操作示教盒800时获得的命令来移动机器人200,或者可以将机器人200移动到已经预先通过离线示教等设置的姿势。在将机器人200移动到示教点之后,如果标记mk1至mk3位于立体照相机300的视场之外,则用户可以在检查显示器700上的立体照相机300的图像的同时执行机器人臂201的缓慢进给。步骤s106允许立体照相机300的视场包含三个标记mk1至mk3。

图7是第一实施例的机器人控制设备500和传感器控制设备600的功能框图。图1中所示的机器人控制设备500的cpu501用作图7中所示的机器人控制单元521。图1中所示的机器人控制设备500的hdd504用作图7中所示的存储单元522。存储单元522存储示教点信息511。图1中所示的传感器控制设备600的cpu601用作图7中所示的照相机控制单元611、测量单元613、计算单元615、变换单元621、计算单元622、变换单元623、计算单元624、确定单元626、确定单元632和输出单元640。图1中所示的传感器控制设备600的hdd604用作图7中所示的存储单元612、存储单元614、存储单元625、存储单元627和存储单元631。存储单元612存储校准值。存储单元614存储标记mk1至mk3的目标坐标值bp(i)(i=1至3),标记mk1至mk3是特征点。存储单元625存储确定点的坐标值bpadd。存储单元627存储阈值δ。存储单元631存储阈值δ。

图8是第一实施例的示教工作的流程图。在第一实施例中,为了机器人200的稳定组装工作,相对于工件保持治具400定位机器人手202;并且将机器人200(即,机器人臂201)在机器人手202被定位时采取的姿势存储为示教点。首先,测量单元613从存储单元612获得照相机内部参数、照相机外部参数、旋转矩阵rc和平移向量tc作为校准值。计算单元615、变换单元621和计算单元622从存储单元614获得标记mk1至mk3的目标坐标值bp(i)(i=1至3)。变换单元623和计算单元624从存储单元625获得确定点的坐标值bpadd。确定单元626从存储单元627获得阈值δ。确定单元632从存储单元631获得阈值δ。即,cpu601通过从hdd604读取各种参数(包括标记mk1至mk3的目标坐标值bp(i)(i=1至3)和确定点的坐标值bpadd)来获得那些参数(s201:获得步骤、获得过程)。

然后,测量单元613获得标记mk1至mk3相对于基座坐标系b的位置,即,通过使用立体照相机300的测量来获得被测坐标值(s202:测量步骤、测量过程)。具体地,照相机控制单元611向立体照相机300发送成像命令,使立体照相机300捕获工件保持治具400的图像(各自包含标记mk1至mk3),并且从立体照相机300获得图像。通过该操作,测量单元613获得照相机301和照相机302两者捕获的图像(立体图像)。测量单元613对从照相机控制单元611获得的立体图像执行图像处理和立体计算过程,并且确定标记mk1至mk3的被测坐标值。

用于测量标记mk1至mk3的位置的图像处理可以使用各种已知的方法。例如,图像处理对每个立体图像执行边缘提取过程,并且使用形状特征值(诸如提取的边缘的圆度和外接圆半径)来仅选择标记mk1至mk3的边缘。然后,图像处理对图像上的标记mk1至mk3的边缘执行椭圆拟合过程,并且确定标记mk1至mk3的中心点的像素坐标。这里,不是使用圆拟合过程,而是使用椭圆拟合过程,因为当标记的图像被捕获时,由于立体照相机300相对于标记mk1至mk3的相对布置,圆形标记mk1至mk3可能变形,并且具有椭圆状形状。在确定标记mk1至mk3的圆的中心点的像素坐标之后,图像处理将照相机301捕获的图像的像素坐标与照相机302捕获的图像的像素坐标相关联;并且计算三维坐标值。图像处理可以通过使用照相机301和302的照相机内部参数和照相机外部参数来计算标记mk1至mk3相对于传感器坐标系v的坐标值。这些坐标值被表达为vq(i)(i=1至3)。

测量单元613然后使用旋转矩阵rc和平移向量tc,并且将通过使用立体照相机300测量的标记mk1至mk3的坐标值vq(i)(i=1至3)坐标变换为相对于基座坐标系b的坐标值bq(i)(i=1至3)。即,作为使用立体照相机300的测量的结果,测量单元613通过使用以下表达式(4)来确定被测坐标值bq(i)(i=1至3)。

bq[i]=rc·vq[i]+tc(i=1,2,3)(4)

接着,对确定点的坐标值进行变换(计算步骤、计算过程)。以下,将具体描述该过程。首先,计算单元615计算目标值和被测值之间的位置差的量(s203)。具体地,计算单元在步骤s203中确定旋转矩阵r和平移向量t(第一计算步骤、第一计算过程),旋转矩阵r是坐标变换矩阵。旋转矩阵r和平移向量t指示目标坐标值bp(i)和被测坐标值bq(i)之间的位置差的量。图9是用于示出特征点的目标坐标值bp(i)和被测坐标值bq(i)之间的关系的示意图。在图9中,目标坐标值bp(i)(i=1至3)被表达为p1、p2和p3,被测坐标值bq(i)(i=1至3)被表达为q1、q2和q3。计算单元615确定用于执行坐标变换的旋转矩阵r和平移向量t以使得目标坐标值p1、p2和p3与被测坐标值q1、q2和q3完全重叠。

在坐标系b'是在基座坐标系b移动旋转矩阵r和平移向量t之后获得的坐标系的情况下,在基座坐标系b移动之后获得的目标坐标值bp'(i)被表达为以下表达式(5)。

bp′[i]=r·bp[i]+t(i=1,2,3)(5)

因此,为了移动基座坐标系b以使得在基座坐标系b移动之后获得的目标坐标值bp'(i)等于标记mk1至mk3的被测坐标值bq(i),确定旋转矩阵r和平移向量t的最小二乘解以使得以下表达式(6)具有最小值。即,因为标记mk1至mk3的被测坐标值bq(i)具有取决于立体照相机300和标记mk1至mk3的个体差异并且彼此不同的测量误差,所以确定旋转矩阵r和平移向量t的最小二乘解。这里,n是作为特征点的标记的数量,i是从1至n的整数。即,计算单元615确定旋转矩阵r和平移向量t以使得表达式(6)具有最小值。

可以通过使用与用于基座和照相机之间的校准以及用于点组之间的匹配问题的方法相同的方法来执行计算。通过上述计算过程,确定指示基座坐标系b的位置差的旋转矩阵r和平移向量t。

变换单元621通过使用旋转矩阵r和平移向量t来对标记mk1至mk3的目标坐标值bp(i)(i=1至3)进行坐标变换。即,变换单元621执行以下表达式(7)指示的计算,并且确定在坐标变换之后获得的目标坐标值bp'(i)(i=1至3)。具体地,变换单元621通过执行旋转矩阵r和特征点的目标坐标值bp(i)的相乘来确定在坐标变换之后获得的目标坐标值bp'(i),然后执行计算结果和平移向量t的相加。

bp′[i]=r.bp[i]+t(i=1,2,3)(7)

变换单元623通过使用旋转矩阵r和平移向量t来对确定点的坐标值bpadd进行坐标变换。即,变换单元623执行以下表达式(8)指示的计算,并且确定在坐标变换之后获得的坐标值bp'add。具体地,变换单元623通过执行旋转矩阵r和确定点的坐标值bpadd的相乘来确定在坐标变换之后获得的坐标值bp'add,然后执行计算结果和平移向量t的相加。

bp′add=r.bpadd+t(8)

如上所述,变换单元621和623在步骤s204中通过使用旋转矩阵r和平移向量t来对目标坐标值bp(i)(i=1至3)和坐标值bpadd进行坐标变换。

计算单元622和624确定在坐标变换之前和之后获得的点之间的距离(s205:第二计算步骤、第二计算过程)。确定单元626执行收敛确定(s206)。具体地,计算单元622在步骤s205中确定在坐标变换之前和之后获得的特征点的目标坐标值之间的距离。计算单元624在步骤s205中确定在坐标变换之前和之后获得的确定点的坐标值之间的距离。即,计算单元622通过使用以下表达式(9)来确定在坐标变换之前获得的特征点的目标坐标值bp(i)(i=1至3)和在坐标变换之后获得的特征点的目标坐标值bp'(i)(i=1至3)之间的距离d(i)(i=1至3)。

d[i]=|bp′[i]-bp[i]|(i=1,2,3)(9)

因此,计算单元622在步骤s205中通过计算在坐标变换之前和之后获得的点之间的差向量的范数来确定点之间的距离d(i)。

计算单元624通过使用以下表达式(10)来确定在坐标变换之前获得的确定点的坐标值padd和在坐标变换之后获得的确定点的坐标值p'add之间的距离dadd。该距离dadd是通过将目标坐标值和被测坐标值之间的位置差的量转换为确定点的位置而获得的位置距离的转换量。

dadd=|bp′add-bpadd|(10)

因此,计算单元624在步骤s205中通过计算在坐标变换之前和之后获得的点之间的差向量的范数来确定点之间的距离dadd。即,在确定点是除了基座坐标系b的原点之外的点的情况下,变换单元623根据表达式(8)、通过使用旋转矩阵r和平移向量t来对确定点的坐标值bpadd进行坐标变换。然后,计算单元624通过使用表达式(10)来确定在坐标变换之前获得的确定点的坐标值padd和在坐标变换之后获得的确定点的坐标值p'add之间的距离dadd。在确定点是基座坐标系b的原点的情况下,计算单元624可以通过确定范数|t|(即,平移向量t的长度)来确定点的距离dadd。即,dadd=|t|。在这种情况下,可以省略变换单元623进行的坐标变换过程,并且使计算负荷降低。

确定单元626在步骤s206中将距离d(i)(i=1至3)和dadd与阈值δ进行比较,并且确定这些距离是否收敛。即,确定单元626确定以下表达式(11)是否成立。即,确定单元626使用不等式(11),并且确定机器人200的姿势是否需要被校正,即,是否需要校正(确定步骤、确定过程)。如果不等式(11)不成立,则机器人200的姿势需要被校正。如果不等式(11)成立,则机器人200的姿势不需要被校正。表达式(11)包含在坐标变换之后获得的确定点的坐标值,因此基于在坐标变换之后获得的确定点的坐标值来执行关于校正的需要的确定。

在第一实施例中,确定单元626使用特征点和确定点中的所有点,并且确定在坐标变换之前和之后获得的点之间的所有距离d(i)和dadd是否都等于或小于第一阈值,即,阈值δ。如果点之间的所有距离d(i)和dadd都等于或小于阈值δ,则距离收敛。如果点之间的距离d(i)和dadd中的至少一个超过阈值δ,则距离不收敛。因此,如果距离dadd超过阈值δ,则距离不收敛。

图10a、10b、10c和10d是用于描述图8的步骤s202至s205的示意图。这里,尽管在第一实施例中过程是针对三维点组执行的,但是图10a至10d为了方便起见示出了二维点组,并且仅示出了三个特征点中的两个特征点。另外,没有示出诸如机器人手202的结构,并且在图中仅示出了坐标系和特征点。在图10a至10d中,“x”标记指示在坐标变换之前获得的确定点的坐标值padd、在坐标变换之后获得的确定点的坐标值p'add、在坐标变换之前获得的特征点的坐标值p1和p2以及在坐标变换之后获得的特征点的坐标值p1'和p2'。此外在图10a至10d中,特征点q1和q2的被测坐标值通过黑点指示。目标坐标值p1、目标坐标值p2和基座坐标系b的原点通过虚线彼此连接以便于理解这些点是作为一体移动的。

该过程确定如图10a中所示的旋转矩阵r和平移向量t;并且确定如图10b中所示的在坐标变换之后获得的坐标值p'add、p1'和p2'。该过程然后确定坐标值p1和p1'之间的距离d(1)、坐标值p2和p2'之间的距离d(2)以及坐标值padd和p'add之间的距离dadd。如图10c中所示,如果距离d(1)、d(2)和dadd中的至少一个超过阈值δ,即,如果在坐标变换之前获得的点中的至少一个超过具有等于在坐标变换之后获得的点p1'、p2'和p'add的中心点并且具有等于阈值δ的半径r的球中的对应的一个,则距离不收敛。如图10d中所示,如果所有的距离d(1)、d(2)和dadd都等于或小于阈值δ,即,如果在坐标变换之前获得的所有的点都在具有等于在坐标变换之后获得的点p1'、p2'和p'add的中心点并且具有等于阈值δ的半径r的对应的球内,则距离收敛。

如果在步骤s206中距离d(1)、d(2)和dadd中的至少一个超过阈值δ(s206:否),即,如果距离不收敛,则输出单元640将确定结果、旋转矩阵r和平移向量t输出到机器人控制单元521。机器人控制单元521根据旋转矩阵r和平移向量t来确定使机器人200(即,机器人臂201)采取姿势的姿势命令(s207);并且根据姿势命令来对机器人200(即,机器人臂201)的姿势进行校正(s208)。这里,机器人200(即,机器人臂201)的姿势的校正对应于机器人坐标系o中的机器人200的前端的校正,即,机器人手202的位置和方位的校正。

以下,将具体描述步骤s207中的计算。在机器人控制设备500中,设置工具坐标系t,其原点是机器人200的前端(即,机器人手202)。另外,还预设基座坐标系b相对于工具坐标系t的位置和方位。这里,工具坐标系t相对于机器人坐标系o的位置和方位被表达为矩阵oht。另外,基座坐标系b相对于工具坐标系t的位置和方位被表达为矩阵thb。如果机器人200在校正之后采取的姿势被表达为矩阵oht’,则矩阵oht’可以通过以下表达式(12)来表达。

oht′=oht·thb·bhb′·(thb′)-1(12)

矩阵bhb’是齐次变换矩阵,该矩阵通过使用在步骤s203中计算的旋转矩阵r和平移向量t而计算并且表达从基座坐标系b的当前位置到被测位置的坐标变换。矩阵bhb’通过以下表达式(13)来表达。

即,在步骤s207中,机器人控制单元521使用表达式(12)和(13),并且计算矩阵oht’,该矩阵表达机器人200的前端的位置和方位。机器人控制单元521然后使用矩阵oht’,并且计算对于机器人200的姿势命令,即,对于机器人臂201的每个关节的角度命令。机器人控制单元521然后在步骤s208中根据姿势命令来移动机器人200;并且校正机器人200的姿势(校正运动步骤、校正运动过程)。

在校正机器人200的姿势之后,该过程再次执行步骤s202至s205,并且在步骤s206中通过使用阈值δ来执行收敛确定。如果在步骤s206中距离不收敛,则该过程再次执行步骤s207、s208和s202至s205。因此,该过程重复步骤s202至s208,直到点之间的距离d(1)、d(2)和dadd的全部变得等于或小于阈值δ并且收敛。即,该过程重复地使机器人200执行机器人200的校正运动。因为机器人臂201的运动和立体照相机300进行的测量具有误差,所以示教通常不是通过单个校正运动完成的。然而,第一实施例可以通过重复地执行校正运动来以高精度定位机器人手202。另外,可以设置重复次数的上限。在这种情况下,如果当重复次数超过上限时距离不收敛,则该过程可以作为超时而结束。

图11a和11b是用于示出第一实施例的确定过程的示意图。图12a和12b是用于示出比较示例的确定过程的示意图。比较示例不使用确定点来执行确定过程。这里,为了比较,图11a中的立体照相机300和标记mk1至mk3之间的相对位置与图12a中的相对位置是相同的。类似地,图11b中的相对位置与图12b中的相对位置是相同的。在图11a和11b中,确定点是基座坐标系b的原点。

在比较示例中,如图12a中所示,因为坐标值p1和p1'之间的距离d(1)以及坐标值p2和p2'之间的距离d(2)等于或小于阈值δ,则即使当立体照相机300相对于标记mk1至mk3倾斜时,该过程也确定距离收敛,即,确定状态为“ok”。然而,在第一实施例中,如图11a中所示,即使当坐标值p1和p1'之间的距离d(1)以及坐标值p2和p2'之间的距离d(2)等于或小于阈值δ时,确定点的坐标值padd和p'add之间的距离dadd也超过阈值δ。在这种情况下,因为立体照相机300相对于标记mk1至mk3倾斜,所以该过程在第一实施例中确定距离不收敛,即,确定状态为“ng”。结果,该过程将使机器人200重复地执行机器人200的校正运动。因此,该过程可以在预定精度范围内相对于标记mk1至mk3定位机器人手202。

在使用没有任何确定点的确定方法的比较示例中,如果要求机器人手202定位在预定精度范围内,则需要设置小于阈值δ的另一个阈值δ',如图12b中所示。在这种情况下,用户进行的适当阈值的计算花费时间。另外,因为需要设置小于阈值δ的阈值δ',所以对于收敛的确定也花费时间。这需要用于重复运动的额外时间,使得收敛慢。相反,如图11b中所示的确定点的添加允许距离d(1)、d(2)和dadd快速地收敛到阈值δ,而不需要如比较示例中那样将阈值δ设置得更小。这允许该过程快速地执行下一个操作。因此,可以通过利用计算对确定点进行坐标变换并且通过对坐标变换的确定点执行收敛确定来以高精度相对于标记mk1至mk3快速地定位机器人手202。

第一实施例使用用于收敛确定的额外的确定点。额外的点是假想点。另外,第一实施例使用旋转矩阵r和平移向量t,并且确定在坐标变换之前获得的确定点的坐标值bpadd和在坐标变换之后获得的确定点的坐标值bp'add之间的距离dadd。特征点的被测坐标值bq(i)具有测量误差,这些测量误差取决于立体照相机300和标记mk1至mk3的个体差异,并且彼此不同。当测量误差的变化大时,特征点的目标坐标值bp(i)和被测坐标值bq(i)之间的距离可能不收敛到阈值δ(如果用于收敛确定的话)。由于这个原因,为了提高通过使用阈值δ对特征点执行的确定的精度,优选的是确定在坐标变换之前获得的目标坐标值bp(i)和在坐标变换之后获得的目标坐标值bp'(i)之间的距离,如对于确定点的那样。因此,在第一实施例中,在坐标变换之前获得的目标坐标值bp(i)和在坐标变换之后获得的目标坐标值bp'(i)之间的距离也对于特征点被确定为用于收敛确定的指标,如对于确定点的那样。因此,因为在坐标变换之前获得的特征点的目标坐标值bp(i)和确定点的坐标值bpadd仅仅通过计算被坐标变换为在坐标变换之后获得的特征点的目标坐标值bp'(i)和确定点的坐标值bp'add,所以前者同余(congruent)于后者。因此,因为该过程通过使用相同的指标(即,在坐标变换之前和之后获得的点之间的距离)来对特征点和确定点执行收敛确定,所以确定结果不太受干扰因素(诸如立体照相机300的测量误差)影响。即,即使当特征点的测量误差的变化大时,因为该过程使用在坐标变换之前和之后获得的点的距离d(i)以及确定点的距离来执行收敛确定,所以该过程也允许距离更可靠地收敛。

如果该过程在步骤s206中确定所有的距离d(i)和dadd都等于或小于阈值(步骤s206:是),即,如果距离收敛,则确定单元632执行形状残差的计算(s209)和确定(s210)以检查示教的结果的可靠性。确定单元632根据立体照相机300测量的标记mk1至mk3的被测坐标值和目标坐标值来计算指示被测对象的设计形状和测量形状之间的一致性程度的指标。具体地,确定单元632通过使用以下表达式(14)来计算标记mk1至mk3的被测坐标值bq(i)和在坐标变换之后获得的标记mk1至mk3的目标坐标值bp'(i)之间的距离e(i)。

e[i]=|bq[i]-bp′[i]|(i=1,2,3)(14)

这里,在坐标变换之后获得的目标坐标值bp'(i)已经被坐标变换以使得设计形状的目标坐标值与被测坐标值bq(i)完全重叠。因此,e(i)的值不由于立体照相机300的整个的位置差而改变。如果某个误差因素使被测坐标值bq(i)和目标坐标值bp'(i)之间的距离e(i)增大,则测量形状相对于设计形状变形。该性质可以用于评估通过示教实现的定位状态的可靠性。因此,确定单元632确定被测坐标值bq(i)和目标坐标值bp'(i)之间的距离e(i)是否等于或小于第二阈值,即,阈值δ。更具体地,确定单元632如表达式(15)中表达的那样从多个距离e(i)提取最大距离emax;并且确定距离emax是否等于或小于阈值δ。

如果距离emax等于或小于阈值δ(步骤s210:是),即,如果所有的距离e(i)都等于或小于阈值δ,则定位结果是可靠的。因此,该过程将机器人200在此时采取的姿势设置为示教点(s211:设置步骤、设置过程)。即,机器人控制单元521使存储单元522将机器人臂201的当前姿势存储为示教点信息511。如果示教点信息511已经预先被存储在存储单元522中,则示教点信息511可以被重写。示教点信息511可以是对应于机器人臂201的关节角度的命令值,或者可以是对应于机器人臂201的前端的位置和方位的命令值。后一命令值可以通过使用正向运动学计算并且转换对应于关节角度的命令值来获得。关节角度可以是用于驱动对应关节的马达的旋转角度。如果距离emax超过阈值δ(步骤s210:否),则通过示教的定位状态是不可靠的。因此,机器人控制单元521向用户指示误差的内容,而不存储示教点信息。具体地,机器人控制单元521使显示器700显示误差的内容(s212)。

可以存在立体照相机300进行的测量的可靠性由于对于立体照相机300的干扰因素或立体照相机300的老化劣变而降低的情况或者发生操作中的某个误差的情况。如果示教点信息在测量的可靠性一直不足的状态下存储,则工作开始位置pa在用于生产的工件组装中总是移位的,这使机器人200频繁地停止。例如,操作中的误差包括对于立体照相机300的校准值的设置误差以及工件保持治具400的安装误差。后者包括具有标记的不同类型的治具被错误地放置在工件保持治具400需要被放置的地方的情况。干扰因素和老化劣变的示例包括由于照明条件等而导致的测量误差、由于热变形或处理时落下而导致的立体照相机300的变形以及由连接标记mk1至mk3的点而产生的形状的扭曲。该扭曲是由工件保持治具400的扭曲引起的。在第一实施例中,即使当立体照相机300进行的测量的可靠性降低或者操作中的误差发生时,s210至s212的过程也可以防止对于机器人臂201的示教点信息被重写。因此,机器人系统100的可靠性进一步提高。

如上所述,根据第一实施例,确定点的添加允许工作者在工作者不知道复杂计算(诸如机器人手202相对于标记mk1至mk3的倾斜角度的计算)的情况下直观地且容易地设置实现期望精度所需的适当阈值δ。因此,可以使工作者设置阈值的工作负荷减轻。即,用户可以在不知道倾斜角度的数值本身的情况下控制机器人200以使得倾斜角度在适当的倾斜范围内。特别地,当确定点被设置为比标记mk1至mk3更靠近机器人手202或立体照相机300时,机器人手202相对于标记mk1至mk3的倾斜被更有效地校正,这导致收敛更快。当根据示教的结果由机器人执行对于工件w1和工件w2的装配工作时,工件的位置精度在工件彼此装配的接触部分是重要的。因此,当确定点位于通过将上述把持区域和由机器人手把持的工件的外形进行相加而获得的区域内的自由选择的点处时,可以执行更优选的收敛确定。

另外,使用在坐标变换之前和之后获得的确定点之间的距离的收敛确定可以缩短定位的时间,这具有与使用平移分量和角度分量这两者、通过阈值来执行确定的情况下的精度相同的精度。因此,该过程可以使存储单元522早在定位完成时就存储示教点信息511。通过该操作,较早的示教允许机器人200执行较早的生产工作。这改进了通过机器人200的工作实现的生产率。

在第一实施例中,立体照相机300的校准是相对于机械基准执行的。另外,尽管使用关于机器人臂201的运动信息的校准或测量容易引起误差,但是当通过移动机器人臂201来定位立体照相机300时,第一实施例不使用关于机器人臂201的控制信息。即,第一实施例通过使用相对于基座部分311的定位销321和322校准的校准值并且通过对立体照相机300获得的测量值进行坐标变换、而不根据关于机器人臂201的控制信息来评估位置差状态。结果,可以以高精度确定基座部分311相对于标记mk1至mk3的定位状态以及经由定位销321和322与基座部分311接合的机器人手202相对于标记mk1至mk3的定位状态。

这里,第一实施例使用所有的特征点和确定点,并且确定在坐标变换之前和之后获得的点之间的所有的距离d(i)和dadd是否都等于或小于阈值。该确定被执行以使得手掌单元210侧和工件保持治具400两者中的误差都在预定范围内。如果仅手掌单元210的位置精度是重要的,并且手掌单元210的姿势的精度并不重要,则可以通过仅使用在坐标变换之前获得的确定点和在坐标变换之后获得的确定点之间的距离dadd来执行收敛确定。

第二实施例

接着,将描述本实施例的第二实施例的机器人系统。在第一实施例中,已经描述了示教机器人的方法。但是在第二实施例中,描述控制当执行实际生产工作(诸如组件的组装)时使用的机器人的方法。图13a是第二实施例中用于组装工作的第一工件w11和第二工件w12的解释图。图13b是示出第二实施例的机器人的配置的示意图。在第二实施例中,机器人200执行将工件w12组装到工件w11的工作。机器人200的前端(即,机器人手202的手掌单元210)具有立体照相机300,立体照相机300固定到手掌单元210的侧面。立体照相机300以这种方式固定到机器人手202,从而被机器人200支撑。

工件w11由第一构件w101和第二构件w102构成,第一构件w101和第二构件w102经由接合构件(诸如螺钉(未示出))彼此接合。第二构件w102相对于第一构件w101的位置在螺钉孔的间隙范围内变化。第一构件w101具有形成于其上的三个销w103以及作为特征点形成于其中的三个基准孔w104。工件w12具有对应于工件w11的销w103的三个孔w111,从而可以被组装到工件w11。工件w11到工件w12的组装是通过使用机器人200执行的。

第二实施例的机器人系统的配置与第一实施例的机器人系统100基本上是相同的,除了立体照相机300固定到机器人手202之外。这里,机器人手202是适合于把持工件w12的平行抓具。即,如第一实施例中那样,机器人手202包括手掌单元210以及相对于手掌单元210打开和关闭的一对手指211和212。立体照相机300被定位为使得它可以在机器人手202将工件w12组装到工件w11的位置的直前(immediatelybefore)测量工件w11的基准孔w104。在执行组装的位置的直前的位置处,销w103没有包含在立体照相机300的视场中,但是基准孔w104包含在立体照相机300的视场中。因此,第二实施例通过使立体照相机300测量基准孔w104来间接地执行定位。

图14是示出第二实施例中的对于执行组装工作的预先准备的流程图。以下,将沿着图14的流程图来描述该过程。这里,与第一实施例的特征共同的一些特征在描述中将视情况被省略。首先,该过程设置照相机校准值(s301)。如第一实施例中描述的步骤s101中那样,在步骤s301中,预先对立体照相机300的校准值执行两种类型的校准(立体照相机校准以及基座和照相机之间的校准)。立体照相机校准值与第一实施例的立体照相机校准值是相同的。基座和照相机之间的校准是通过使用与第一实施例中描述的校准治具900不同的校准治具执行的。

图15是第二实施例中的用于校准的校准治具900b的解释图。校准治具900b包括基座部分901b、支柱部分902b和903b、顶板部分904b以及基准图案部分905,基准图案部分905与第一实施例的基准图案部分是相同的。基座部分901b和顶板部分904b是被设置为彼此面对并且经由支柱部分902b和903b彼此接合的板状构件。如图15中所示,基座和照相机之间的校准是通过在立体照相机300与机器人手202集成的状态下将机器人手202和立体照相机300固定到校准治具900b并且通过使立体照相机300捕获基准图案部分905的图像来执行的,基准图案部分905与第一实施例的基准图案部分是相同的。在第二实施例中,基座坐标系b的原点被设置为机器人手202到机器人臂的安装位置;即,基座坐标系b的位置和方位与工具坐标系t的位置和方位是相同的。如第一实施例中那样,该过程在校准治具900b中测量基座坐标系b和基准图案部分905的标记之间的位置关系。通过该操作,可以以高精度确定传感器坐标系v对于基座坐标系b的相对位置和方位。这里,机器人手202的手指211和212对于基座坐标系b的位置已经被在预定精度范围内机械地调整。

该过程然后设置目标坐标值(s302)。该过程将相对于工具坐标系t(即,基座坐标系b)的对于基准孔w104在设计上确定的目标位置设置为目标坐标值。目标位置是当机器人手202采取其在组装直前的位置和方位时获得的。例如,该过程设置在孔w111到销w103的装配开始的位置上方1毫米的位置的目标坐标值。可替代地,可以使用如下的另一种方法:在该方法中,将机器人手202定位在真实的样品工件的组装直前的位置处,然后通过立体照相机300捕获基准孔w104的图像来存储基准孔w104的位置,并且然后使用这些位置作为目标坐标值。

该过程然后设置确定点(s303)。例如,三个孔w111的设计上的位置被设置为确定点。表达为bpadd(i)(i=1至3)的确定点被存储在hdd604中。

该过程然后设置阈值δ和δ(s304)。该工作与第一实施例的步骤s104是相同的。阈值δ是考虑孔w111和销w103之间的装配容差以及c-倒角的尺寸而确定的,并且可以为0.1mm。阈值δ是考虑立体照相机300的测量精度以及基准孔w104的大小容差而确定的。例如,当基准孔w104的位置和大小容差为0.05mm并且立体照相机300的测量精度为0.05mm时,0.1mm的总值被确定为余裕,并且阈值δ被设置为0.2mm的值。

图16是第二实施例的组装工作的流程图。在实际生产中,对顺序到来的工件重复地执行组装工作;但是图16示出了组装工作的一个周期。

如第一实施例中那样,cpu601首先通过从hdd604读取各种参数(包括特征点的目标坐标值bp(i)(i=1至3)和确定点的坐标值bpadd(i)(i=1至3))来获得那些参数(s401:获得步骤、获得过程)。

cpu601然后向cpu501发送命令,然后使机器人臂201移动到进给单元(未示出),并然后使机器人手202把持工件w12。工件w12由机器人手202的手指211和212定位,并且被机器人手202的手指211和212在预定精度范围内把持。

cpu601然后使机器人200(即,机器人臂201)移动到示教点(s402:运动步骤、运动过程),示教点是预先示教的,并且指示组装开始位置。指示组装开始位置的示教点是在立体照相机300的帮助下开始重复控制的机器人200的姿势。此外,在示教点处,基准孔w104包含在立体照相机300的视场中。

cpu601然后使立体照相机300测量基准孔w104的位置(s403:测量步骤、测量过程)。即,如步骤s202中那样,cpu601通过立体照相机300进行的测量来确定基准孔w104相对于基座坐标系b的被测坐标值bq(i)。

cpu601然后计算目标值和测量值之间的位置差的量,如步骤s203中那样(s404)。即,cpu601在步骤s404中确定旋转矩阵r和平移向量t,旋转矩阵r是坐标变换矩阵。旋转矩阵r和平移向量t指示目标坐标值bp(i)(i=1至3)和被测坐标值bq(i)(i=1至3)之间的位置差的量(第一计算步骤、第一计算过程)。

cpu601然后使用旋转矩阵r和平移向量t,并且对特征点的目标坐标值bp(i)(i=1至3)进行坐标变换以确定目标坐标值bp'(i)(i=1至3),如步骤s204中那样(s405)。在步骤s405中,cpu601还使用旋转矩阵r和平移向量t,并且对确定点的坐标值bpadd(i)(i=1至3)进行坐标变换以确定坐标值bp'add(i)(i=1至3),如步骤s204中那样。

因为第二实施例使用多个确定点,所以cpu601通过使用以下表达式(16)来执行坐标变换。

bp′add[i]=r.bpadd[i]+t(i=1,2,3)(16)

cpu601然后确定在坐标变换之前和之后获得的点之间的距离,如第一实施例的步骤s205中那样(s406:第二计算步骤、第二计算过程)。具体地,cpu601执行与第一实施例的计算类似的计算,并且确定在坐标变换之前获得的目标坐标值bp(i)(i=1至3)和在坐标变换之后获得的目标坐标值bp'(i)(i=1至3)之间的距离d(i)(i=1至3)。另外,cpu601通过使用以下表达式(17)来确定在坐标变换之前获得的坐标值bpadd(i)(i=1至3)和在坐标变换之后获得的坐标值bp'add(i)(i=1至3)之间的距离dadd(i)(i=1至3)。

dadd[i]=|bp′add[i]-bpadd[i]|(i=1,2,3)(17)

cpu601然后将点之间的距离d(i)(i=1至3)和dadd(i)(i=1至3)与阈值δ进行比较;从而确定距离是否收敛,如第一实施例的步骤s206中那样(s407)。即,cpu601确定以下表达式(18)是否成立。

如果点之间的所有距离d(i)和dadd(i)都等于或小于阈值δ,则距离收敛。如果点之间的距离d(i)和dadd(i)中的至少一个超过阈值δ,则距离不收敛。

如果在步骤s407中点之间的距离d(i)和dadd(i)中的至少一个超过阈值δ(s407:否),则cpu601将确定结果、旋转矩阵r和平移向量t输出到机器人控制设备500的cpu501。如第一实施例的步骤s207中那样,cpu501根据旋转矩阵r和平移向量t确定使机器人200(即,机器人臂201)采取对应姿势的姿势命令(s408)。cpu501然后根据姿势命令来校正机器人200(即,机器人臂201)的姿势,如第一实施例的步骤s208中那样(s409:姿势校正步骤、姿势校正过程)。cpu601然后返回到步骤s402,并且重复机器人200的校正运动,直到s407确定距离收敛为止。如果cpu601确定距离收敛,即,确定距离等于或小于阈值δ(s407:是),则cpu601如第一实施例的步骤s210中那样计算形状残差(s410),并且如第一实施例的步骤s210中那样将形状残差与阈值δ进行比较(s411)。

如果cpu601在步骤s411中确定距离emax等于或小于阈值δ,则cpu601使机器人200执行预定工作,即,组装工作(s412:工作步骤、工作过程)。具体地,cpu601使机器人手202向下移动并且将工件w12组装到工件w11。这运行在所有的孔w111的位置与所有的销w103的位置足够一致的状态下执行组装,因此缩短组装时间并且提高生产率。

如果cpu601在步骤s411中确定距离emax超过阈值δ,则cpu601向用户指示误差的内容,即,使显示器700显示误差的内容,并且暂时使机器人200停止(s413)。这提高了机器人200执行的组装工作的可靠性。

这里,如果用户知道例如由加工引起的工件w11的变化大,则可以在不执行误差停止的情况下用另一个工件替换工件w11,然后可以对新工件w11再次执行步骤s402。

如上所述,第二实施例通过对确定点的距离使用阈值δ来设置用于对多个点的同时装配执行收敛确定的条件。另外,确定点可以被设置在立体照相机300的视场之外。特别地,在执行这样的多个点的装配的情况下,传统的使用位置和角度的收敛确定趋于使确定条件的计算复杂化。然而,第二实施例可以容易地设置阈值δ。此外,因为在机器人200执行组装工作之前,所有点都在期望精度范围内被定位,所以机器人200可以以高精度和高可靠性执行组装工作。另外,因为立体照相机300的校准如第一实施例中那样是相对于机械基准执行的,所以无论机器人臂201的运动的精度如何,都可以确定机器人手202的定位状态。另外,重复收敛运动是根据立体照相机300执行的位置差的测量结果执行的;并且组装工作是在测量结果收敛到预定范围中之后执行的。因此,即使当机器人臂201的运动具有误差时,也使由误差引起的影响减小,并且组装工作可以在满足预定定位精度的状态下由机器人200执行。关于特征点,使用利用在坐标变换之前和之后获得的特征点之间的距离(即,彼此同余的点组之间的距离)的确定方法,如第一实施例中那样。因此,该方法不容易受干扰因素(诸如测量误差)影响,并且可以设置适当的阈值δ。另外,如第一实施例中那样,步骤s411的过程可以执行可靠的组装工作。

在第二实施例中,已经对于通过将点之间的所有距离d(i)和dadd(i)与阈值δ进行比较来执行步骤s407的收敛确定的情况进行了描述。然而,在装配工件的情况下,三个孔w111的位置是特别重要的。因此,可以通过仅将距离dadd(i)与阈值δ进行比较来执行确定。这里,距离dadd(i)是在坐标变换之前获得的对应于孔w111的位置的确定点和在坐标变换之后获得的对应于孔w111的位置的确定点之间的距离。当位置和姿势这两者都通过仅使用确定点确定时,如本实施例中那样优选使用三个或更多个确定点。

第三实施例

接着,将描述本发明的第三实施例的机器人系统。图17是用于示出第三实施例的计算过程的示意图。第三实施例的机器人系统的配置与第一实施例的机器人系统的配置是相同的,并且其描述将被省略。

在第三实施例中,距离的计算不同于在第一实施例中描述的步骤s205中执行的距离的计算。具体地,不同之处被描述如下。在第一实施例中,cpu601使用表达式(9),并且确定具有在坐标变换之前获得的目标坐标值bp(i)(i=1至3)的点和具有在坐标变换之后获得的目标坐标值bp'(i)(i=1至3)的点之间的距离d(i)(i=1至3)。在第三实施例中,cpu601在步骤s205中不是确定距离d(i),而是通过使用以下表达式(19)来确定特征点的目标坐标值bp(i)(i=1至3)和特征点的被测坐标值bq(i)(i=1至3)之间的距离δp(i)(i=1至3)。

δp[i]=|bq[i]-bp[i]|(i=1,2,3)(19)

即,如图17中所示,cpu601确定目标坐标值p1和被测坐标值q1之间的距离δp(1)以及目标坐标值p2和被测坐标值q2之间的距离δp(2)。

cpu601然后在步骤s206中确定是上述表达式(11)、还是以下不等式(20)成立。

以上面的方式,在立体照相机300进行的测量的误差的变化小的情况下,即使当特征点的目标坐标值和特征点的被测坐标值之间的距离用于使用阈值δ的收敛确定时,也产生与第一实施例的效果相同的效果。在第三实施例中执行的距离计算可以用于在第二实施例中描述的步骤s406中执行的距离计算。

本发明不限于上述实施例,并且可以在本发明的技术构思内被各种地修改。另外,实施例中描述的效果仅仅是本发明产生的最合适的效果。因此,本发明的效果不限于实施例中描述的那些。

在第一实施例至第三实施例中,已经对于立体照相机300用作视觉传感器的情况进行了描述。但是视觉传感器不限于立体照相机300。例如,可以使用利用诸如以下的方法的视觉传感器:使用投影仪的图案投影法、激光截面法或飞行时间法。在这种情况下,视觉传感器优选为可以测量三维位置和方位的三维视觉传感器。

另外,确定点的数量在第一实施例中是一个,在第二实施例中是三个。然而,该数量不限于这些数量,并且可以是两个或四个或更多个。另外,特征点在第一实施例中被描述为标记,在第二实施例中被描述为基准孔。然而,特征点不限于这些,并且可以是任何点,只要这些点可以被识别为特征点即可。另外,已经对于特征点的数量为三个的情况进行了描述,但是该数量不限于三个。然而,特征点的数量优选为三个或更多个。

在第二实施例中,已经对于立体照相机300被安装在机器人手202上的情况进行了描述,但是安装位置不限于此。例如,立体照相机300可以被安装在机器人臂201的前端上或机器人手202中。

此外,在第二实施例中,已经作为示例对于工件w12可以被机器人手202以高再现性在预定位置处把持的情况进行了描述。然而,把持位置可以大大地变化。在这种情况下,把持位置的变化也可以被测量,并且用于重复控制的目标位置和确定点的位置可以被校正。作为第二实施例的修改,另一个视觉传感器可以被设置在不随机器人200移动的位置处,并且可以测量孔w111以测量把持位置的位置差。在这种情况下,即使当把持位置移位时,也可以通过根据所述另一个视觉传感器的测量值对相对于工具坐标系t的确定点的位置和目标位置进行坐标变换和校正来执行相同的收敛确定。

在第一实施例至第三实施例中,过程的实时性质没有限制。然而,这些实施例可以应用于机器人控制设备执行的低速重复控制,或者可以应用于高速且实时的视觉反馈控制(被称为视觉伺服)。

本发明还可以通过经由网络或存储介质向系统或设备提供执行上述实施例的一个或多个功能的程序并且通过使该系统或设备中包括的一个或多个处理器读取并执行该程序来实现。另外,本发明还可以通过使用执行一个或多个功能的电路(诸如asic)来实现。

其它实施例

本发明的实施例也可以通过读出并执行记录在存储介质(也可以被更完整地称为'非暂时性计算机可读存储介质')上的计算机可执行指令(例如,一个或多个程序)以执行上述实施例中的一个或多个的功能和/或包括用于执行上述实施例中的一个或多个的功能的一个或多个电路(例如,专用集成电路(asic))的系统或装置的计算机,以及通过由系统或装置的计算机通过例如读出并执行来自存储介质的计算机可执行指令以执行上述实施例中的一个或多个的功能和/或控制所述一个或多个电路以执行上述实施例中的一个或多个的功能而执行的方法来实现。计算机可以包括一个或多个处理器(例如,中央处理单元(cpu)、微处理单元(mpu)),并且可以包括单独的计算机或单独的处理器的网络,以读出并执行计算机可执行指令。计算机可执行指令可以例如从网络或存储介质被提供给计算机。存储介质可以包括例如硬盘、随机存取存储器(ram)、只读存储器(rom)、分布式计算系统的存储设备、光盘(诸如紧致盘(cd)、数字多功能盘(dvd)或蓝光盘(bd)tm)、闪速存储器设备、存储卡等中的一个或多个。

本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(cpu)、微处理单元(mpu)读出并执行程序的方法。

尽管已经参考示例性实施例描述了本发明,但是要理解,本发明不限于所公开的示例性实施例。权利要求的范围要被给予最广泛的解释以便包含所有这样的修改以及等同的结构和功能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1