本发明涉及计算工件的位置以及姿势的工件位置姿势计算装置、以及具备工件位置姿势计算装置的搬运系统。
背景技术:
已知三维匹配,其对照对象物的三维位置信息和对象物模型来确定对象物的实际位置。三维匹配需要使用6自由度的参数进行计算,所以施加给计算机的负荷大。已知一种为了将三维匹配高速化而限制搜索范围的技术(参照日本特开2012-218119号公报以及日本特开2012-125878号公报)。
技术实现要素:
要求一种使用三维匹配来高效地计算对象物的位置以及姿势的技术。
根据本发明,提供一种计算工件5的位置以及姿势的工件位置姿势计算装置6,具备:三维测量器4,其测量配置在三维空间中的至少一个工件5,取得包括上述至少一个工件5的三维位置信息的测量数据60;三维模型存储部61,其存储上述工件5的三维模型5A;位置姿势计算数据生成部62,其生成在计算上述工件5的位置以及姿势时所使用的至少一个位置姿势计算数据63;工件位置姿势计算部64,其使用各个上述位置姿势计算数据63,对照上述测量数据60和上述三维模型5A来计算上述工件5位置以及姿势;以及测量数据排除部65,其根据通过上述工件位置姿势计算部64计算出的上述工件5的位置以及姿势,将在上述工件位置姿势计算部64进行的以后的计算中应该使用的上述测量数据60的一部分排除。
在优选的实施方式中,上述位置姿势计算数据63包括优先度,上述工件位置姿势计算部64依次使用具有高优先度的位置姿势计算数据63,对照上述测量数据60和上述三维模型5A来计算上述工件5的位置以及姿势。
在优选的实施方式中,上述位置姿势计算数据63包括将上述测量数据60和上述三维模型5A对照时应该搜索的姿势范围。
在优选的实施方式中,上述位置姿势计算数据63包括将上述测量数据60和上述三维模型5A对照时应该搜索的位置范围。
在优选的实施方式中,上述位置姿势计算数据63还包括与不应该通过上述测量数据排除部65排除的上述测量数据60相关的信息。
在优选的实施方式中,上述工件位置姿势计算部64计算上述工件5的位置以及姿势,并且计算表示计算结果的置信度的分数,上述位置姿势计算数据63包括分数阈值,在判定是否根据通过上述工件位置姿势计算部64计算出的工件5的位置姿势来排除上述测量数据60的一部分时使用分数阈值,上述测量数据排除部65在上述分数超过了上述分数阈值的情况下,将上述测量数据的一部分排除。
在优选的实施方式中,上述测量数据排除部65使用通过上述工件位置姿势计算部64计算出的上述工件5的位置以及姿势来对上述三维模型5A进行坐标转换,并且将存在于坐标转换后的上述三维模型附近的测量数据60排除。
在优选的实施方式中,上述位置姿势计算数据生成部62响应手动输入来生成上述位置姿势计算数据63。
在优选的实施方式中,上述位置姿势计算数据63包括使用物理模拟进行推定的上述工件5的位置以及姿势的发生概率。
在优选的实施方式中,上述位置姿势计算数据63包括根据统计数据进行推定的上述工件5的位置以及姿势的发生概率。
在优选的实施方式中,上述位置姿势计算数据生成部62根据上次的上述工件位置姿势计算部64的计算结果,生成追加的位置姿势计算数据63。
在优选的实施方式中,提供一种通过机器人2搬运工件5的搬运系统10,该搬运系统具备能够搬运工件5的机器人2、上述工件位置姿势计算装置6,根据通过上述工件位置姿势计算装置6计算出的上述工件5的位置以及姿势,由上述机器人2搬运上述工件5。
在优选的实施方式中,提供一种搬运系统10,该搬运系统具备能够搬运工件5的机器人2、上述工件位置姿势计算装置6,根据通过上述工件位置姿势计算装置6计算出的上述工件5的位置以及姿势,由上述机器人2搬运上述工件5,上述位置姿势计算数据生成部62根据通过上述工件位置姿势计算部64计算出的上述工件5的位置以及姿势中的、通过上述机器人2搬运的上述工件5以外的至少一个上述工件5的位置以及姿势,生成追加的上述位置姿势计算数据。
附图说明
通过参照附图所示的本发明例示的实施方式的详细说明,能够更加明确本发明的这些以及其他目的、特征和优点。
图1是表示一个实施方式的搬运系统的结构例的图。
图2是说明在图1的实施方式的搬运系统中执行的搬运处理的流程图。
图3是工件位置姿势计算装置的功能框图。
图4是表示位置姿势不同的2个工件的图。
图5是表示工件的三维模型以及根据其进行排除的测量数据的图。
图6是表示工件的装载例的图。
图7是用于说明工件的位置姿势的置信度的图。
图8A是用于说明变更工件的位置姿势的发生概率的处理的图。
图8B是用于说明变更工件的位置姿势的发生概率的处理的图。
图8C是用于说明变更工件的位置姿势的发生概率的处理的图。
图8D是用于说明变更工件的位置姿势的发生概率的处理的图。
图8E是用于说明变更工件的位置姿势的发生概率的处理的图。
图9是用于说明位置姿势计算数据的追加的图。
具体实施方式
以下,参照附图说明本发明的实施方式。图示的实施方式的结构要素为了有助于本发明的理解而适当变更了比例尺。对相同或相应的结构要素使用相同的参照标记。
图1表示一个实施方式的搬运系统的结构例。搬运系统10具备机器人2、机器人控制装置3、三维测量器4以及工件位置姿势计算装置6。
机器人2具有通过电动机驱动的多个关节,例如是图示那样的6轴垂直多关节机器人。机器人2构成为在根据机构部的尺寸以及构造决定的动作范围中,能够以任意的姿势将臂的前端定位在任意的位置。机器人2经由通信电缆等通信单元与机器人控制装置3连接。设置在机器人2的各关节上的电动机由机器人控制装置3控制。
机器人2在臂前端的手腕处具备机械爪21。机械爪21由机器人控制装置3控制,为了可释放地把持工件5而进行开闭动作。
机器人控制装置3是具备CPU、ROM、RAM、非易失性存储器以及输入输出接口等的数字计算机。
三维测量器4在散乱堆积的工件5的上方被固定在支架41上。三维测量器4相对于工件5被设置在预定的位置关系上,使得视野中包括散乱堆积的工件5。
三维测量器4检测工件5的表面,取得位于工件5的表面上的多个点的三维位置信息(以下有时称为“测量数据”)。三维测量器4经由通信电缆等通信单元与工件位置姿势计算装置6连接。在另外的实施方式中,三维测量器4也可以设置在机器人2的手腕上。
三维测量器4是任意类型的非接触方式的检测器。三维测量器4例如也可以是使用2个照相机的立体方式的检测器,也可以是通过激光狭缝光扫描对象物的表面的类型的检测器,也可以是使用投影仪等将图案光投影到对象物的类型的检测器,或者也可以是构成为计算在对象物的表面进行反射并返回到投光器的飞行时间的检测器。
工件位置姿势计算装置6从三维测量器4取得多个工件5的测量数据,并计算这些工件5的位置以及姿势(以下有时将“位置以及姿势”称为“位置姿势”)。工件位置姿势计算装置6是具备了CPU、ROM、RAM、非易失性存储器以及输入输出接口等的数字计算机。
工件位置姿势计算装置6经由通信电缆等通信单元与机器人控制装置3连接,能够相互发送接收数据和信号。图1中独立地示出工件位置姿势计算装置6以及机器人控制装置3,但是机器人控制装置3也可以具有工件位置姿势计算装置6的功能。
搬运系统10根据通过工件位置姿势计算装置6检测出的工件5的位置姿势控制机器人2,搬运工件5。
工件位置姿势计算装置6通过将工件5的测量数据和工件5的三维模型进行对照(以下有时称为“三维匹配”),计算工件5的位置姿势。如果参照图3,则工件位置姿势计算装置6具备三维模型存储部61、位置姿势计算数据生成部62、工件位置姿势计算部64以及测量数据排除部65。
三维模型存储部61存储工件5的三维模型。工件5的三维模型根据工件5的CAD数据等而预先生成。
位置姿势计算数据生成部62生成在计算工件5的位置姿势时所使用的位置姿势计算数据63。位置姿势计算数据63是计算工件5的位置姿势所需要的参数的组合。例如,位置姿势计算数据63包括执行三维匹配时应该搜索的位置范围以及姿势范围等。
例如,当工件5的位置是已知时,需要只求出工件5的姿势,所以位置姿势计算数据中只包括姿势范围。相反,当工件5的姿势是已知时,位置姿势计算数据中只包括应该搜索的位置范围。
如图1所示,当散乱堆积工件5时,作为位置姿势计算数据,关于位置范围以及姿势范围分别需要3自由度,合计6自由度的范围。
在一个实施方式中,位置姿势计算数据63将位置范围以及姿势范围的至少一方包含多个种类。位置范围以及姿势范围包罗有可能配置工件5的位置范围以及工件5有可能取的姿势范围而生成。如后述那样,每个位置范围以及姿势范围与这些位置姿势产生的概率相关联。
图4表示位置姿势不同的2个工件50、51。一个工件50的长边方向面向水平方向,另一个工件51的长边方向面向铅垂方向。这时,工件50那样的姿势的产生概率比工件51要高。因此,与工件50对应的姿势范围以及与工件51对应的姿势范围构成不同的位置姿势计算数据63。
位置姿势计算数据63与优先度关联地被存储。具体地说,以包括产生概率高的位置范围以及姿势范围的位置姿势计算数据63优先度变高的方式,使优先度与各个位置姿势计算数据63关联。
位置姿势计算数据63可以根据工件5的形状或过去的工件5的装载状态,通过用户手动而生成。或者也可以使用物理模拟,在虚拟空间再现工件5的装载状态,并根据作为其结果而得到的统计数据来求出工件5的特定装载状态的发生概率。
工件位置姿势计算部64使用位置姿势计算数据63将通过三维测量器4取得的测量数据60与存储在三维模型存储部61中的工件5的三维模型进行对照来计算工件5的位置姿势。按照位置姿势计算数据63中包括的搜索范围来执行用于计算工件5的位置姿势的三维匹配。
在一个实施方式中,工件位置姿势计算部64可以构成为通过以下的方法来计算工件5的位置姿势。首先,按照位置姿势计算数据63中包括的位置范围以及姿势范围中的至少某一方将构成工件5的三维模型的三维点进行坐标转换,计算这些三维点和测量数据60的三维点之间的差值。当差值在预定的阈值以下时,测量数据的三维点和三维模型的三维点被视为一致。
工件位置姿势计算部64对三维模型的所有三维点执行上述的三维匹配,当三维点的一致数是预定的阈值以上时,将三维模型的位置姿势作为工件5的位置姿势而输出。
在另外的实施方式中,工件位置姿势计算部64可以构成为使用三维模型的特征量来计算工件5的位置姿势。能够使用三维模型的PPF(Point Pair Feature点对特征)特征量或者SHOT(Signature of Histogram Orientation直方图方向特征)特征量等。此时,通过将预先求出的三维模型的这些特征量与测量数据的三维特征量进行对照,计算出工件5的位置姿势。
测量数据排除部65根据由工件位置姿势计算部64计算出的工件5的位置姿势,排除在这之后的工件5的位置姿势的计算中所使用的测量数据60的一部分。
测量数据排除部65将三维模型坐标转换为通过工件位置姿势计算部64计算出的工件5的位置姿势并进行配置,排除存在于三维模型的附近的测量数据。
图5表示工件5的三维模型和根据其进行排除的测量数据。图5的箭头表示通过工件位置姿势计算部64计算出的工件5的位置姿势。将三维模型5A配置成与计算出的位置姿势的工件5的位置姿势一致。三维模型5A周围的虚线5B表示应该排除测量数据60的范围。图5的情况下,三维点P1位于通过虚线5B包围的范围内,所以,从测量数据60排除。另一方面,其他的三维点P2位于通过虚线5B包围的范围外,所以不从测量数据60排除。
但是,有时根据计算出的工件5的位置姿势,不应该排除测量数据60。即,在不适当地排除了测量数据60的情况下,在想要通过下一个工序计算工件5的位置姿势时,有可能无法识别实际存在的工件5。因此,也可以能够指定不排除测量数据60的范围。位置姿势计算数据63中可以包括不应该排除测量数据60的范围。
图6表示工件5的装载状态的例子。此时,错误地识别了一个工件52的位置姿势。因此,如果将位于错误地识别的工件52的附近的测量数据排除,则不能够识别工件53。
因此,在预先指定通过虚线5C表示的范围,计算出该范围中包括的工件5的位置姿势的情况下,不排除测量数据60即可。
在一个实施方式中,关于通过工件位置姿势计算部64计算出的工件5的位置姿势计算表示置信度的分数,当分数低时(置信度低时),可以不排除测量数据60。
图7将表示置信度的分数高的情况和分数低的情况对比表示。即使排除与高分数对应的位置姿势的工件55附近的测量数据60,也能够推定对其他工件的位置姿势的计算没有影响。
另一方面,如果排除与低分数对应的位置姿势的工件56附近的测量数据60,则有可能无法识别其他工件57,57。因此,当对某个工件5的位置姿势赋予低分数时,不排除该工件5附近的测量数据60。在判定是否排除测量数据60时应该与分数比较的阈值可以包括在位置姿势计算数据63中。
图2是说明在本实施方式的搬运系统10中执行的搬运处理的流程图。例如响应操作员的开关操作来开始图2的处理。在步骤S101中,通过三维测量器4取得散乱堆积的工件5的测量数据60。测量数据60包括工件5的表面多个点的三维位置。
在步骤S102中,通过位置姿势计算数据生成部62按照优先度从高到低的顺序取得位置姿势计算数据63。
在步骤S103中,通过工件位置姿势计算部64,根据位置姿势计算数据63将测量数据60和工件5的三维模型进行对照,计算工件5的位置姿势。
在步骤S104中,通过测量数据排除部65,根据步骤S103计算出的工件5的位置姿势,排除测量数据60的一部分。
在步骤S105中,判定是否使用所有的位置姿势计算数据63执行了计算工件5的位置姿势的工序。当剩余未使用的位置姿势计算数据63时,返回步骤S102。
另一方面,当判定为使用了所有的位置姿势数据63时,进入步骤S106。在步骤S106中,判定是否识别了工件5。当没有识别出工件5时,能够推定搬运了所有的工件5,所以结束搬运处理。另一方面,当至少识别一个工件5时,进入步骤S107。
在步骤S107中,按照在步骤S013求出的工件5的位置姿势,控制机器人2以及机械爪21来搬运工件5。即,机器人2定位于能够由机械爪21保持工件5的位置姿势上,接着使机械爪21动作来保持工件5。
在另外的实施方式中,可以控制机器人2使得机械爪21相对于工件5的位置姿势成为预定的相对位置关系。此时,预先求出能够成为基准的任意的位置姿势的工件5和能够保持该工件5的机器人2的位置姿势之间的相对位置关系,并存储在机器人控制装置3中。并且,在执行步骤S107时,控制机器人2使得机械爪21相对于工件5满足预先确定的相对位置关系。
接着,在步骤S108中,为了下一次执行的工件5的位置姿势计算工序,变更且更新位置姿势计算数据63。
在一个实施方式中,根据工件5的位置姿势的计算结果的统计数据,推定某个位置姿势的工件5的发生概率,并且更新已经存储的位置姿势计算数据63中包括的优先度、位置范围以及姿势范围。
参照图8A~图8C,说明变更任意的位置姿势的工件5的发生概率的方法。图8A~图8C的横轴分别表示工件5的位置姿势,纵轴表示与其对应的发生概率。
图8A表示变更位置姿势计算数据63之前的状态,工件5的发生概率在任意的位置姿势都是固定的。图8B表示位置姿势X的工件5以及位置姿势Y的工件5的发生概率比较高的情况。这里,当新计算出位置姿势Y的工件5时,位置姿势Y的发生概率增大(参照图8C)。并且,以发生概率越高的位置姿势,搜索范围的优先度变得越高的方式更新优先度。
在一个实施方式中,如图8B以及图8C所示,可以按如下方式变更发生概率:使得从某个位置姿势起包括在预定范围中的姿势范围的发生概率全部增大固定值。在另外的实施方式中,如图8D以及图8E所示,也可以以计算出的位置姿势为中心进行加权的方式变更发生概率。
另外在其它的实施方式中,在步骤S108中,可以根据工件5的位置姿势的计算结果而新追加多个位置姿势计算数据63。参照图9说明追加位置姿势计算数据63的方式。
在步骤S103中,分别计算工件58,59,59的位置姿势,并且在步骤S107中,通过机器人2搬运工件58。此时,作为搬运工件58的结果,考虑到剩余的工件59,59的位置姿势大幅度变化的可能性低。
因此,新生成以将工件59,59的已经计算出的位置姿势的附近设为搜索范围的方式决定了位置范围以及姿势范围的位置姿势计算数据63,并存储在工件位置姿势计算装置6中。
此时,设定优先度,使得新生成的位置姿势计算数据63的优先度变得比之前存储的位置姿势计算数据63的优先度高。
根据上述的搬运系统10,能够达到以下的效果。
(1)将位置姿势计算数据63与其优先度一起进行存储,按照优先度从高到低的顺序使用位置姿势计算数据63,计算工件5的位置姿势。结果优先地搜索发生概率高的位置姿势的工件5,所以能够缩短计算工件5的位置姿势所需要的时间。
(2)将与发生概率低的位置姿势对应的位置范围以及姿势范围也存储为位置姿势计算数据63。由此,能够防止实际存在工件5而不识别工件5的情况。
(3)一旦计算出工件5的位置姿势,则将位于该工件5的表面上的三维点从测量数据中排除。由此,能够防止在下次以后的位置姿势计算工序中计算出错误的位置姿势。另外,能够缩短计算工件5的位置姿势所需要的时间。
(4)操作员能够根据通过工件位置姿势计算部64计算出的工件5的位置姿势指定范围,使得不将三维点从测量数据中排除。由此,根据容易引起错误识别的工件5的位置姿势,不排除必要的测量数据60,能够提高工件5的位置姿势计算功能的可靠性。
(5)当通过工件位置姿势计算部64计算出的工件5的位置姿势不正确时,会错误排除测量数据60,有时不能够检测出实际存在的工件5。但是,根据上述实施方式的搬运系统10,计算表示计算出的工件5的位置姿势的置信度的分数,所以只是在置信度高的位置姿势的情况下能够排除测量数据60。因此,能够防止错误地排除测量数据60,能够防止不能够检测出实际存在的工件5的情况。
(6)根据使用物理模拟或统计数据的实施方式,更加准确地求出与发生概率高的工件5的位置姿势对应的位置范围以及姿势范围。通过将搜索范围限定为可靠性高的位置范围以及姿势范围,缩短计算工件5的位置姿势所需要的时间。
(7)根据通过工件位置姿势计算部64计算出的工件5的位置姿势,新生成具有比以前存储的位置姿势计算数据63高的优先度的位置姿势计算数据63。由此,虽然计算出工件5的位置姿势,但是能够限制在计算未通过机器人2搬运的工件5的位置姿势时的位置范围以及姿势范围,能够缩短所需要的时间。
说明了搬运散乱堆积的工件的实施方式,但是本发明的机器人搬运系统也可以用于搬运台阶状装载的工件。此时,即使在从预定的位置移动了几个工件的情况下,在本发明的机器人搬运系统中也能够检测出任意位置姿势的工件,所以能够搬运工件。
以上,说明了本发明的各种实施方式,但是只要是本领域技术人员,就会识别出通过其它实施方式也能够实现本发明要达到的作用效果。特别是能够不脱离本发明的范围而删除或置换上述实施方式的结构要素,或者还能够附加公知的单元。另外,本领域技术人员也会明白通过任意组合本说明书中明示或暗示公开的多个实施方式的特征也能够实施本发明。根据本发明的工件位置姿势计算装置,根据通过位置姿势计算装置计算出的工件的位置以及姿势,排除用于三维匹配的测量数据的一部分。由此,限定执行三维匹配时的搜索范围,能够高效地计算工件的位置以及姿势。