机器人系统、机器人控制装置、机器人手部及机器人控制方法

文档序号:2373169阅读:162来源:国知局
机器人系统、机器人控制装置、机器人手部及机器人控制方法
【专利摘要】本发明提供一种即使从摄像部(130)获得的物体(OBJ)位置中包含有误差也能够将物体(OBJ)从容器(BOX)中取出的机器人系统(100)、机器人控制装置(120)、机器人手部(108)及机器人控制方法。机器人(110)的控制方法包括:基于容器(BOX)的立体图像计算与容器(BOX)的位置或姿态有关的信息并将其作为第一信息的步骤;通过使手部(108)接触容器(BOX)而计算与容器(BOX)的位置或姿态有关的信息并将其作为第二信息的步骤;基于部件(OBJ)的立体图像计算与部件(OBJ)的位置或姿态有关的信息的步骤;以及基于第一及第二信息修正与部件(OBJ)的位置或姿态有关的信息的步骤。
【专利说明】机器人系统、机器人控制装置、机器人手部及机器人控制方法
【技术领域】
[0001]本发明涉及一种机器人系统、机器人控制装置、机器人手部及机器人控制方法。
【背景技术】
[0002]在专利文献I中记载了带有手和眼的机器人。该带有手和眼的机器人为在安装机械手的臂部上至少安装摄像装置的摄像光学系统来获得由机械手执行的作业所需的视觉信息的结构。
[0003]现有技术文献
[0004]专利文献
[0005]专利文献1:日本特开昭58-137595号公报
【发明内容】

[0006]本发明所要解决的问题
[0007]本发明的目的是提供一种即使从摄像部得到的物体位置中包含有误差也能够从容器中取出物体的机器人系统、机器人控制装置、机器人手部及机器人控制方法。
[0008]用于解决问题的方法
[0009]为解决所述问题,根据本发明的一个方面,应用一种机器人系统,具有:
[0010]机器人,所述机器人具有对放入容器中的物体进行拍摄的摄像部、把持所述物体的手部、以及用于检测所述手部与所述容器的接触的接触检测器;以及
[0011]机器人控制装置,所述机器人控制装置控制所述机器人,
[0012]所述机器人控制装置具有:
[0013]I)控制部,所述控制部使所述手部向所述容器移动,并使该手部接触该容器;
[0014]2)接触检测部,所述接触检测部通过所述接触检测器检测所述手部与所述容器的接触,并求出该接触位置;
[0015]3)第一处理部,所述第一处理部根据使用所述摄像部获得的所述容器的立体图像,计算该容器的位置;
[0016]4)第二处理部,所述第二处理部计算所述第一处理部计算出的所述容器的位置与所述接触检测部求出的所述接触位置之差并将其作为修正量;以及
[0017]5)第三处理部,所述第三处理部基于所述修正量,修正与放入所述容器中的所述物体在高度方向的位置有关的信息。
[0018]另外,根据本发明的另一方面,应用一种机器人系统,具有:
[0019]机器人,所述机器人具有对放入容器中的物体进行拍摄的摄像部、把持所述物体的手部、以及检测所述手部与所述容器的接触的接触检测器;以及
[0020]机器人控制装置,所述机器人控制装置控制所述机器人,
[0021 ] 所述机器人控制装置具有:[0022]I)控制部,所述控制部使所述手部向所述容器移动,并使该手部分别接触该容器的不同的第一至第六接触位置;
[0023]2)接触检测部,所述接触检测部通过所述接触检测器检测所述手部与所述容器的接触,求出所述第一至第六接触位置,并根据所求出的该第一至第六接触位置求出所述容器的位置姿态;
[0024]3)第一处理部,所述第一处理部根据使用所述摄像部获得的所述容器的立体图像,计算所述容器的位置姿态;
[0025]4)第二处理部,所述第二处理部基于所述第一处理部计算出的所述容器的位置姿态以及所述接触检测部求出的所述容器的位置姿态,计算表示从固定在所述机器人的手腕部的凸缘上的凸缘坐标系观察到的所述摄像部的位置姿态的齐次变换矩阵fTc ;以及
[0026]5)第三处理部,所述第三处理部基于所述齐次变换矩阵FT。,修正与放入所述容器中的所述物体的位置姿态有关的信息。
[0027]另外,根据本发明的又一方面,应用一种机器人系统,具有:
[0028]机器人,所述机器人具有对放入容器中的物体进行拍摄的摄像部以及把持所述物体的手部;以及
[0029]机器人控制装置,所述机器人控制装置控制所述机器人,
[0030]所述机器人控制装置具有:
[0031]I)控制部,所述控制部使所述手部向所述容器移动,并使该手部接触该容器;
[0032]2)接触位置输出单元,所述接触位置输出单元输出所述手部与所述容器接触时的接触位置;
[0033]3)第一处理部,所述第一处理部根据使用所述摄像部获得的所述容器的立体图像,计算所述容器的位置;
[0034]4)第二处理部,所述第二处理部计算所述第一处理部计算出的所述容器的位置与所述接触位置输出单元输出的所述接触位置之差并将其作为修正量;以及
[0035]5)第三处理部,所述第三处理部基于所述修正量,修正与放入所述容器中的所述物体的位置有关的信息。
[0036]另外,根据本发明的又一方面,应用一种机器人控制装置,具有:
[0037]控制部,所述控制部使机器人的手部向收纳物体的容器移动,并使该手部与该容器接触;
[0038]接触检测部,所述接触检测部检测所述手部与所述容器的接触,并求出该接触位置;
[0039]第一处理部,所述第一处理部根据所述容器的立体图像,计算该容器的位置;
[0040]第二处理部,所述第二处理部计算所述第一处理部计算出的所述容器的位置与所述接触位置检测部求出的所述接触位置之差并将其作为修正量;以及
[0041]第三处理部,所述第三处理部基于所述修正量,修正与放入所述容器中的所述物体在高度方向的位置有关的信息。
[0042]另外,根据本发明的又一方面,应用一种机器人控制装置,具有:
[0043]控制部,所述控制部使机器人的手部向收纳物体的容器移动,并使该手部分别接触该容器的不同的第一至第六接触位置;[0044]接触检测部,所述接触检测部检测所述手部与所述容器的接触,求出所述第一至第六接触位置,并根据所求出的该第一至第六接触位置求出所述容器的位置姿态;
[0045]第一处理部,所述第一处理部根据使用设置在所述机器人上的摄像部获得的所述容器的立体图像,计算所述容器的位置姿态;
[0046]第二处理部,所述第二处理部基于所述第一处理部计算出的所述容器的位置姿态以及所述接触检测部求出的所述容器的位置姿态,计算表示从固定在所述机器人的手腕部的凸缘上的凸缘坐标系观察到的所述摄像部的位置姿态的齐次变换矩阵FTC ;以及
[0047]第三处理部,所述第三处理部基于所述齐次变换矩阵FTC,修正与放入所述容器中的所述物体的位置有关的信息。
[0048]另外,根据本发明的又一方面,应用一种机器人控制方法,包括:
[0049]对收纳有部件的容器进行拍摄,并获取该容器的立体图像的步骤;
[0050]基于所述容器的立体图像,计算与所述容器的位置或姿态有关的信息并将其作为第一信息的步骤;
[0051]使机器人的手部向所述容器移动的步骤;
[0052]通过使所述手部接触所述容器,计算与该容器的位置或姿态有关的信息并将其作为第二信息的步骤;
[0053]对所述部件进行拍摄,并获取该部件的立体图像的步骤;
[0054]基于所述部件的立体图像,计算与所述部件的位置或姿态有关的信息的步骤;以及
[0055]基于所述第一及第二信息,修正与所述部件的位置或姿态有关的信息的步骤。
[0056]另外,根据本发明的另一方面,应用一种机器人控制方法,包括:
[0057]对收纳有部件的容器进行拍摄,并获取该容器的立体图像的步骤;
[0058]基于所述容器的立体图像,计算所述容器的位置并将其作为第一位置的步骤;
[0059]使机器人的手部向所述容器移动的步骤;
[0060]检测所述手部与所述容器的接触,求出该接触位置并将其作为第二位置的步骤;
[0061]计算所述容器的第一位置与所述第二位置之差并将其作为修正量的步骤;
[0062]对所述部件进行拍摄,并获取该部件的立体图像的步骤;
[0063]基于所述部件的立体图像,计算所述部件的位置的步骤;
[0064]基于所述修正量,修正与所述部件在高度方向的位置有关的信息的步骤;以及
[0065]基于修正后的与所述部件在高度方向的位置有关的信息,使用所述手部把持所述部件的步骤。
[0066]另外,根据本发明的另一方面,应用一种机器人控制方法,包括:
[0067]使用设置在机器人上的摄像部对收纳有部件的容器进行拍摄,并获取该容器的立体图像的步骤;
[0068]基于所述容器的立体图像,计算所述容器的位置姿态并将其作为第一位置姿态的步骤;
[0069]重复进行使机器人的手部向所述容器移动的处理、以及检测所述手部与所述容器的接触并求出产生该接触的接触位置的处理,由此分别求出不同的至少6个接触位置的步骤;[0070]根据所述接触位置,计算所述容器的位置姿态并将其作为第二位置姿态的步骤;
[0071]基于所述第一位置姿态与所述第二位置姿态,计算从被固定在所述机器人的手腕部的凸缘上的凸缘坐标系观察到的所述摄像部的位置姿态的步骤;以及
[0072]基于从所述凸缘坐标系观察到的所述摄像部的位置姿态,使用所述机器人的手部把持所述部件的步骤。
[0073]另外,根据本发明的另一方面,应用一种机器人手部,具有:
[0074]基部;
[0075]I对把持爪,所述把持爪从所述基部延伸并且能够开闭;以及
[0076]接触检测部件,所述接触检测部件从所述基部延伸,并且在接触时发生变形。
[0077]另外,根据本发明的又一方面,应用一种机器人手部,具有:
[0078]基部;以及
[0079]从所述基部延伸并且能够开闭的I对把持爪,
[0080]所述I对把持爪中的一个把持爪具有改变该把持爪的刚性的刚性改变机构。发明效果
[0081]根据本发明,即使从摄像部获得的物体位置中包含有误差,也能够将物体从容器中取出。
【专利附图】

【附图说明】
[0082]图1是本发明第一实施方式涉及的机器人系统的结构图。
[0083]图2是该机器人系统的机器人控制装置具有的位置计算部的框图。
[0084]图3是表示该机器人系统具有的机器人系统的概要动作的流程图。
[0085]图4是表示该机器人系统具有的机器人系统的详细动作的流程图。
[0086]图5是表示在修正量计算处理中该机器人系统具有的机器人的动作的说明图。
[0087]图6是表示在部件把持动作中该机器人系统具有的机器人的动作的说明图。
[0088]图7是本发明第二实施方式涉及的机器人系统的结构图。
[0089]图8是该机器人系统的机器人控制装置具有的位置计算部的框图。
[0090]图9是表示该机器人系统的修正量计算处理的流程图。
[0091]图10是部件收纳容器的立体图。
[0092]图11是表示部件收纳容器的角点的说明图。
[0093]图12是表示由该机器人系统具有的机器人手部执行的接触动作的说明图。
[0094]图13是表示由该机器人系统具有的机器人手部产生的接触部位的例子的说明图。
[0095]图14是表示各个坐标系与齐次变换矩阵的关系的说明图。
[0096]图15是示出表示部件收纳容器位置姿态的齐次变换矩阵的说明图。
[0097]图16是表示该机器人系统修正量计算处理中的第一坐标系的部件收纳容器的俯视图。
[0098]图17是表示该机器人系统修正量计算处理中的从与图16不同的角度观察到的第一坐标系的部件收纳容器的侧视图。
[0099]图18是表示该机器人系统修正量计算处理中的第二坐标系的说明图。[0100]图19是表示该机器人系统修正量计算处理中的容器坐标系的说明图。
[0101]图20是本发明第三实施方式涉及的机器人系统的结构图。
[0102]图21是表示该机器人系统具有的机器人控制装置的接触检测动作的流程图。
[0103]图22是表示修正量处理中该机器人系统具有的机器人的动作的说明图。
[0104]图23是表示部件把持动作中该机器人系统具有的机器人的动作的说明图。
[0105]图24是该机器人系统具有的机器人控制装置的接触检测部所存储的数据的例子。
[0106]图25是该机器人系统执行接触检测动作时的力数据和接触检测探测器的高度方向的前端位置的例子。
[0107]图26是表示本发明第四实施方式涉及的机器人系统具有的机器人手部、即销后退的状态的说明图。
[0108]图27是表示该机器人系统具有的机器人手部、即销前进的状态的说明图。
[0109]图28是表示修正量计算处理中该机器人系统具有的机器人的动作的说明图。
[0110]图29是表示部件把持动作中该机器人系统具有的机器人的动作的说明图。
【具体实施方式】
[0111]接下来,参照附图,说明将本发明具体化的实施例,以供理解本发明。此外,在各图中省略了与说明无关的部分的图示。
[0112](第一实施方式)
[0113]如图1所示,本发明的第一实施方式涉及的机器人系统100具有机器人110以及控制该机器人110的动作的机器人控制装置120。
[0114]机器人110可以从放置在作业台112上的任意位置上的部件收纳容器(容器的一个例子)BOX中将堆积如山的部件(物体的一个例子)OBJ取出。例如,如图10所示,部件收纳容器BOX具有矩形的底板114以及构成侧面的4个侧面板115a至115d,并且部件收纳容器BOX是向上方开口的容器。
[0115]此外,图1中记载的机器人110被示意性示出。另外,图1所示的坐标是机器人坐标系Cr。机器人坐标系Cr的X轴正方向、Y轴正方向以及Z轴正方向分别设定为机器人110的前方、左方以及上方。
[0116]机器人110具有多个连杆122a至122f,例如是6轴多关节机器人。各个连杆122a至122f经由关节124连结。各个关节124通过具有编码器的伺服马达(图未示)进行驱动。
[0117]如图1所示,机器人110还具有力传感器(接触检测器的一个例子)126、手部(机器人手部108)以及摄像部130。
[0118]力传感器126能够检测施加于手部108的力并且能够输出与该力相对应的电信号。即,通过力传感器126能够检测手部108与物体的接触。例如,力传感器126被设置在位于机器人110的前端的手腕部的凸缘132上。由于力传感器126用于手部108的接触检测,因此,例如,在手部108与物体的接触方向预先确定的情况下,只要能够检测至少发生接触的方向的力即可。
[0119]此外,接触检测器可以是任意的,只要是能够检测手部108与物体的接触的传感器即可。作为接触检测器的另一个例子,可以列举出接触传感器、或者将发生接触作为压力变化进行检测的压力传感器。
[0120]另外,使用通过有无导通以电气方式来检测发生接触的检测单元,也能够检测手部108与物体的接触。使用通过干扰扭矩超出预先设定的阈值来检测接触的检测单元,也能够检测手部108与物体的接触,其中所述干扰扭矩由驱动各个关节的马达的扭矩指令值与负载扭矩之差表不。
[0121]在力传感器126的前端侧设置有手部108。手部108具有基部133、以及从基部133延伸的能够开闭的I对把持爪134和135。手部108能够通过使把持爪134、135开闭来把持作为把持对象物的部件OBJ。把持爪134、135通过图未示的伺服马达进行驱动从而进行开闭。
[0122]摄像部130是由分别设置在不同位置上的2台摄像机构成,并且能够从不同的2个位置一次对部件OBJ进行拍摄。因此,通过摄像部130,能够一次获得2个部件图像(立体图像),而不需改变摄像位置。摄像部130例如可以安装在手部108的基部133或者机器人110的手腕部的凸缘132上。
[0123]此外,摄像部130也可以仅由I台摄像机构成。该情况下,摄像部130通过机器人110的移动能够从不同的2个位置对部件OBJ进行拍摄。
[0124]利用通过摄像部130获得的立体图像,能够获得部件OBJ的三维测量数据(部件形状)。
[0125]如图1所示,机器人控制装置120具有存储部152、动作序列部154、轨道生成部156、伺服控制部(控制部的一个例子)158以及手部控制部160。
[0126]另外,机器人控制装置120还具有:捕获部162、位置计算部166、力传感器接口部168、接触检测部(接触位置输出单元的一个例子)170以及修正量计算部(第二处理部的一个例子)172。
[0127]机器人控制装置120内置有图未示的CPU以及存储器。图1所示的功能框图所表示的各个功能通过由CPU执行的软件或硬件实现。
[0128]存储部152能够存储动作程序(J0B),该动作程序(JOB)记录了使机器人110动作的指令。另外,存储部152能够存储模型数据,该模型数据表示预先设定的部件OBJ的形状及尺寸。该存储部152例如由非易失性半导体存储器或HDD构成。
[0129]动作序列部154能够解析动作程序并执行所需的处理。作为第一例,动作序列部154能够基于动作程序中记录的直线移动命令,向轨道生成部156输出指令cmdl,以使其生成轨道。作为第二例,动作序列部154能够基于动作程序中记录的闭合命令,向手部控制部160输出指令cmd2,以使其闭合把持爪134、135。
[0130]此外,动作序列部154能够输出摄像触发trg,摄像触发trg为摄像部130的拍摄定时。另外,动作序列部154能够向接触检测部170输出用于使其开始动作的指令cmd3。
[0131]轨道生成部156能够基于来自动作序列部154的指令cmdl,生成机器人110的轨道。例如,轨道生成部156能够基于来自动作序列部154的指令cmdl,生成用于使机器人110的手部108直线移动直至由直线移动指令设定的目标位置的轨道。机器人110基于生成的轨道进行动作,使手部108移动到对部件OBJ进行把持的位置,或者使摄像部130向部件收纳容器BOX或部件OBJ的摄像位置移动。
[0132]伺服控制部158能够按照由轨道生成部156生成的轨道,控制对机器人110的各关节124进行驱动的伺服马达。伺服控制部158能够从各个伺服马达的编码器接收信号,并输出编码器的位置反馈信息(从编码器获取的角度)Pfb。
[0133]手部控制部160能够基于动作序列部154输出的指令cmd2,控制对手部108的把持爪134、135进行驱动的马达,使把持爪134、135开闭。
[0134]捕获部162能够在动作序列部154输出摄像触发trg的定时,从摄像部130获取图像,并创建作为立体图像的图像数据。
[0135]位置计算部166能够基于捕获部162所创建的图像数据,将摄像部130拍摄的部件收纳容器BOX或者部件OBJ的三维位置(以下,简称“位置”)分别计算为位置Pbox和位置Pobj。这些位置Pbox、Pobj基于编码器的位置反馈信息Pfd,用图1所示的机器人坐标系Cr表不。
[0136]详细而言,如图2所示,位置计算部166具有图像处理部(第一处理部的一个例子)166a以及修正位置计算部(第三处理部的一个例子)166b。
[0137]图像处理部166a能够对部件收纳容器BOX的图像数据进行处理并将部件收纳容器BOX的位置Pbox输出至修正量计算部172。
[0138]修正位置计算部166b能够基于修正量计算部172输出的修正量S,修正与部件OBJ在高度方向的位置有关的信息,并将修正后的部件OBJ的位置Pobj输出至动作序列部154。
[0139]在此,基于从立体图像获得的图像数据所计算出的部件OBJ的位置通常含有误差。因此,如果基于该位置控制手部108,有时对部件OBJ的把持失败。部件OBJ的位置存在特别是高度方向(从摄像部130朝向摄像对象的方向)的误差Derr (参照图5左图)很大的情况。
[0140]力传感器接口部168能够获取力传感器126输出的电信号并输出力数据f。另外,力传感器接口部168将力数据f的单位从电单位转换为物理单位。另外,力传感器接口部168基于编码器的位置反馈信息Pfb,进行用机器人坐标系Cr表示力数据f的坐标转换处理。
[0141]接触检测部170能够以预先确定的周期监视力数据f并检测机器人110的手部108与部件收纳容器BOX的接触。另外,接触检测部170能够基于发生接触时的机器人110的位置,计算手部108与部件收纳容器BOX的接触位置Pent。接触位置Pcnt被输出至修正量计算部172。接触检测部170基于动作序列部154输出的指令cmd3开始进行动作。
[0142]修正量计算部172能够将与位置计算部166的图像处理部166a计算出的部件收纳容器BOX的位置Pbox、与手部108和部件收纳容器BOX的实际接触位置Pcnt在高度方向的位置有关的差计算为修正量S。该修正量5被输出至位置计算部166。
[0143]接下来,说明机器人系统100的动作(机器人的控制方法)。
[0144]如图3所示,机器人系统100执行修正量计算处理(图4所示的步骤SlOl至步骤S107)后,执行部件把持动作(步骤S108至步骤S114)。以下,针对每个步骤进行说明。
[0145](步骤SlOl)
[0146]如图4所示,机器人控制装置120的动作序列部154从存储部152读出动作程序。
[0147](步骤S102)
[0148]动作序列部154基于使摄像部130向部件收纳容器BOX的摄像位置移动的指令,输出指令cmdl。
[0149]轨道生成部156生成使摄像部130向部件收纳容器BOX的摄像位置移动的轨道。
[0150]伺服控制部158基于生成的轨道,控制机器人110。其结果是,如图5的左图所示,机器人110的摄像部130被定位在对部件收纳容器BOX进行拍摄的位置上。
[0151](步骤S103)
[0152]动作序列部154输出摄像触发trg。 [0153]该摄像触发trg被输入到捕获部162时,捕获部162控制摄像部130拍摄部件收纳容器BOX的立体图像。捕获部162输出所拍摄的作为立体图像的图像数据。
[0154](步骤S104)
[0155]位置计算部166的图像处理部166a (参照图2)对从捕获部162获取的图像数据进行图像处理,计算部件收纳容器BOX的位置(第一信息的一个例子)Pbox。部件收纳容器BOX的位置Pbox被输出至修正量计算部172。
[0156](步骤SlO5)
[0157]动作序列部154基于使手臂108与部件收纳容器BOX接触的命令,输出指令cmdl。
[0158]轨道生成部156基于指令cmdl,例如生成使手部108向构成部件收纳容器BOX的侧面板115a (参照图10)的上端面方向进行移动的轨道。
[0159]伺服控制部158基于生成的轨道控制机器人110。手部108向部件收纳容器BOX下降。
[0160](步骤S106)
[0161]当手部108下降时,动作序列部154输出指令cmd3,接触检测部170监视力数据
fo
[0162]如图5的右图所示,当机器人108的把持爪134与构成部件收纳容器BOX的侧面板115a的上端面接触时,接触检测部170基于力数据f检测该接触。
[0163]接触检测部170检测到接触时,将接触检测信号Sd输出至动作序列部154。
[0164]动作序列部154使手部108的下降停止。即,轨道生成部156生成使机器人110进行减速停止的轨道。
[0165]伺服控制部158按照该轨道,控制机器人110。
[0166]另外,接触检测部170根据手部108与部件收纳容器BOX接触时机器人110的各伺服马达的位置反馈信息(从编码器得到的角度)Pfb,计算手部108的接触位置(第二信息的一个例子)Pent。
[0167]手部108的接触位置Pcnt经由接下来的第一计算步骤以及第二计算步骤进行计

ο
[0168]在第一计算步骤中,通过对机器人110的各伺服马达的位置反馈信息Pfb进行正运动学变换,计算从机器人坐标系Cr观察到的凸缘132的位置姿态。
[0169]在第二计算步骤中,累加从第一计算步骤中计算出的凸缘132的位置姿态到手部108的前端(控制点)的位置。
[0170]此外,作为第一方法,动作序列部154能够使本步骤(接触检测动作)S106与步骤S105所示的手部108的下降动作的开始一起开始。
[0171]另外,作为第二方法,动作序列部154首先将手部108定位在根据图像数据获取的部件收纳容器BOX的水平方向位置上,接下来,能够基于根据图像数据获取的部件收纳容器BOX的高度方向位置Hl,使手部108移动到位于高度方向位置Hl的上方的位置H2之后,开始进行本步骤106。
[0172]一般而言,在本步骤S106所示的接触检测动作中,由于需要使手部108以低速移动,因此,从缩短处理时间的角度出发,相比于第一方法,优选第二方法。
[0173](步骤S107)
[0174]修正量计算部172计算手部108的接触位置Pcnt与在步骤S104中位置计算部166基于图像数据所计算出的部件收纳容器BOX的位置Pbox的高度差。修正量计算部172将该差作为基于图像数据的部件OBJ位置的修正量8求出。
[0175](步骤S108)
[0176]轨道生成部156生成使摄像部130向用于对放入部件收纳容器BOX中的部件OBJ进行拍摄的摄像位置移动的轨道。
[0177]伺服控制部158基于生成的轨道,控制机器人110。其结果是,如图6的左图所示,摄像部130被定位在对部件OBJ进行拍摄的位置上。
[0178](步骤S109)
[0179]动作序列部154输出摄像触发trg。
[0180]当该摄像触发trg被输入至捕获部162时,捕获部162控制摄像部130,拍摄放入部件收纳容器BOX中的部件OBJ的立体图像。捕获部162输出作为立体图像的图像数据。
[0181](步骤SI 10)
[0182]位置计算部166的图像处理部166a(参照图2)使用从存储部152读出的部件OBJ的模型数据(参照图1),从图像数据中抽取部件OBJ的数据并进行图像处理,从而计算部件OBJ的位置姿态。
[0183](步骤Slll)
[0184]位置计算部166的修正位置计算部166b将在步骤S107中修正量计算部172求出的修正量S累加到所计算出的部件OBJ的高度方向的位置。即,修正位置计算部166b对使用摄像部130求出的与部件OBJ的高度方向的位置有关的信息(与部件位置有关的信息的一个例子)进行修正。该修正后的部件OBJ的位置Pobj被输出至动作序列部154。
[0185](步骤SI 12)
[0186]动作序列部154将修正后的部件OBJ的位置Pobj设定为手部108的移动目标值,并向轨道生成部156输出用于生成轨道的指令cmdl。
[0187]轨道生成部156生成使手部108向修正后的部件OBJ的位置Pobj的方向移动的轨道。伺服控制部158基于生成的轨道,控制机器人110。其结果是,如图6的右图所示,机器人110的手部108被定位在把持部件OBJ的把持位置上。
[0188](步骤SI 13)
[0189]动作序列部154对动作程序进行解析,并基于使把持爪134、135闭合的闭合指令而输出指令cmd2。手部控制部160基于指令cmd2,控制对手部108的把持爪134、135进行驱动的马达。其结果是,把持爪134、135闭合,手部108对部件OBJ进行把持。
[0190](步骤SI 14)
[0191]动作序列部154基于使手部108上升的指令,输出指令cmdl。[0192]轨道生成部156基于来自动作序列部154的指令cmdl,生成使手部108上升的轨道。
[0193]伺服控制部158基于生成的轨道,控制机器人110。其结果是,机器人110使手部108向上移动,机器人110能够取出部件OBJ。
[0194]如上所述,即使从由摄像部130拍摄到的立体图像中获取的部件OBJ的高度方向的位置中包含有误差,本实施方式涉及的机器人系统100也能够从部件收纳容器BOX中取出部件OBJ。
[0195]另外,由于机器人系统100的手部108接触容纳部件OBJ的部件收纳容器BOX而不接触成为把持对象的部件OBJ并求解修正量δ,因此能够减小手部108接触部件OBJ时堆积如山的部件OBJ发生错位的可能性。
[0196]此外,在本实施方式中,手部108发生接触的位置不限于构成部件收纳容器BOX的侧面板115a (参照图10)的上端面。
[0197]另外,一般而言,如果放置部件收纳容器BOX的放置位置发生改变,则从摄像部130获得的部件OBJ在高度方向的位置的误差也发生改变。当该误差的变化在允许范围内的情况下,将图3所示的修正量计算处理(图4所示的步骤SlOl至步骤S107)至少在对机器人110进行示教时执行一次即可。
[0198](第二实施方式)
[0199]接下来,说明本发明的第二实施方式涉及的机器人200。对于与第一实施方式涉及的机器人系统100相同的构成要素和动作步骤标注相同的附图标记,有时省略详细说明。
[0200]图7所示的机器人系统200通过使手部108与部件收纳容器BOX的至少6个不同的点接触,执行不仅对部件收纳容器BOX的位置而且对姿态也进行计算的步骤。
[0201]位置计算部266能够基于捕获部162所创建的图像数据,将摄像部130拍摄到的部件收纳容器BOX或部件OBJ的三维位置姿态(以下,简称为“位置姿态”)分别计算为位置姿态PAbox和位置姿态Pobj。这些位置姿态PAbox和位置姿态Pobj基于编码器的位置反馈信息Pfb,使用图1所示的机器人坐标系Cr表示。
[0202]详细而言,如图8所示,位置计算部266具有图像处理部(第一处理部的一个例子)266a和修正位置计算部(第三处理部的一个例子)266b。
[0203]图像处理部266a能够对部件收纳容器BOX的图像数据进行处理,并将部件收纳容器BOX的位置姿态PAbox输出至修正量计算部272。
[0204]修正位置计算部266b能够基于修正量计算部272输出的齐次变换矩阵fTc对与部件OBJ的位置姿态有关的信息进行修正,并将修正后的部件OBJ的位置姿态PAobj输出至动作序列部154。
[0205]接触检测部270根据手部的不同的6个接触位置,能够求出部件收纳容器BOX的位置姿态PAcnt。
[0206]修正量计算部272 (第二处理部的一个例子)基于根据图像数据计算出的部件收纳容器BOX的位置姿态PAbox与使手部接触所求出的部件收纳容器BOX的位置姿态PAcnt,能够计算用于表示从固定在机器人110的凸缘132上的凸缘坐标系Cf观察到的摄像部130的位置姿态的齐次变换矩阵FT。。
[0207]接下来,说明机器人系统200的动作(机器人的控制方法)。[0208]如图3所示,机器人系统200执行修正量计算处理(如图9所示的步骤S201至步骤S209)后,执行部件把持动作(与图4所示的步骤S108至步骤S114相对应的步骤)。以下仅对修正量计算处理针对每个步骤进行说明。
[0209](步骤S2Ol)
[0210]如图9所示,机器人控制装置220的动作序列部154从存储部152读出动作程序。
[0211](步骤S202)
[0212]动作序列部154基于使摄像部130向部件收纳容器BOX的摄像位置移动的指令,输出指令cmdl。
[0213]轨道生成部156生成使摄像部130向部件收纳容器BOX的摄像位置移动的轨道。
[0214]伺服控制部158基于生成的轨道,控制机器人110。其结果是,如图5的左图所示,机器人110的摄像部130被定位在对部件收纳容器BOX进行拍摄的位置上。
[0215](步骤S203)
[0216]动作序列部154输出摄像触发trg。
[0217]当摄像触发trg被输入到捕获部162时,捕获部162控制摄像部130,拍摄部件收纳容器BOX的立体图像。捕获部162输出所拍摄到的作为立体图像的图像数据。
[0218](步骤S204)
[0219]位置计算部266的图像处理部266a (参照图8)对从捕获部162获得的图像数据进行图像处理,并计算部件收纳容器BOX的位置姿态(第一信息的一个例子)PAbox。部件收纳容器BOX的位置姿态PAbox被输出至修正量计算部272。
[0220](步骤S205)
[0221]动作序列部154基于使手部108与部件收纳容器BOX接触的指令,输出指令cmdl。
[0222]轨道生成部156基于指令cmdl,生成使手部108向部件收纳容器BOX的方向移动的轨道。手部108的移动目标位置例如被设定在位于构成部件收纳容器BOX的侧面板的上端面上的点Pl (参照图13)。
[0223]伺服控制部158基于生成的轨道,控制机器人110。手部108向部件收纳容器BOX移动。
[0224](步骤S206)
[0225]当手部108移动时,动作序列部154输出指令cmd3,接触检测部270监视力数据
fo
[0226]如图5的右图所示,当手部108的把持爪134与部件收纳容器BOX接触时,接触检测部270基于力数据f检测该接触。
[0227]当接触检测部270检测到接触时,向动作序列部154输出接触检测信号Sd。动作序列部154使手部108的移动停止。即,轨道生成部156生成使机器人110进行减速停止的轨道,伺服控制部158按照该轨道来控制机器人110。
[0228]另外,接触检测部270根据手部108与部件收纳容器BOX接触时的、各个伺服马达的位置反馈信息Pfb,计算机器人坐标系Cr中手部的接触位置。
[0229]手部108的接触位置经由下面的第一计算步骤和第二计算步骤进行计算。
[0230]在第一计算步骤中,通过对机器人110的各伺服马达的位置反馈信息Pfb进行正运动学变换,计算从机器人坐标系Cr观察到的凸缘132的位置姿态。[0231]在第二计算步骤中,累加从第一计算步骤中计算出的凸缘132的位置姿态到手部108的前端(控制点)的位置姿态。
[0232](步骤S207)
[0233]接触检测部270为了求出固定在部件收纳容器BOX上并以部件收纳容器BOX的角点Pcc (参照图11)为原点的容器坐标系Cb的位置姿态,判定是否获得例如图13所示的至少6个不同的、手部108的接触位置Pl至P6。
[0234]此外,如图12所示,机器人利用手部108的例如把持爪134上的所确定的角点Phc(手部上的预先确定的部位的一个例子)与部件收纳容器BOX接触。
[0235]在没有获得总计6个接触位置的情况下,返回步骤S205和步骤S206,使手部与部件收纳容器BOX的不同位置接触。
[0236]另一方面,在获得了总计6个接触位置的情况下,进入下一步骤S208。
[0237](步骤S208)
[0238]根据所获得的总计6个接触位置(参照图13) Pl至P6的坐标,计算所述容器坐标系Cb的位置姿态,将其作为使手部108接触所求出的部件收纳容器BOX的位置姿态(第二信息的一个例子)PAcnt0
[0239]后面将会对容器坐标系Cb的计算方法的例子进行叙述。
[0240](步骤S209)
[0241]修正量计算部272根据使手部108接触所求出的部件收纳容器BOX的位置姿态PAcnt、以及在步骤S204中位置计算部266基于图像数据所计算出的部件收纳容器BOX的位置姿态PAbox,计算表示从固定在机器人110的凸缘132上的凸缘坐标系Cf观察到的摄像部130的位置姿态的齐次变换矩阵FT。。该齐次变换矩阵FT。为修正量计算处理结果。
[0242]在此,说明从机器人110的凸缘132观察到的摄像部130的位置姿态的计算方法(齐次变换矩阵FT。的计算方法)。
[0243]如图14所示,如果使用齐次变换矩阵kTf表示从机器人坐标系Cr观察到的凸缘坐标系(固定在凸缘132上的坐标系)Cf、使用齐次变换矩阵FT。表示从凸缘坐标系Cf观察到的摄像部坐标系(固定在摄像部130上的坐标系)Ce、使用齐次变换矩阵eTb表示从摄像部坐标系Ce观察到的容器坐标系(固定在部件收纳容器BOX上的坐标系)Cb,则这些矩阵的积eTb表示为下式。
[0244]eTb = eTf.fTc.cTb 式(I)
[0245]该矩阵kTb是将使用摄像部130计算出的部件收纳容器BOX的位置姿态PAbox转换为从机器人坐标系Cr观察到的位置姿态的矩阵。
[0246]此外,为了表示各坐标系与齐次变换矩阵的关系,图14和图15所示的机器人110被示意性示出。因此,摄像部130被固定在凸缘132上。如图7所示,摄像部130也能够被固定在手部108的基部133上。
[0247]将手部108与部件收纳容器BOX接触所计算出的部件收纳容器BOX的位置姿态PAcnt设为图15所示的矩阵KTt,并且该矩阵KTt设为与通过式(I)求出的矩阵kTb相等,对齐次变换矩阵fT。进行求解时,得到下式(2)。
[0248]fTc = (eTf).ΕΤτ.(cTb) 式(2)
[0249]在式(2)中,右肩的上标(-1)表示括弧中的矩阵的逆矩阵。该齐次变换矩阵\是修正量计算处理结果。
[0250]即,只要分别求出齐次变换矩阵kTf、齐次变换矩阵KTt和齐次变换矩阵eTB,就能够确定从凸缘坐标系Cf观察到的摄像部130的位置姿态(齐次变换矩阵fTcX
[0251]在此,齐次变换矩阵kTf是表示在步骤S202中使用摄像部130对部件收纳容器BOX进行拍摄时的、从机器人坐标系Cr观察到的凸缘132的位置姿态的矩阵。
[0252]齐次变换矩阵KTt是表示在步骤S208中求出的、通过手部108与部件收纳容器BOX接触所计算出的、从机器人坐标系Cr观察到的部件收纳容器BOX的位置姿态PAcnt的矩阵。
[0253]齐次变换矩阵eTB是表示在步骤S204中求出的、根据图像数据所计算出的部件收纳容器BOX的位置姿态PAbox的矩阵。
[0254]在以下图3所示的部件把持动作中,图8所示的位置计算部266的修正位置计算部266b使用齐次变换矩阵fTc,通过上式(I ),将图像处理部266a根据摄像部130的图像数据所计算出的与部件OBJ的位置姿态有关的信息转换为与从机器人坐标系Cr观察到的位置姿态有关的信息。
[0255]接下来,详细说明所述步骤S208中容器坐标系Cb的位置姿态的计算方法。此外,在以下的说明中,有时将位于手部108的接触位置Pl至P6上的点称为点Pl至P6。
[0256]按照以下的计算步骤Scl至Sc3执行容器坐标系Cb的位置姿态的计算。
[0257](计算步骤Scl)
[0258]在本步骤Scl中,如图16所示,使用位于部件收纳容器BOX的侧面板115a、115b的上端面上的3个点PU P2和P3,求出以点Pl作为原点的第一坐标系Cbl。具体而言,执行以下的步骤。`
[0259](步骤I)
[0260]通过下式求出从点Pl向点P2的单位向量a。
[0261]a = (P2 - Pl) / I P2 - Pl I 式(3)
[0262](步骤2)
[0263]通过下式求出从点Pl向点P3的向量bl。
[0264]bl = P3 — Pl 式(4)
[0265](步骤3)
[0266]通过下式求出作为与向量bl的单位向量a成直角的分量的向量b2。
[0267]b2 = bl — (bl ? a ) a 式(5)
[0268](步骤4)
[0269]通过下式,求出向量b2的单位向量b。
[0270]b = b2 / I b2 I 式(6)
[0271](步骤5)
[0272]作为单位向量a与单位向量b的外积,通过下式求出单位向量C。
[0273]c = a Xb 式(7)
[0274]将所求出的单位向量a、单位向量b和单位向量c分别作为X轴、Y轴和Z轴、并以点Pl作为原点的坐标系被定义为第一坐标系Cbl。将第一坐标系Cbl设为从机器人坐标系Cr观察到的坐标系,并使用下式的齐次变换矩阵kT1表示。[0275][公式I]
[0276]
【权利要求】
1.一种机器人系统,具有: 机器人,所述机器人具有对放入容器中的物体进行拍摄的摄像部、把持所述物体的手部、以及用于检测所述手部与所述容器的接触的接触检测器;以及机器人控制装置,所述机器人控制装置控制所述机器人, 所述机器人控制装置具有: 1)控制部,所述控制部使所述手部向所述容器移动,并使该手部接触该容器; 2)接触检测部,所述接触检测部通过所述接触检测器检测所述手部与所述容器的接触,并求出该接触位置; 3)第一处理部,所述第一处理部根据使用所述摄像部获得的所述容器的立体图像,计算该容器的位置; 4)第二处理部,所述第二处理部计算所述第一处理部计算出的所述容器的位置与所述接触检测部求出的所述接触位置之差并将其作为修正量;以及 5)第三处理部,所述第三处理部基于所述修正量,修正与放入所述容器中的所述物体在高度方向的位置有关的信息。
2.如权利要求1所述 的机器人系统,其特征在于, 所述手部具有: 基部;以及 接触检测部件,所述接触检测部件从所述基部延伸,并且在与所述容器接触时发生变形, 所述控制部使所述手部向所述容器移动,并使所述接触检测部件与所述容器接触。
3.如权利要求2所述的机器人系统,其特征在于, 所述接触检测部件由弹性体构成。
4.如权利要求1所述的机器人系统,其特征在于, 所述手部具有: 基部;以及 从所述基部延伸并且能够开闭的I对把持爪, 所述I对把持爪中的一个把持爪具有改变该把持爪的刚性的刚性改变机构。
5.如权利要求4所述的机器人系统,其特征在于, 所述刚性改变机构具有: 固定部,所述固定部被设置在所述基部上; 卷簧,所述卷簧的一端被固定在所述固定部上; 把持部,所述把持部被固定在所述卷簧的另一端,并且在所述固定部侧形成有孔; 销,所述销被配置在所述卷簧的内侧,并且前端的形状与所述孔的形状相对应;以及 进退机构,所述进退机构被设置在所述固定部上,并使所述销进退。
6.—种机器人系统,具有: 机器人,所述机器人具有对放入容器中的物体进行拍摄的摄像部、把持所述物体的手部、以及检测所述手部与所述容器的接触的接触检测器;以及机器人控制装置,所述机器人控制装置控制所述机器人, 所述机器人控制装置具有:1)控制部,所述控制部使所述手部向所述容器移动,并使该手部分别接触该容器的不同的第一至第六接触位置; 2)接触检测部,所述接触检测部通过所述接触检测器检测所述手部与所述容器的接触,求出所述第一至第六接触位置,并根据所求出的该第一至第六接触位置求出所述容器的位置姿态; 3)第一处理部,所述第一处理部根据使用所述摄像部获得的所述容器的立体图像,计算所述容器的位置姿态; 4)第二处理部,所述第二处理部基于所述第一处理部计算出的所述容器的位置姿态以及所述接触检测部求出的所述容器的位置姿态,计算表示从固定在所述机器人的手腕部的凸缘上的凸缘坐标系观察到的所述摄像部的位置姿态的齐次变换矩阵fTc ;以及 5)第三处理部,所述第三处理部基于所述齐次变换矩阵FT。,修正与放入所述容器中的所述物体的位置姿态有关的信息。
7.如权利要求6所述的机器人系统,其特征在于, 所述控制部使所述手部以所述手部的预先确定的部位与所述容器接触。
8.—种机器人系统,具有: 机器人,所述机器人具有 对放入容器中的物体进行拍摄的摄像部以及把持所述物体的手部;以及 机器人控制装置,所述机器人控制装置控制所述机器人, 所述机器人控制装置具有: 1)控制部,所述控制部使所述手部向所述容器移动,并使该手部接触该容器; 2)接触位置输出单元,所述接触位置输出单元输出所述手部与所述容器接触时的接触位置; 3)第一处理部,所述第一处理部根据使用所述摄像部获得的所述容器的立体图像,计算所述容器的位置; 4)第二处理部,所述第二处理部计算所述第一处理部计算出的所述容器的位置与所述接触位置输出单元输出的所述接触位置之差并将其作为修正量;以及 5)第三处理部,所述第三处理部基于所述修正量,修正与放入所述容器中的所述物体的位置有关的信息。
9.一种机器人控制装置,具有: 控制部,所述控制部使机器人的手部向收纳物体的容器移动,并使该手部接触该容器; 接触检测部,所述接触检测部检测所述手部与所述容器的接触,并求出该接触位置; 第一处理部,所述第一处理部根据所述容器的立体图像,计算该容器的位置; 第二处理部,所述第二处理部计算所述第一处理部计算出的所述容器位置与所述接触位置检测部求出的所述接触位置之差并将其作为修正量;以及 第三处理部,所述第三处理部基于所述修正量,修正与放入所述容器中的所述物体在高度方向的位置有关的信息。
10.一种机器人控制装置,具有: 控制部,所述控制部使机器人的手部向收纳物体的容器移动,并使该手部分别接触该容器的不同的第一至第六接触位置; 接触检测部,所述接触检测部检测所述手部与所述容器的接触,求出所述第一至第六接触位置,并根据求出的该第一至第六接触位置求出所述容器的位置姿态; 第一处理部,所述第一处理部根据使用设置在所述机器人上的摄像部获得的所述容器的立体图像,计算所述容器的位置姿态; 第二处理部,所述第二处理部基于所述第一处理部计算出的所述容器的位置姿态以及所述接触检测部求出的所述容器的位置姿态,计算表示从固定在所述机器人的手腕部的凸缘上的凸缘坐标系观察到的所述摄像部的位置姿态的齐次变换矩阵fTc ;以及 第三处理部,所述第三处理部基于所述齐次变换矩阵FT。,修正与放入所述容器中的所述物体的位置有关的信息。
11.一种机器人控制方法,包括: 对收纳有部件的容器进行拍摄,并获取该容器的立体图像的步骤; 基于所述容器的立体图像,计算与所述容器的位置或姿态有关的信息并将其作为第一信息的步骤; 使机器人的手部向所述容器移动的步骤; 通过使所述手部接触所述容器,计算与该容器的位置或姿态有关的信息并将其作为第二信息的步骤; 对所述部件进行拍摄,并获取该部件的立体图像的步骤;` 基于所述部件的立体图像,计算与所述部件的位置或姿态有关的信息的步骤;以及 基于所述第一及第二信息,修正与所述部件的位置或姿态有关的信息的步骤。
12.—种机器人控制方法,包括: 对收纳有部件的容器进行拍摄,并获取该容器的立体图像的步骤; 基于所述容器的立体图像,计算所述容器的位置并将其作为第一位置的步骤; 使机器人的手部向所述容器移动的步骤; 检测所述手部与所述容器的接触,并求出该接触位置并将其作为第二位置的步骤; 计算所述容器的第一位置与所述第二位置之差并将其作为修正量的步骤; 对所述部件进行拍摄,并获取该部件的立体图像的步骤; 基于所述部件的立体图像,计算所述部件的位置的步骤; 基于所述修正量,修正与所述部件在高度方向的位置有关的信息的步骤;以及基于修正后的与所述部件在高度方向的位置有关的信息,使用所述手部把持所述部件的步骤。
13.—种机器人控制方法,包括: 使用设置在机器人上的摄像部对收纳有部件的容器进行拍摄,并获取该容器的立体图像的步骤; 基于所述容器的立体图像,计算所述容器的位置姿态并将其作为第一位置姿态的步骤; 重复进行使机器人的手部向所述容器移动的处理、以及检测所述手部与所述容器的接触并求出产生该接触的接触位置的处理,由此分别求出不同的至少6个接触位置的步骤;根据所述接触位置计算所述容器的位置姿态并将其作为第二位置姿态的步骤;基于所述第一位置姿态与所述第二位置姿态,计算从被固定在所述机器人的手腕部的凸缘上的凸缘坐标系观察到的所述摄像部的位置姿态的步骤;以及 基于从所述凸缘坐标系观察到的所述摄像部的位置姿态,使用所述机器人的手部把持所述部件的步骤。
14.一种机器人手部,具有: 基部; I对把持爪,所述把持爪从所述基部延伸并且能够开闭;以及 接触检测部件,所述接触检测部件从所述基部延伸,并且在接触时发生变形。
15.—种机器人手部,具有: 基部;以及 从所述基部延伸并且能够开闭的I对把持爪, 所述I对把持爪中的一个把持爪具有改变该把持爪的刚性的刚性改变机构。
【文档编号】B25J13/00GK103732363SQ201180072923
【公开日】2014年4月16日 申请日期:2011年8月19日 优先权日:2011年8月19日
【发明者】永田英夫, 关山友之, 井上康之 申请人:株式会社安川电机
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1