本发明涉及一种驱动机构、机器人设备测量方法和机器人设备控制方法、以及部件制造方法,其中,驱动机构包括传感器,该传感器测量作用在接合至驱动机构的连杆上的力。
背景技术:
近年来,多关节机器人已经用在各种工业产品生产线上。然而,存在难以用多关节机器人执行的许多过程。例如,在用于装配例如汽车部件的生产线上,多关节机器人广泛用在特别是几百克到几千克的载荷施加到部件上的过程中。另外的方面,在执行要求提供至部件的载荷为大约几克的过程(例如工件(包括例如软的物体、轻质物体或者低强度构件)的附接)以及执行用于提供与多关节机器人的精确配合的过程中存在各种困难。
如上所述,在不能够用多关节机器人执行的过程中,目前,使用专门用于这些过程的专用设备或者工具来代替多关节机器人。然而,这些专用设备或工具被设计或制造为仅仅用于特别的过程或者待处理的工件,并且因此,存在下述问题,即,在这种类型的设备或工具被实际制备以及例如生产线启动之前,消耗大量的时间和成本。
因此,存在使用通用的多关节机器人而不是专用装置和/或专用工具来执行处理易碎工件的过程的需要,其中,所述易碎工件例如包括诸如上面提到的软的物体、轻质物体或者低强度构件。
在处理包括诸如上面提到的软的物体、轻质物体或者低强度构件的工件的情况下,例如,为了防止工件的破坏或变形,不能够使得大的力作用在工件上。因此,如果这种类型的工件被用多关节机器人操纵,则必须经由关节或连杆以高精度控制作用在工件上的力。
例如,常规地已知这样一种构造,在所述构造中,力传感器与附接到多关节机器人的远端的末端执行器(诸如手或者夹持器)一起设置。来自该力传感器的输出值被反馈以用于末端执行器的驱动控制,由此,作用在工件上的力可以被控制。另外,除了在远端处的末端执行器以外,例如,可设想到作用在多关节机器人的臂中所包括的各个连杆上的力被测量并且被反馈以用于多关节机器人的驱动控制。特别地,作用在机器人臂的连杆上的力中的必须被测量以用于进行多关节机器人的高精度驱动控制的力是围绕驱动轴线作用的转矩。
作为用于检测作用在诸如上面提及的臂的连杆上的转矩的手段,提出了转矩传感器安装在机器人臂的关节上的构造(例如,日本特开专利No.2011-72186)。
作用在连杆自身上的重力、惯性力和/或科里奥利(Coriolis)力,和/或来自相邻连杆的力根据臂的运动作用在多关节机器人臂的关节上。例如,作用在关节上的力包括:在关节的驱动轴为z轴的直角坐标系中,在六个方向上的力的合力的相应分量,所述在六个方向上的力包括在三个坐标轴方向上的平移力以及围绕三个坐标轴的旋转力。在下文中,在六个方向上的力中,在围绕关节的驱动轴作用的力以外的五个方向上作用的力称为在另外的轴向方向上的力。
另外的方面,在多关节机器人臂的驱动控制中,例如,围绕关节的驱动轴的力
(该力作用在连杆上)
被检测并且被反馈以用于关节的驱动。因此,期望安装在关节上的力传感器能够正确地检测围绕关节的驱动轴的力,其中,该力作用在接合至关节的连杆上。
然而,在诸如上面提及的另外的轴向方向上的力作用在力传感器上时,力传感器不能够正确地检测围绕驱动轴的力。例如,如果在另外的轴向方向上的力作用在包括可变形部分并且通过检测在该可变形部分中出现的变形量来确定力这种类型的力传感器上,则力传感器由于在另外的轴向方向上的力的作用也在关节的驱动轴的周向方向上变形。
在下文中,另外的轴向方向上的力在力传感器上的作用被称为“在另外的轴向方向上的干扰”。换言之,当由于施加在力传感器上的另外的轴向方向上的力导致在力传感器中出现某种变形时,该变形作为检测围绕关节的驱动轴的力的力传感器的检测误差出现。换言之,由如上所述的在另外的轴向方向上的力而在设置在某个关节的驱动轴上的力传感器中引起的测量误差被称为“在另外的轴向方向上的干扰”。如果出现这种在另外的轴向方向上的干扰,则不能够用该力传感器正确地检测围绕关节的驱动轴的力。
因此,为了正确地检测围绕关节的驱动轴的力,例如,必须以某种方式修正由在另外的轴向方向上的干扰导致的传感器检测值误差。因此,例如,可设想到,作用在力传感器上的另外的轴向方向上的力被检测以修正来自力传感器的检测值。
然而,诸如在日本特开专利No.2011-72186中描述的常规关节结构,轴承设置在力传感器与连杆之间,因此,不容易检测在另外的轴向方向上的力的值。
在下文中给出难以检测在另外的轴向方向上的力的值的原因,其中,如日本特开专利No.2011-72186中的常规构造那样,诸如轴承的机械元件插置于多关节机器人臂的关节处。
例如,这种类型的关节结构仅允许关节在期望的一个方向上的运动,并且使用诸如交叉滚子轴承的轴承作为约束单元(约束部分)来约束在另外的方向上的运动。这种结构可能导致在另外的轴向方向上的力的传递路径的复杂化。
例如,取决于关节结构,可能存在这样的路径,在所述路径上,关节驱动力在连接两个连杆的关节轴线以外被传递。例如,在日本特开专利No.2011-72186中表示的结构中,作用在驱动侧连杆上的在另外的轴向方向上的力经由力传感器和作为关节的约束单元轴承二者传递。通过这种构造,难以得到被传递到力传感器的、在另外的轴向方向上的力的正确值。
特别地,减少了作为关节的约束部分的轴承的摩擦力的量的连杆的驱动力被传递到力传感器。因此,为了正确地掌握作用在力传感器上的在另外的轴向方向上的力,必须掌握设置在关节上的轴承的摩擦力。然而,关节的轴承的摩擦力表现出关于各个因素(诸如,作用在轴承上的力、关节的驱动速度以及轴承的个体特殊性)的非线性特征,因此,难以正确地掌握轴承的摩擦力。
技术实现要素:
本发明实现作用在机器人臂的关节上的在另外的轴向方向上的力的准确检测,并且因此实现由另外的轴向方向上的干扰导致的力传感器的检测误差的修正,以及作用在接合至关节的连杆上的力的准确检测。
根据本发明的一个方面,为了解决上述问题,一种驱动机构,所述驱动机构用于将第一连杆和第二连杆相对于彼此驱动,所述驱动机构包括:驱动设备,所述驱动设备包括固定部分和待被驱动部分,并且所述驱动设备相对于所述固定部分驱动所述待被驱动部分;以及约束部分,所述约束部分包括第一支撑部分和第二支撑部分并且约束第一连杆和第二连杆,以在期望方向上可移动并且在另外的方向上不可移动,其中,所述固定部分和所述待被驱动部分中的一者被固定至第一连杆;第一支撑部分固定至第一连杆;第二支撑部分固定至所述固定部分和所述待被驱动部分中的另一者;并且用于确定作用在第二连杆上的力的传感器被附接,以将所述固定部分和所述待被驱动部分中的另一者与第二连杆连接。
从下面的参照附图的示例性实施例的描述中,本发明的其它特征将变得明显。
附图说明
图1是示出了根据本发明的实施例的机器人系统的构造的图解。
图2是示意性示出了图1中的机器人臂的关节的结构的图解。
图3是示出了图1中的机器人系统的控制系统的构造的方框图。
图4是示出了图3中的控制系统中的关节的驱动力的测量和驱动控制的流程的流程图。
图5是示出了图3中的控制系统中的关节的驱动力的测量和驱动控制的另外的流程的流程图。
图6是示出了施加到机器人臂的关节上的在另外的轴向方向上的力的图解。
图7是示意性示出了图1中的机器人臂的另外的关节结构的图解。
图8是示出了滑动关节(slider joint)的图解,该滑动关节具有与图2至图7中的关节相似的构造。
图9是示出了图1中的机器人臂的端部部分处的关节的配置以及施加到各个部分上的力的图解。
具体实施方式
现在将根据附图详细描述本发明的优选实施例。
本发明实现了施加到力传感器上的在另外的轴向方向上的力的传递路径的简化。因此,能够以高精度掌握施加到力传感器的在另外的轴向方向上的力的值,能够以高的精度修正由在另外的轴向方向上的干扰导致的传感器检测值误差,从而实现高精度传感器检测值修正。使用修正的传感器检测值来用于多关节机器人的驱动控制能够实现高精度驱动控制,并且因此使得该多关节机器人能够执行常规地难以用多关节机器人执行的过程。
更具体地,使用修正的传感器检测值来用于多关节机器人的驱动控制能够实现由附接至多关节机器人的远端的末端执行器提供至部件的力的高精度控制。因此,要求提供至部件的载荷为大约几克的过程(诸如,用于软的物体或者低强度构件的附接的过程)能够通过多关节机器人自动地进行。
将在下文中参照附图所示的实施例描述用于执行本发明的实施方式。下述实施例明确地仅仅为示例,并且可以在不背离本发明的精神的情况下由本领域技术人员在例如一小部分的构造方面任意地改变。另外,该实施例中表示的数值是参考数值,并且不旨在限制本发明。
在下文描述的每个实施例中,具有确定围绕关节的驱动轴作用的力的功能的传感器被称为力传感器。
<实施例1>
(多关节机器人系统的基本构造)
图1示出了本发明可以应用于的多关节机器人系统的基本构造。图1的机器人系统包括:机器人臂1,其构造作为例如多关节机器人臂;和机器人控制设备2,该机器人控制设备2控制机器人臂1。
机器人臂1是具有竖向六轴构造的多关节机器人臂。机器人臂1包括第一至第六连杆111至116,该第一至第六连杆111至116经由基部110上的第一至第六关节121至126接合。机器人臂1的基部110和第一连杆111由围绕在Z轴线方向上的旋转轴旋转的关节121连接。另外,机器人臂1的第一连杆111和第二连杆112通过围绕在Y轴线方向上的旋转轴旋转的关节122连接。另外,机器人臂1的第二连杆112和第三连杆113通过围绕在Y轴线方向上的旋转轴旋转的关节123连接。另外,机器人臂1的第三连杆113和第四连杆114通过围绕在X轴线方向上的旋转轴旋转的关节124连接。另外,机器人臂1的第四连杆114和第五连杆115通过围绕在Y轴线方向上的旋转轴旋转的关节125连接。另外,机器人臂1的第五连杆115和第六连杆116通过围绕在X轴线方向上的旋转轴旋转的关节126连接。
用于在生产线上执行部件组装作业或者部件传递作业的末端执行器117(诸如电机手或者空气动力手)连接至机器人臂1的第六连杆116的稍端。
机器人臂1的运动由机器人控制设备2控制。例如,机器人控制设备2根据预先编程的机器人控制程序来控制机器人臂1的每个关节的姿态(位置和取向),由此,机器人臂1的姿态或者设置在末端执行器117附近的基准部位的位置或姿态被控制。另外,与此同步,机器人控制设备2通过控制末端执行器117的运动(例如,诸如手的打开/闭合的运动)而能够使用机器人臂1操纵工件。因此,部件能够被制造。
在图1中,整个机器人臂1的三维坐标轴在左下部分中表示。然后,图1中的机器人臂1示出为处于这样的姿态,在所述姿态中,第一关节121使得相邻的连杆围绕在Z轴线方向上的旋转轴旋转,并且第二关节122、第三关节123以及第五关节125使得相应的相邻连杆围绕在Y轴线方向上的相应旋转轴旋转。另外,第四关节124和第六关节126构造为使得相应的相邻连杆围绕在X轴线方向上的相应旋转轴旋转。然而,每个关节的旋转轴与相关的坐标轴线之间的关系是适用于图1中的机器人臂1的姿态的关系。因此,例如,如果机器人臂1通过机器人控制设备2控制为处于不同于图1的姿态,则可能需要使用另外的坐标系。
(多关节机器人的关节的基本结构)
图2示意性示出了图1中的机器人臂1中的关节的示例性基本结构。
在下文中,为了参照图2更笼统地表示图1中的机器人臂1的构造,第一至第六关节121至126中的任意关节可以被称为“第n个关节”。另外,为了更简单地表示该“第n个”(关节;同样适用于“连杆”),在附图中使用前缀有下标“n”的附图标记表示。另外,与在臂的端部侧上的“第n个”关节相邻的关节可以表示为“n+1”关节,并且与基部侧上的“第n个”关节相邻的关节可以表示为“n-1”关节。在图1的臂构造中,n对应于机器人臂1的关节(或者连杆)的编号,并且可以具有1至6的值。另外,为了避免复杂,可以在附图中省却字母n的表示。
图2示出了包括在接合第一和第二连杆210、220的关节中以便使其相对于彼此可移动的驱动机构。图2中的驱动机构包括用于确定作用在第一和第二连杆210、220上的力的传感器。
在图2中,第n个关节接合第n-1个连杆210与第n个连杆220。第n个关节包括驱动第n个关节的驱动单元n230和约束第n个关节的运动的约束部分n240。另外,第n个关节包括检测经由第n个关节施加到接合的连杆上的力的力传感器n250。
第n-1个连杆210与第n个连杆220经由该关节接合以便相对于彼此可移动,并且第n-1个连杆210和第n个连杆220的相应姿态由驱动单元n230产生的驱动力控制。
产生关节的驱动力的驱动单元n230包括固定部分231以及待被驱动部分232,上述固定部分231以及待被驱动部分232分别作为第一驱动部分和第二驱动部分。尽管在图2中省却了驱动单元n230的内部构造的细节的图示,这种类型的机器人关节的驱动单元包括例如电机和减速器。电机的输出轴的旋转输入到减速器,并且电机的输出轴的旋转被以预定的减速比减速并且传递到待被驱动部分232。对于驱动单元n230的减速器,例如,使用应变波齿轮。
约束部分n240具有如下功能,即,以使得第一连杆和第二连杆在关节被驱动的方向上可移动并且在其它方向上不可移动的方式约束第一连杆与第二连杆的相对运动的相应方向。换言之,约束部分n240以使得关节仅围绕第n个关节的驱动轴n200可移动而在其它方向上不可移动的方式约束关节的运动。约束部分n240可以包括,例如,交叉滚子轴承241以及固定至交叉滚子轴承241的内圈242的连接构件244。交叉滚子轴承241的内圈242和外圈243设置在内圈242和外圈243可围绕驱动轴n200旋转的相应位置处。包括在约束部分n240中的交叉滚子轴承241的内圈242和外圈243对应于约束部分n240的第一支撑部分和第二支撑部分。
力传感器n250包括例如转矩传感器,所述转矩传感器测量位移以便确定围绕关节的驱动轴n200的力,所述力被施加到转矩传感器自身。在这种情况下,力传感器n250包括:例如,内圈部分251、外圈部分252以及连接内圈部分251和外圈部分252的弹簧部分253。通过这种构造,当围绕驱动轴n200的力作用在力传感器n250上时,弹簧部分253变形,从而使得力传感器n250能够从弹簧部分253的变形量来测量关节的驱动力,该驱动力作用在连杆上。
例如,用于将力传感器n250的变形量转换为力的灵敏度矩阵(n330,将在下文中描述)以例如表格存储的形式事先设置,由此,测量的变形量可以被转换为力的测量量。用于测量力传感器n250的变形量的力传感器位移检测方法的示例包括,例如,应变计法、电容法、磁法以及光学编码器法。例如,在光学编码器法的情况下,采用这样的构造,在所述构造中,光学旋转编码器和光学传感器(未示出)的尺度被设置以分别面向连接构件244和外圈部分252。
在图2中的第n个关节中,机械接合(连接)关系如下地构造。
(i)图2中的驱动单元n230的固定部分231(第一驱动部分)固定至第n-1个连杆210(暂时称为“第一连杆”),并且待被驱动部分232(第二驱动部分)固定至连接构件244。连接构件244将力传感器n250的内圈部分251、约束部分n240的内圈242(第二支撑部分)和第n个连杆220(暂时称为“第二连杆”)固定地连接至彼此。
(ii)交叉滚子轴承241(约束部分)的外圈243(第一支撑部分)固定至第n-1个连杆210(第一连杆)。
(iii)另外,连接构件244固定至力传感器n250的内圈部分251。
(iv)力传感器n250的外圈部分252(第二支撑部分)固定至第n个连杆220(第二连杆)。
另外,作为与参照图2描述的关节的结构等同的结构,可以采用诸如图7所示的关节结构。在图7中,具有对应于图2的配置(连接或接合)关系的构件被提供与图2的附图标记相同的附图标记。
尽管在图7的关节结构中,力传感器n250设置在不同于图2的位置的位置处,关节结构的各个部分之间的连接(接合)关系与图2中的关节的连接(接合)关系相似。然而,在图7中,连杆210和220的位置彼此切换以对应于在上述(i)至(iv)中描述的连接(接合)关系中的第一连杆和第二连杆。同样,在图7中,驱动单元n230的固定部分231(第一驱动部分)与待被驱动部分232(第二驱动部分)之间的位置关系与图2的位置关系相反。
另外,在图7中,交叉滚子轴承241(约束部分)的外圈243对应于上述(i)-(iv)中的约束部分的第二支撑部分,并且内圈242对应于上述(i)-(iv)中的约束部分的第一支撑部分。另外,上述(i)至(iv)中的连接构件244对应于图7中的覆盖驱动单元n230的筒状壳体部分。力传感器n250的内圈部分251固定至连接构件244,并且力传感器n250的外圈部分252固定至连杆220(第二连杆)。
如图2的关节结构那样,图7的关节结构满足上述(i)至(iv)中描述的连接(接合)关系。因此,图7的结构也能够实现将在下文描述的关节驱动力测量和关节驱动控制,并且可以预期提供与图2的关节结构的操作和效果相似的操作和效果(在下文描述)。
另外,图2示出了连杆相对于彼此旋转地移动的结构;然而,在使得线性移动的滑动关节彼此连接的情况下,可以采用图8的结构。在图8中,同样,具有对应于图2(或图7)的配置关系的构件具有与图2(或图7)相同的附图标记。尽管图8与图2之间的附图标记对应关系与上述图7的情况相似,并且因此不再重复描述,尽管图8中的关节结构是滑动关节,但关节结构的各个部件之间的连接(接合)关系与上述(i)至(iv)中描述的图2(或图7)中的连接(接合)关系等同。
如图7和图8所示,可设想到满足诸如上述(i)至(iv)中描述的连接(接合)关系的各种构造,并且应理解,本领域技术人员可以对根据上面作为示例描述的本实施例的关节结构做出各种设计改变。
(机器人臂的控制)
如图2那样构造的机器人臂1的多个关节由机器人控制设备2控制。机器人控制设备2控制第n个关节(第一至第六关节121至126)的相应角度,并且从而能够使得机器人臂1采取期望的姿态。
这里,机器人控制设备2可以经由末端执行器117控制例如施加到被操纵的工件(未示出)上的力。例如,机器人控制设备2可以从设置在机器人臂1的各个关节n处的力传感器接收测量值的输入并且将该测量值反馈到各个关节的驱动单元n230。因此,例如,可以执行反馈控制,诸如将施加到工件的力控制到期望大小或者执行控制以防止具有预定大小或更大的力施加到工件。
图3将机器人控制设备2中的用于机器人臂1的第n个关节的控制系统的构造示出为功能模块图。在控制系统的功能模块图中,主要部分包括算术运算单元320和储存设备300。
算术运算单元320可以包括计算机,例如,CPU,其包括通用微处理器。用于存储设备300的存储装置的示例包括:诸如ROM和RAM的半导体存储器以及诸如HDD和SSD的固定(外部)存储设备。另外,对于用于存储设备300的存储装置,可设想到使用可重写记录介质(诸如,各种闪存存储器或者光(磁)盘中的任一种)的构造。存储设备300可以包括这些存储装置的任意组合。
包括在存储设备300中的存储装置提供算术运算单元320(计算机)能够读取的记录介质。例如,在存储设备300中,可以存储程序301,在该程序301中,写入待由算术运算单元320(计算机)执行的下文描述的控制例程,该算术运算单元320(计算机)提供用于机器人臂1的控制设备。
另外,在存储设备300中,用于使得机器人臂1操纵工件以便例如组装和制造特定的工业产品所必须的信息可以被以例如机器人控制程序的形式存储。机器人控制程序被以例如称为示教点列表的形式或者任意机器人编程语言写入,在该示教点列表中,在机器人臂1的端部处的基准部位的位置和姿态被定义。特别地,对于图2中的第n个关节,在机器人控制程序中,关节的驱动单元n230的操作被存储。
另外,在存储设备300中,下文描述的用于力传感器n250的灵敏度矩阵n330可以被以诸如表格存储的形式存储。灵敏度矩阵n330可以例如以包括在存储设备300中的HDD中的文件的形式存储,并且在程序执行或者系统安装时被加载到RAM的特定区域,其将在下文描述。因此,算术运算单元320可以指用于相关的关节的力传感器n250的灵敏度矩阵n330。
另外,在图3中,操作指令单元310包括例如设置在机器人臂1附近的用于控制的PC端子或者诸如称为示教器(TP)的控制端子。操作者(使用者)可以通过例如在检查机器人臂1的状态的同时实时地对操作指令单元310进行操作而使得机器人臂1进行任意运动。另外,机器人臂1的运动可以被检查或者机器人控制程序的一部分可以通过上述机器人控制程序的跟踪执行而被修改。
另外,在图3中,相关的关节的驱动单元n230的驱动控制(例如,下文描述的关节的驱动力控制)通过驱动器电路(例如,伺服控制电路)由算术运算单元320执行,该驱动器电路的细节没有示出。因此,机器人臂1被控制以采取用于特定工件所需要的姿态。这里,算术运算单元320可以从如图2设置的力传感器n250在与例如系统时钟同步的每个时刻得到相关的关节的驱动力的测量值。
在图3中,均由诸如“xxx单元”或者“xxx器”的名称表示的其它功能模块在附图中像硬件模块一样图示,但是,实际上,其通过例如由算术运算单元320(CPU)进行的程序301的执行而提供。然而,均由“xxx单元”或者“xxx器”的名称表示的这些功能模块(例如,330,340,350,321,322和323)可以实际上以硬件模块的形式提供,并且本实施例不旨在妨碍这种实现。
将在下文中描述图3的各个功能模块的操作的概述。
算术运算单元320(其是控制设备)基于来自操作指令单元310的操作指令或者基于存储在存储设备300中的示教数据或者机器人控制程序产生用于驱动单元n230的操作指令,以控制驱动单元n230的操作。
这里,为了确定第n个关节的关节驱动力,算术运算单元320使用用于第n个关节的来自力传感器n250的检测值来执行反馈控制。力传感器n250接收驱动单元n230的操作输入并且输出围绕驱动轴n200的力的检测值,该力作用在由臂端部侧上的第n个关节驱动的第n个连杆上。
在这种情况下,其它轴向方向力计算单元321(其它轴向方向力计算处理)计算作用在第n个关节上的在其它轴向方向上的力。到该其它轴向方向力计算单元321的输入中的一个输入是作用在第n个连杆(由相关的关节驱动)上的动力,该动力由用于第n个关节的计算单元340计算。另外,到该其它轴向方向力计算单元321的另一输入是来自第n+1个关节的力传感器n+1350的(之前计算的)检测值。由其它轴向方向力计算单元321进行的算术运算的处理对应于其它轴向方向力计算处理,在所述其它轴向方向力计算处理中,计算在关节的预定方向(驱动方向)以外的方向上的力,该力作用在关节的力传感器n250上(在其它轴向方向上的力)。
另外,其它轴向方向干扰计算单元322(其它轴向方向干扰计算处理)利用在关节的预定方向(驱动方向)以外的方向上的力(在其它轴向方向上的力)(其已经通过其它轴向方向力计算单元321(其它轴向方向力计算处理)计算)以及用于关节的力传感器n250的灵敏度矩阵n330来计算在其它轴向方向上的干扰。这里,如上所述,在其它轴向方向上的干扰是由在关节的驱动方向以外的轴向方向上的力所导致的误差量,该误差量包含在来自关节的力传感器n250的检测值中。换言之,在其它轴向方向上的干扰是待从传感器的检测值减去的误差,该误差由在预定方向以外的方向上的计算力导致。
灵敏度矩阵n330可以包括例如:围绕垂直于关节的驱动轴的至少两个三维坐标轴施加到相关的力传感器n250的力(转矩)与力传感器n250的输出值之间的关系。另外,灵敏度矩阵n330可以包括力传感器n250将要测量的、围绕关节的驱动轴施加的力(转矩)与力传感器n250的输出值之间的关系。
作为灵敏度矩阵n330如上所述地构造的结果,例如,其它轴向方向干扰计算单元322利用由其它轴向方向力计算单元321计算的在其它轴向方向上的力以及灵敏度矩阵n330可以计算由在其它轴向方向上的力导致的误差以及在其它轴向方向上的干扰的大小,其中,该误差出现在力传感器n250的输出值中。灵敏度矩阵n330可以以例如在存储设备300中的表格存储的形式提供。
另外,修正器323(修正处理)从来自力传感器n250的检测值中减去在其它轴向方向上的干扰,该干扰是由其它轴向方向干扰计算单元322计算的误差,并且从而修正来自设置在第n个关节处的力传感器n250的检测值。
控制器324利用已经由修正器323(修正处理)修正(在其它轴向方向上的干扰已经被消除)的第n个关节的驱动力的当前值可以控制驱动单元n230的驱动力。
如上所述,例如在图6中所示的在其它方向上的力围绕关节的驱动轴n200施加。在图6中,附图标记10表示围绕驱动轴n200施加的力,其由力传感器n250检测。由力传感器n250检测的力10包含其它轴向方向力40。其它轴向方向力40包括力矩分量20和平移力分量30,并且如上所述,在本实施例中,执行用于从来自力传感器n250的检测值10消除其它轴向方向力40的影响的控制。
在上文描述的图3中的功能模块中的信息处理被如下组织,其中,强调输入/输出关系。
算术运算单元320包括其它轴向方向力计算单元321、其它轴向方向干扰计算单元322、修正器323以及控制器324。其它轴向方向力计算单元321接收作用在第n个连杆上的动力的计算值以及来自第n+1个关节的力传感器n+1350的检测值的输入,并且输出作用在第n个连杆的力传感器n250上的在其它轴向方向上的力,其中,所述计算值通过根据第n个连杆计算动力的计算单元340得到。
其它轴向方向干扰计算单元322接收作用在力传感器n250上的在其它轴向方向上的力(所述力由其它轴向方向力计算单元321输出)以及用于力传感器n250的灵敏度矩阵n330的输入,并且输出来自力传感器n250的检测值的误差,该误差已由其它轴向方向上的干扰引起。
修正器323接收已经从其它轴向方向干扰计算单元322输出的力传感器n250的检测值的误差以及力传感器n250的检测值的输入,并且输出由力传感器n250的检测值的修正得到的值。
控制器324接收从操作指令单元310输出的、用于驱动单元n230的操作指令以及已经从修正器323输出的、从力传感器n250的检测值的修正得到的值的输入,并且输出用于驱动单元n230的操作指令。
在下面的描述中,如下标(诸如n和n+1)表示的,在图3中所示的构造中,在执行用于第n个关节的关节驱动力的处理时,必须的是,用于第n+1个关节的关节驱动力的处理已经执行。因此,在多关节构造中,上述处理按照从机器人臂1的端部侧上的关节开始的次序执行。这种关节驱动力测量过程可以用诸如图4中的流程图的形式表达。
将在下文中参照图4中的流程图描述图3的算术运算单元320中的其它轴向方向力计算单元321、其它轴向方向干扰计算单元322、修正器323以及控制器324中的处理的细节。
图4中的流程图表示控制例程,其中,对于第一至第六关节,从由每个关节的力传感器n250检测的力减去在其它轴向方向上的干扰,并且得到的值被反馈到相关的关节的驱动单元n230。图4中的控制被配置以使得该控制可以例如在经由机器人臂1操控工件的作业期间实时进行。
因此,在图4中的控制中,用于关节控制的最大时间段(时间S至E)被确定(S400),并且如果关节控制不在最大时间段内结束(S403),则图4中的关节控制中止。然而,在本实施例中,一组关节控制所消耗的时间的限制并不是必须的。然而,用于机器人臂1的所有关节的一组关节控制的时间限制使得,例如包括在算术运算单元320中的CPU的计算资源能够有效利用以及例如位置和姿态控制的停滞或误动作的风险降低,这是重要的。
在步骤S400中,在第一处理目标关节的关节编号n和所有关节的控制作为一组的情况下,执行一组或若干组控制所消耗的可变消耗时间t被重新设置为初始值S(起始时间)。其中,关节编号n的索引可以利用在算术运算单元中包括的CPU中的内部寄存器中分配的可变区域或者RAM中的堆栈或者特定地址来提供。另外,一组所有关节的消耗时间t可以利用例如未示出的RTC(实时时钟)来测量。
在本实施例的情况下,在步骤S400中,6被分配给表示机器人臂1的各个关节和连杆的编号的n,图1中的第六关节126的控制被首先进行。随后,在n的值减小为5、4、3…时(S402),图4中表示的整个循环被执行,由此,关节的控制按照从端部侧到基部侧的次序执行。
在图4中,其它轴向方向力计算处理(步骤S410)对应于图3中的其它轴向方向力计算单元321中的处理。在其它轴向方向力计算处理(S410)中,作用在由第n个关节驱动的第n个连杆上的力的平衡表达式(下述表达式1)被求解,以计算作用在第n个关节的力传感器n250上的力。
[表达式1]
fjn=Fjn+fjn+1…(1)
这里,在上述表达式(1)中,左边的第一项是作用在第n个关节的力传感器n250上的力,右边的第一项是作用在第n个连杆上的动力。另外,右边的第二项是作用在与机器人臂1的端部侧上的第n个关节相邻的第n+1个关节的力传感器n+1350上的力(步骤S405)。在图4的处理中,在右边第二项中的作用在第n+1个关节的力传感器n+1350上的力已经通过后面描述的重新定义处理计算(S460)。
在其它轴向方向计算处理(S410)中,对于左侧第一项求解表达式(1),以确定作用在力传感器n250上的在各个方向上的力,使得能够计算作用在传感器n250上的在其它轴向方向上的力。
这里,在n=6时,在机器人臂1中没有第七关节,因此,表达式(1)的右边的第二项为零,在n=5或更小时,使用作用在相关的力传感器n+1350上的力。
例如,图9示出了图1中的机器人设备的机器人臂1的端部部分,也就是,经由两个关节125(J5)、126(J6)接合的连杆。施加在这些关节125(J5)、126(J6)上的力Fj5、Fj6可以如下述表达式(2)那样表示。
[表达式2]
表达式(2)特别地用于表达式(1)中的n=5的特定情况。左边的第一项是作用在关节125(J5)的力传感器n250上的力。该力包括围绕关节的三个轴线的力Mxj5,Myj5,Mzj5,其在图9中示出。另外,右边的第二项是作用在关节126(J6)的力传感器n+1350上的力。该力包括围绕关节的三个轴线的力Mxj6,Myj6,Mzj6,其在图9中示出。这些力被放到相应矩阵中的相应位置,所述矩阵对应于图9中的关节轴线之间的相应位置关系。
另外,表达式(1)、(2)中的右边的第一项,也就是,作用在第n个连杆上的动力通过图4中的动力计算处理(步骤S420)计算。动力计算处理(S420)对应于图3中的计算单元340,并且利用第n个连杆上的静态信息和动态信息来计算作用在第n个连杆上的力。用于动力计算处理(步骤S420)中的算术运算的静态信息包括连杆的形状、惯性、弹性和/或姿态的信息,并且动态信息包括连杆的速度和加速度的信息。当然,其中,诸如连杆的形状、惯性和弹性的静态条件从关于机器人臂1的设计信息中已知,并且因此可以被提前存储在存储设备300中。另外,图4的处理将在机器人臂1的控制期间在特定位置或姿态中执行,因此,算术运算单元320(CPU)可以从被执行的机器人控制程序中识别动态条件(诸如在当前时间点的关节的姿态以及连杆的速度和加速度)。
另外,在本实施例中,在其它轴向方向力计算处理(S410)中,特别是对于作用在第n+1个关节上的力,使用来自力传感器n+1350的修正过的检测值(S405),该修正过的检测值被重新定义并且被转换到在后面描述的步骤S460和S470中的坐标系中。然而,如将在后面描述的实施例2中表示的,在其它轴向方向力计算处理(S410)中,可以单独使用作用在第n个连杆上的动力的计算值,所述动力的计算值通过计算作用在第n个连杆上的动力的计算单元340计算。在这种情况下,施加在相关的第n个关节上的在其它轴向方向上的力基于动态条件被计算,所述动态条件例如是在当前时间点的机器人臂的姿态以及连杆的速度和加速度。
这里,通过动力计算处理(S420)计算的施加在关节n上的力可以被组织和表示,例如,如下面的表达式(3)。
[表达式3]
在上述表达式(3)中,右边的第一项是通过例如由关节支撑的连杆的长度和质量确定的加速度比例项,右边的第二项是通过例如关节的旋转驱动速度确定的速度比例项。另外,右边的第三项是通过例如由关节支撑的连杆的弹性确定的位置比例项。
在上述其它轴向方向力计算处理(S410)之后,在其它轴向方向干扰计算处理(步骤S430)中,计算由上面计算的在其它轴向方向上的力导致的、来自力传感器n250的检测值的误差的量,即,在其它轴向方向上的干扰。其它轴向方向干扰计算处理(S430)对应于图3中的在其它轴向方向干扰计算单元322中的处理。
在其它轴向方向干扰计算处理(步骤S430)中,在其它轴向方向力计算处理(S410)中计算的、作用在力传感器n250上的、在其它轴向方向上的力和用于力传感器n250的灵敏度矩阵n330相乘以计算由在其它轴向方向上的干扰导致的传感器检测值误差。如上所述,灵敏度矩阵n330设置在例如存储设备300中,并且存储作用在力传感器n250上的、在其它轴向方向上的力与由在其它轴向方向上的干扰导致的传感器检测值误差之间的关系。
随后,在检测值修正处理(步骤S440)中,使用在其它轴向方向干扰计算处理(步骤S430)中计算的其它轴向方向干扰值修正来自力传感器n250的检测值。检测值修正处理(步骤S440)对应于图3中的修正器323中的处理。在检测值修正处理(S440)中,通过从来自力传感器n250的检测值减去已经在其它轴向方向干扰计算处理S430中计算的在力传感器n250中产生的传感器检测值误差来修正来自力传感器n250的检测值。
接下来,在操作指令确定处理(步骤S450)中,基于来自力传感器n250的修正的检测值执行第n个关节的驱动单元n230的驱动控制。操作指令确定处理(步骤S450)对应于在图3中的控制器324中的处理,并且例如,执行下述驱动力控制。例如,在操作指令确定处理(步骤S450)中,根据从操作指令单元310输出的操作指令计算由驱动单元n230提供至第n个连杆的围绕驱动轴n200的力(目标值)。另外,计算在检测值修正处理(步骤S440)中计算的来自力传感器n250的修正的检测值(实际值)的偏差。然后,例如,用于驱动单元n230的操作指令被确定以基于操作指令减小提供至第n个连杆的围绕驱动轴n200的力的实际值与目标值的偏差。
图4中的控制循环最后具有两个分叉步骤S401和S403。首先,在步骤S401中,确定n的值是否为1。如果n=1,即,该处理已经从第六关节开始顺序地执行到第一关节,如果n不等于1,该处理过渡到步骤S460以执行用于下一个第n-1个关节的处理。从步骤S401到步骤S403的处理的进行意味着第六关节到第一关节的一组控制的结束。在步骤S403中,确定在步骤S400中重新设置的消耗时间的变量是否表示预定的结束时间E或者更迟。在步骤S403中肯定确定的情况下,消耗的时间t超过预定最大处理时间段(S到E),并且因此,在图4中用于测量和关节驱动力控制的处理被终止。
另一方面,在步骤S403中否定确定的情况下,这等同于确认仍然有一些时间来执行第六至第一关节的下一组控制,在这种情况下,该处理通过步骤S404返回至步骤S400。这里,在步骤S404中,消耗的时间t的变量增加。尽管在附图中的步骤S404中,采用“t+1”的简化表示,在步骤S404中,可以执行用于增加通过例如RTC测量的实际时间的处理。或者,可以执行用于增加第六至第一关节的一组控制所需要的时间的处理,该所需要的时间被提前计算。另外,增量的单位并不必须是诸如毫秒(ms)或微秒(μs)的时间单位,可以任意采用另外的类型的单位。在这种情况下,应理解,结束时间E的定义被确定成对应于步骤S404中的增量的单位。
另一方面,在步骤S401中否定确定的情况下,直到第一关节的一组处理没有结束,因此,该处理通过步骤S460、S470、S402以及S405返回到上述步骤S410。
首先,在步骤S460中用于重新定义施加到力传感器n的力的重新定义处理中,在其它轴向方向力计算处理(S410)中通过求解表达式(1)得到的作用在力传感器n250上的力的计算值被替换为已经在检测值修正处理(S440)中修正的来自力传感器n250的检测值。应理解,该替换处理仅仅对于由力传感器n250检测的围绕关节驱动轴的分量执行。
在步骤S470中的坐标转换处理中,执行用于将作用在力传感器n250上的力的计算值从基于第n个关节的参考坐标轴的表达式转换为基于Z1基部110侧上与第n个关节相邻的下一个第n-1个关节的参考坐标轴的表达式。在该坐标系转换中,作用在力传感器n250上的力的坐标表达式被转换,其中,所述坐标表达式已经在作用在力传感器上的力的重新定义处理(S460)中修改(用向量或者矩阵表达)。这里,算术运算单元320可以从来自操作指令单元310或机器人控制程序的指令计算例如第n个关节和第n-1个关节(其是下一个处理目标)的关节轴的位置或姿态(位置和取向)。这里,可以执行第n个关节的关节轴作为(例如)Z轴的坐标系到第n-1个关节作为(例如)Z轴的坐标系的坐标系转换。
在步骤S402中,为了表示Z1基部侧上与第n个关节相邻的下一关节,作为关节的索引的n减小1(n=n-1)。因此,处理刚刚结束的第n个关节在下一关节处理中被称为第n+1个关节。
换言之,在步骤S405中,表达式(1)的右边的第二项,也就是,作用于在端部侧上与第n个关节相邻的第n+1个关节的力传感器n+1350上的力,使用在紧接之前的步骤S460、S470以及S402中经过坐标转换和重新定义的力。
随后,步骤S410中的处理对于下一个第n个关节向前重复。图4中的用于测量和关节驱动力控制的处理是通过将第六至第一关节的处理作为一组处理单元来执行的。另外,图4中的用于测量和关节驱动力控制的处理被执行一组或者若干组直到达到最大时间(E)为止。
(实施例1的效果)
由于机器人臂1的关节被如图1和图2那样构造,延伸穿过力传感器的路径是在连接到机器人臂的关节中的每个关节的两个连杆之间传递的力的唯一路径。因此,第n个关节的力传感器n250直接接收作用在第n个连杆220上的在其它轴向方向上的力,这使得作用在第n个连杆220上的在其它轴向方向上的力传递到力传感器n250的传递路径能够简化。在常规的关节构造中,通过关节传递的力经由诸如交叉滚子轴承和/或油封的机械元件传递,因此,在连接到关节的两个连杆之间存在不同于延伸穿过力传感器的路径的力传递路径。另一方面,在本实施例中,延伸穿过力传感器的路径是在经由关节接合的两个连杆之间的力传递的唯一路径。因此,可以容易地掌握作用在力传感器n250上的在其它轴向方向上的力的值。因此,在机器人控制设备2中的其它轴向方向力计算单元321的设置使得能够精确确定在力传感器n250上接收的在其它轴向方向上的力,并且还使得下面的测量控制能够更准确地执行。
另外,在本实施例中,其它轴向方向干扰计算单元322设置在机器人控制设备2中。因此能够以高精度修改由在其它轴向方向上的干扰导致的来自力传感器n250的检测值的误差。因此,能够准确地测量围绕驱动轴的力,并且使用围绕驱动轴的力来进行机器人臂1的驱动控制能够实现机器人臂1中的驱动力的准确和可靠的控制。因此,在机器人臂1的远端处的末端执行器117能够以高精度控制提供给部件(工件)的力。因此,即使在要求提供给部件的载荷为大约几克的过程(诸如,软的物体或者低强度构件的附接过程)中,也能够执行恰当的关节驱动力控制。因此,增加了软的物体或者低强度构件的附接过程由机器人设备实现自动化的可能性,该自动化常规上是困难的。
另外,图4中的控制以这样的方式被执行以使得,在对包括在机器人臂1中的所有关节的处理被确定为一组的情况下,对于一组或若干组执行的处理所消耗的时间不超过最大处理时间段(S至E)。因此,例如,包括在算术运算单元320中的CPU的计算资源可以被有效地利用,这使得能够降低例如位置和姿态(位置和取向)控制的停滞或者误动作的风险,这是重要的。
<实施例2>
在实施例2中,将描述基于图4中所示的测量的关节驱动力测量和控制的替代例。机器人系统和用于机器人系统的控制系统的硬件构造可以与上述实施例1相同。
图5是示出了基于图4中示出的测量的关节驱动力测量和控制的替换例的流程图。在图5中,与图4的步骤相似的步骤被设置有与图4中的步骤相同的步骤编号,并且将在下文省略这些步骤的重复描述。在图5中,与图3中的功能模块的关系与图4中与图3中的功能模块的关系相同,并且将省略对该关系的描述。
图5中的控制与图4中的控制的不同之处在于:在机器人臂1的第n个关节的驱动控制中,在其它轴向方向力计算处理(图5的步骤S410)中不使用来自第n+1个关节的力传感器n+1350的检测值。在图5中的其它轴向方向力计算处理(S410)中,仅使用作用在第n个连杆上的动力的计算值来计算作用在第n个关节的力传感器n250上的在其它轴向方向上的力,该动力由动力计算单元(图3中的340)计算。在本实施例中,在其它轴向方向力计算处理(图5中的S410)中,基于在包括施加到第n+1个关节上的力的时间点的动态条件(诸如机器人臂的姿态以及连杆的速度和加速度)计算施加到相关的第n个关节上的在其它轴向方向上的力。
因此,在图5的控制中,在过渡到用于下一个关节的处理的路径上,仅仅执行坐标转换处理(S470)和作为表示关节的索引的n的增加(S402),并且不执行重新定义处理(图4中的S460)。这里,在图5中的坐标转换处理(S470)中,可以执行将用于在算术运算中使用的力的表达式的至少一坐标系从以第n个关节作为原点的机器人臂1的当前姿态的坐标系改变为以第n-1个关节作为原点的坐标系的处理。
另外,在图5的控制中,省略了图4的步骤S400中的消耗时间t的重新设置、S403中的消耗时间确定以及S404中的消耗时间t的增加。这是因为,由于例如省略了上面描述的重新定义处理(图4中的S460),处理速度增大可以预期,但是,如在图4的控制中,对于处理作为一组的所有关节可以执行具有最大时间限制的处理。
(实施例2的效果)
在根据实施例2的控制中,可以预期与上述实施例1中相似的效果。换言之,其它轴向方向力计算单元321(图3)的设置实现了围绕力传感器n250的检测轴线作用的在其它轴向方向上的力的高精度确定。然后,由在其它轴向方向上的力导致的力传感器n250中的检测误差(在其它轴向方向上的干扰)可以利用提前设置的灵敏度矩阵n330以高精度修改。因此,能够以高精度控制经由例如机器人臂1的远端的末端执行器117作用在工件上的力。因此,由多关节机器人臂实现要求提供至部件的载荷为大约几克的过程(诸如,软的物体或低强度构件的附接过程)的自动化的可能性增大。
另外,根据实施例2,在来自关节(用于该关节的处理已经结束)的力传感器n250的检测值的重新定义处理(图4中的S460)被省略并且仅仅使用作用在第n个连杆上的动力的计算值的情况下,计算作用在第n个关节的力传感器n250上的在其它轴向方向上的力。因此,例如,包括在算术运算单元320中的CPU计算资源可以被有效地利用,这使得例如主要位置和姿态控制的停滞和误动作的风险的降低,这是重要的。
(替代实施方式等)
在上述描述中,竖向六轴线多关节构造被表示为机器人臂1的构造的示例。然而,本发明不局限于关节的数量或者关节构造。例如,如果机器人臂的关节的数量不少于两个,则可以执行与上述描述相似的测量和关节控制,并且对于关节中的任意一个,可以提供图1和图2所示的关节构造。另外,在机器人臂具有水平多关节构造或者平行连杆构造的情况下,可以提供上面描述的关节构造并且可以执行与上面描述相似的测量和关节控制,并且因此,可以预期与上述相似的效果。
另外,尽管旋转关节已主要表示为机器人臂1的关节,但是对诸如图8所示的滑动关节,同样,可以执行与上面描述相似的测量和关节控制,并且因此,可以预期与上面所述相似的效果。另外,尽管电机和减速器已经表示为机器人臂1的关节的驱动单元n230的示例,在驱动单元包括例如液压驱动致动器的情况下,同样,可以执行与上面所述相似的测量和关节控制,并且因此,可以预期与上述相似的效果。另外,尽管约束部分n240已经使用交叉滚子轴承241构造,在约束部分使用各种滚子轴承和作为其替代的线性驱动轴承中的任意一种构造的情况下,同样,可以执行与上面所述相似的测量和关节控制,并且因此,可以预期与上面所述相似的效果。
图3至图5中表示的机器人控制设备2的控制可以通过例如CPU(中央处理单元)执行。因此,该控制还可以通过向机器人控制设备2提供具有记录在其中的程序的记录介质并且使得包括在机器人控制设备2中的计算机(CPU或者MPU)读取并执行存储在记录介质中的程序来执行,其中,该程序提供上面所述的功能。在这种情况下,从记录介质读取的程序本身提供上面所述实施例中的每个实施例的功能,因此,程序本身和具有记录在其中的程序的记录介质包括在本发明中。
另外,作为具有记录在其中的程序(该程序提供本发明)的计算机可读记录介质的示例,例如已经示出了诸如HDD存储设备300。然而,作为具有记录在其中的程序(该程序提供本发明)的计算机可读记录介质,可以使用任意记录介质,无论存储(记录)介质是固定型还是可移除型。提供本发明的程序可以记录在任意类型的记录介质中,只要记录介质是计算机可读记录介质。对于这种类型的记录介质,例如,可以使用ROM(其可以是例如EEPROM或者闪存存储器)、软盘、硬盘、光盘、磁光盘、CD-ROM、CD-R、磁带或者非易失性存储卡。另外,根据本实施例的程序可以通过计算机由于例如经由网络下载程序以及将程序复制到RAM上或者将程序写到EEPROM上而执行。.
另外,本发明不局限于根据本实施例的功能通过执行由计算机读取的程序代码提供的情况。本发明包括例如在计算机上运行的OS(操作系统)基于根据程序代码的指令执行实际处理的一部分或全部的情况,并且根据上面所述实施例的功能通过该处理提供。
另外,从记录介质读取的程序代码可以被写入插在计算机或者存储器中的功能扩展板中,所述功能扩展板包括在连接至计算机的功能扩展单元中。本发明包括这样的情况,其中,例如,包括在功能扩展板或者功能扩展单元中的CPU基于根据程序代码的指令执行实际处理的一部分或全部,并且根据本实施例的功能通过该处理提供。
其它实施例
本发明的实施例还可以通过系统或设备的计算机以及通过由系统或设备的计算机执行的方法实现,所述系统或设备的计算机读取并且执行记载在存储介质(其还可更完全地称作非暂时性计算机可读存储介质)上的计算机可执行指令(例如一个或多个程序)以执行一个或多个上述实施例中的功能和/或所述系统或设备的计算机包括一个或者多个电路(例如专用集成电路(ASIC))以便执行一个或者多个上述实施例的功能,所述由系统或设备的计算机执行的方法通过由例如读取和执行来自所述存储介质的计算机可执行指令以执行一个或多个上述实施例的功能和/或通过控制一个或多个电路以执行一个或多个上述实施例的功能执行。计算机可以包括一个或多个处理器(例如,中央处理单元(CPU)、微处理单元(MPU))并且可以包括单独的计算机或者单独的处理器构成的网络以读取和执行计算机可执行指令。计算机可执行指令可以例如从网络或者存储介质提供至计算机。存储介质可以包括例如硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算机系统的存储、光盘(诸如压缩盘(CD)、数字多功能盘(DVD)或者蓝光光盘(BD)TM)、闪存存储装置、存储卡等中的一种或多种。
其它实施例
本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。
尽管已经参照示例性实施例描述了本发明,应理解,本发明不局限于所公开的示例性实施例。所附权利要求的范围应被赋予最宽的解释,以便包含所有的修改以及等同结构和功能。