六轴机器人的负载辨识方法及模块与流程

文档序号:12736963阅读:961来源:国知局
六轴机器人的负载辨识方法及模块与流程
本发明实施例涉及机器人控制
技术领域
,特别涉及六轴机器人的负载辨识方法及模块。
背景技术
:工业机器人已越来越多的应用在搬运码垛等工作场景,在拾取不同的物件时将导致机器人末端负载的变化,包括末端的质量、惯量等物理量。对于携带重负载的机器人而言,其负载与本体的质量比可达到1:1,这将会导致负载给机器人驱动带来极大的影响。对于伺服驱动而言,不同的负载将对应不同的惯量比、刚度等参数。若负载发生了改变,而实际控制参数不变,将会给机器人运动精度、速度等工作性能带来不利的影响,甚至引起机械振动。因此,提前对机器人进行负载辨识,便可以达到更好的控制效果与工作性能。而另一方面,在实际工作中,由于工具或负载的更换,其模型和参数也将改变,因此对机器人必须重新进行辨识。若仍进行包括机器人本体在内的全辨识,则需要消耗大量时间与精力,并且由于全辨识的工作范围大,机器人在加入未知负载后仍运行相同的激励轨迹,极易造成碰撞等意外情况的发生。因此需要针对未知负载进行辨识。现阶段常用的负载辨识方法有CAD模型法,基于机器人末端六维传感器的负载辨识法,以及静态的无传感器负载辨识等。在实现本发明过程中,发明人发现现有技术中至少存在如下问题:CAD模型方法,是指利用负载的CAD模型直接得出负载的相关物理量,包括质量,质心位置,惯量等数据。此种方法存在的缺陷有,一方面CAD模型是由计算机得到的理论数据,与实际负载必然存在一定的误差,在实际工作中,无法保证工作精度;另一方面,并不是所有的负载及工具皆可以得到其CAD原模型,除了自主设计的负载外,很难得到其他负载的CAD模型,因而对于大多数负载来说,这种方法并不适用。论文《机器人末端臂惯性参数辨识的人工神经网络方法》(陈恩伟,刘正士,干方建著,中国机械工程第17卷第3期2006年2月上半月),提出了一种基于六维传感器的负载辨识方法。该方法需要在机器人末端安装一个六维的力传感器,检测末端受力情况,之后再通过神经网络的方式辨识出负载的物理特性。该方法虽然可以辨识出负载的物理量,但其一是依赖外加的力传感器,成本过高;另一方面运用神经网络方法,计算量增加,运算效率极低,对控制器硬件的要求也更高,因而不具备实际生产使用的推广性。论文《无传感器的工业机器人负载识别方法》(陈友东,季旭东,谷平平,胡国栋,北京航空航天大学学报,2015年9月)提出一种从末端力与各关节力矩的关系推导出负载物理量的方法。该方法虽然不需要外加传感器,但是其最终只能辨识出负载的质量大小,而负载的质心位置,惯量的信息均无法辨识。此外,这一方法的前提是在机器人在匀速运动或者静止状态下才能得出结果,并不适用于多数的工业机器人的要求。技术实现要素:本发明实施方式的目的在于提供一种六轴机器人的负载辨识方法及模块,通过运行一段的激励轨迹,并根据采集的六轴机器人的参数运行值对机器人负载的惯性参数进行辨识,而无需外加力传感器;不仅降低了运算成本,且提高了运算的效率。为解决上述技术问题,本发明的实施方式提供了一种六轴机器人的负载辨识方法,包括:根据预设的各关节的参数限制值生成所述六轴机器人的激励轨迹;在控制携带负载的所述六轴机器人按照所述激励轨迹运行的过程中,采集所述各关节的参数运行值;所述各关节的参数运行值包括所述各关节的力矩运行值;根据所述各关节的参数运行值与预设的机器人动力学模型,计算所述各关节的力矩预测值;计算所述力矩运行值与所述力矩预测值之差作为所述负载产生的力矩,并根据负载产生力矩与负载惯性参数的预设关系,计算所述负载的负载惯性参数。本发明的实施方式还提供了一种六轴机器人的负载辨识模块,包括:激励轨迹生产单元,用于根据预设的各关节的参数限制值生成所述六轴机器人的激励轨迹;运行控制单元,用于控制携带负载的所述六轴机器人按照所述激励轨迹运行;参数运行值采集单元,用于在携带负载的所述六轴机器人按照所述激励轨迹运行的过程中,采集所述各关节的参数运行值;力矩预测值计算单元,用于根据所述各关节的参数运行值与预设的机器人动力学模型,计算所述各关节的力矩预测值;以及负载惯性参数计算单元,用于计算所述力矩运行值与所述力矩预测值之差作为所述负载产生的力矩,并根据负载产生力矩与负载惯性参数的预设关系,计算所述负载的负载惯性参数。本发明实施方式相对于现有技术而言,通过运行一段的激励轨迹,并根据采集的六轴机器人的参数运行值对机器人负载的惯性参数进行辨识,无需额外的六维力传感器,这样可以降低生产成本,而且无需再对传感器进行调试等工作,使得六轴机器人的安装调试更为容易。通过对六轴机器人进行动力学模型分析与转换,采用特点辨识方法对机器人负载的惯性参数进行辨识,从而可以完善六轴机器人的动力学模型,提供更准确的预测力矩,有助于提升机器人的工作精度与控制性能,有效的降低由于负载变化而导致的误差产生。另外,在采集参数各关节的运行值时不需要机器人停机,可以实现在线采集,简单方便。综上所述,本发明实施相对于现有技术可以实现在线采集六轴机器人的参数运行值,并根据该参数运行值采用特点辨识方法对机器人负载的惯性参数进行辨识,而无需外加力传感器,不仅降低了运算成本,且提高了运算的效率。另外,在所述根据各关节的参数运行值与预设的机器人动力学模型,计算所述各关节的力矩预测值中,具体包括:对所述各关节的参数运行值进行滤波处理;将滤波处理后的所述各关节的参数运行值代入所述机器人动力学模型,计算所述各关节的力矩预测值。通过对各关节的参数运行值进行滤波处理,可以对采集的各关节的参数运行值进行去噪,使得根据该参数运行值与预设的机器人动力学模型计算得到的各关节的力矩预测值更加准确。另外,在所述根据各关节的参数运行值与预设的机器人动力学模型,计算所述各关节的力矩预测值之前,还包括:若判断出未预存所述机器人动力学模型,则对所述六轴机器人进行全辨识以建立所述机器人动力学模型。这样可以确保在计算各关节的力矩预测值之前都储存有机器人动力学模型,方便进一步计算各关节的力矩预测值。另外,在所述根据各关节的参数限制值生成所述六轴机器人的激励轨迹中,所述激励轨迹为所述六轴机器人的后四轴的激励轨迹。这样只需要后四轴运动而无需六轴全动,即减少机器人进行辨识所需的工作空间,使负载辨识更为安全,精确度也更高。另外,所述负载产生力矩与负载惯性参数的预设关系为线性关系。采用线性辨识方法对负载进行全辨识,既可以辨识出负载的全部惯性参数,又无需复杂的非线性辨识方法,减少运算量,提高了运算速度。另外,所述各关节的参数限制值包括所述各关节的位置限制值、速度限制值以及加速度限制值。这样在控制机器人按照根据这些各关节的参数限制值生成的激励轨迹进行运行时,可以防止机器人的各关节碰撞。附图说明一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。图1是根据本发明第一实施方式的六轴机器人的负载辨识方法流程图;图2是根据本发明第一实施方式中生成的一组最优激励轨迹的示意图图;图3是根据本发明第一实施方式中的六轴机器人的各轴的实际力矩与预测力矩的对比图;图4是根据本发明第二实施方式的六轴机器人的负载辨识模块结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。本发明的第一实施方式涉及一种六轴机器人的负载辨识方法,具体流程如图1所示。在步骤101中,判断是否预存有机器人动力学模型。若是则进入步骤103,否则进入步骤102。在步骤102中,对六轴机器人进行全辨识以建立机器人动力学模型。具体的说,本实施方式中的机器人动力学模型可以用以下公式来表示:τG=M(q)q··+C(q,q·)q·+g(q)]]>在步骤103中,根据预设的各关节的参数限制值生成六轴机器人的激励轨迹。具体的说,各关节的参数限制值包括各关节的位置限制值、速度限制值以及加速度限制值,这些参数限制值可以根据机器人配置信息或者操作者基于机器人的具体工作环境手动设置的限制值。本实施方式中可以将各关节的参数限制值代入遗传算法,生成六轴机器人的最优激励轨迹。遗传算法的具体说明如下:各关节的激励轨迹可以用有穷的傅里叶级数来描述,一个n自由度机器人的第i个关节的角位移qi,角速度以及角加速度的轨迹可用以下形式表示:qi=qi0+Σl=1Nalisin(ωflt)-Σl=1Nblicos(ωflt)]]>q·i=Σl=1Naliωflcos(ωflt)+Σl=1Nbliωflsin(ωflt)]]>q··i=-Σl=1Nali(ωfl)2sin(ωflt)+Σl=1Nbli(ωfl)2cos(ωflt)]]>这些傅里叶级数周期均为T=1/f,每个傅里叶级数包含2个从参数,a和b共同限制了级数的幅值。轨迹函数选择傅里叶级数具有以下优点:1、采用周期函数,可以连续重复辨识试验,通过对测量的时域数据进行平均化处理提高试验数据的信噪比。2、可以通过设置频率范围来避免机器人的柔性效应。3、可以通过解析的方法从测量出的响应数据中直接计算出关节的速度和速度,计算量小,能事先更快速的参数辨识。对于一个n阶非奇异矩阵A,它的条件数定义为:cond(A)=||A-1||||A||对于激励轨迹,令A条件数越小,则激励效果越好,若A条件数等于1,则为最佳。当条件数为1时生成一组最优的激励轨迹,其曲线如图2所示:由于实际工作中,还需考虑机器人工作的位置,速度及加速度限制,所以运用Matlab遗传算法工具箱来求解最优解。由于该激励曲线只需要后四轴运动,故将前两轴的速度及加速度设为0,之后再对后四轴进行轨迹优化。因此,本实施方式中的激励轨迹可以为该六轴机器人的后四轴的激励轨迹。需要说明的是,本实施方式中可以使用遗传算法计算最优激励轨迹,然而实际应用中也可以使用现有的其他算法计算激励轨迹,在本实施方式中对最优激励轨迹的计算方法不做限定。在步骤104中,控制携带负载的六轴机器人按照该激励轨迹运行。具体的说,可以通过六轴机器人的运行控制单元控制六轴机器人带负载运行。在步骤105中,采集各关节的参数运行值。各关节的参数运行值包括各关节的力矩运行值以及各关节的位置运行值、速度运行值和加速度运行值。具体的说,该参数运行值为六轴机器人带负载运行时的各关节的运行值。在步骤106中,根据各关节的参数运行值与预设的机器人动力学模型计算各关节的力矩预测值。具体的说,在本步骤中,可以先对各关节的参数运行值进行滤波处理;再将滤波处理后的各关节的参数运行值代入所述机器人动力学模型,计算各关节的力矩预测值。本实施方式中的各关节的力矩预测值为机器人各关节在未带负载情况下的力矩值。在步骤107中,计算力矩运行值与力矩预测值之差作为负载产生的力矩。在步骤108中,根据负载产生力矩与负载惯性参数的预设关系计算负载的负载惯性参数。具体的说,负载产生力矩与负载惯性参数的预设关系为线性关系。可以由下面的函数式表示:τpayload=Φ(q,q·,q··)θ;]]>其中,τpayload表示负载产生力矩,θ表示负载惯性参数,Φ为与各关节的参数运行值有关的常数,q,分别为各关节的位置运行值、速度运行值以及加速度运行值。机器人负载产生的关节力矩与负载惯性参数的线性表达关系的推导过程如下:对于一个无负载的机器手臂,其动力学模型由牛顿欧拉或者拉格朗日方法可得:τG=M(q)q··+C(q,q·)q·+g(q)]]>而当加入负载后,负载将会对机器人末端施加一个额外的力,这也将导致一个机器人每一个轴受到一个额外力矩τpayload。由牛顿欧拉建立的动力学模型可以发现,在加了负载之后,由机器人本体所产生的力矩仅与机器人本体参数以及运动的速度参数有关,而与负载无关。即负载对各轴产生的力矩与机器人连杆所产生的力矩互不影响,因而可将负载对各轴产生的额外力矩从总力矩中分离出。推导出由负载引起的额外力矩与负载参数的关系,则负载参数便可以被辨识出。若已知机器人末端所受的六维力矩信息,则由雅克比矩阵可以求得负载产生的力矩为:τpayload=JT(q)w其中w包括了一个三维的力信息以及一个三维的力矩量。综上,完整的含负载的机器人动力学模型为:τG=Mq··+Cq·+g+JT(q)w=τrobotlink+τpayload---(11)]]>该式表明了机器人连杆对各关节的力矩和负载所引起的力矩是分别独立的,即不存在耦合影响。这便为负载辨识提供了可能性,因为机器人本体的惯性参数并不随负载的改变而改变,因而τrobotlink可以在已知模型的基础上提前计算得到,即可将τpayload单独分离出来,其机器人本体也不必再进行一次辨识。在实际计算中,可以将负载产生的力矩τpayload、各关节的位置运行值q、速度运行值以及加速度运行值带入上述公式中,从而计算出常数Φ;然后运用最小二乘或改进的加权最小二乘法,推导出所需要的负载惯性系数θ。比如说,负载的十个惯性参数为:[mmrxmrymrzIxxIxyIxzIyyIyzIzz]中m是负载质量,c=[mrxmrymrz]为质量与质心位置的乘积,I是负载的惯量。利用牛顿欧拉公式,可以推导得出各关节的受力信息,其中末关节所受的六维力矩表达式为:fee=mv·ee+ω·ee×s+ωee×(ωee×s)]]>tee=c×v·ee+IRω·ee+ωee×(IR×ωee)]]>由上式可知,机器人末端受力及力矩是关于负载的惯性参数的线性函数,为提取出惯性系数,进行如下替换:ω×c=0-ωzωyωz0-ωx-ωyωx0cxcycz=Δ[ω×]c]]>Iω=ωxωyωz0000ωx0ωyωz000ωx0ωyωzIxxIxyIxzIyyIyzIzz=Δ[.ω]IxxIxyIxzIyyIyzIzz]]>之后,机器人末端受力与力矩的方程便可转化为关于负载惯性参数的线性方程,如下所示:feetee=v·ee[ω·ee×]+[ωi×][ωi×]00-v·ee[.ω·i]+[ωi×][.ωi]mmrxmrymrzIxxIxyIxzIyyIyzIzz]]>即w=Aθ,其中w是末端所受的六维力,A是系数矩阵,θ是惯性参数集。由之前推导可知,负载对各个轴驱动力矩的影响可由雅克比矩阵变换得出,其以末端关节为参考坐标系的雅克比矩阵可求得为:Jli=(p×n)z(p×o)z(p×a)z,Jai=nzozaz]]>其中Jli为第i列前3行,Jai为第i列后三行。可见雅克比矩阵仅与角度及DH参数相关,与负载惯性参数无关。综上所述,负载待辨识模型化为:τG=τrobotlink+JTAθ=τrobotlink+Φ(q,q·,q··)θ]]>其中Φ是与负载惯性参数无关的系数项。为了使参数辨识有唯一解,其雅克比矩阵必须满秩。由雅克比矩阵的组成可知,若仅有后三轴运动,则此矩阵不满秩,因而无法得出唯一解,而只要后四轴运动,则雅克比矩阵便可满秩,故可得出唯一解。所以若想得出唯一的负载参数值,只需其3到6轴运动,即可辨识出机器人全部负载参数。若只有4到6轴运动,则此矩阵并不满秩,具体表现为负载的质量项将无法辨识出。由此可见,步骤103中,只需生成后四轴的激励轨迹即可。对于带负载的机器人而言,其关节的总驱动力矩是由其机器连杆本身所产生的关节力矩τrobotlink与负载所导致的关节力矩τpayload合成而成。由式(11)可知,其本体所产生的力矩与负载参数无关,而本体的参数可以通过CAD模型或者提前进行的机器人本体辨识获得,所以可以在对机器人本体的力矩进行补偿之后,对负载运用线性系统辨识方法单独辨识。此方法前提是已经获得关于机器人本体的参数,可以是由CAD获得也可以是通过系统辨识所获得,模型越精确则最终辨识结果越好。其原理是给定一条激励轨迹,由于机器人本体参数已知,故可以在后台计算出在激励轨迹下,各个轴由无负载本体所引起的关节力矩大小τrobotlink。在带负载实验后,可以得出实际的关节驱动力矩τG,由前面所述已知单独由负载所引起的关节力矩大小:τpayload=τG-τrobotlink=Φ(q,q·,q··)θ---(12)]]>可知,该辨识为线性系统辨识,故传统方法为,使用最小二乘法进行参数辨识,具体步骤如下。在给定激励轨迹及采样周期后,令机器人运行一定的周期,采集各轴的关节力矩,位置,速度,加速度等数据,代入式(12),可得Φ(q1,q·1,q··1)...Φ(qM,q·M,q··M)θ=τ1...τM---(13)]]>采用最小二乘法,则负载惯性参数项可得为:θ^=(ΦTΦ)-1ΦTτ]]>虽然用最小二乘法可以对线性系统进行辨识,但在存在非白噪声的干扰情况下,使用传统的最小二乘法便可能导致误差的产生。因此考虑到实际情况中的噪声干扰,提出另一种改进的加权最小二乘法,从而可以在存在异方差的噪声情况下,更好的辨识出负载的参数。由模型可知,负载产生的额外关节力矩为:τpayload=Φ(q,q·,q··)θ+ϵ]]>其中ε为噪声干扰量,则由加权最小二乘法可得待辨识参数的表达式为:θ^=(ΦTΣ-1Φ)-1ΦTΣ-1τ=(Σ-0.5Φ)+Σ-0.5τ]]>其中Σ为对角线是采集噪声标准差的对角矩阵。由上述方法,负载的10个惯性参数便可被辨识出来。为了验证本实施方式中的负载辨识结果的准确性,我们采集了十个惯性参数的实际值,在带负载情况下,其实际的十个惯性参数与通过该方法辨识所得的辨识值表1所示:表1:十个惯性参数的实际值与辨识值Mm*rxm*rym*rzIxxIxyIxzIyyIyzIzz实际值6.0580-0.3219-0.32190.33720.0472-0.01500.01610.04720.01610.0463辨识值6.0580-0.9174-0.41010.42110.0564-0.01970.0236-0.09870.0210-0.0998由上表可知,负载辨识结果与实际值相比误差很小,质量项几乎没有误差,由于惯量值较小,因而误差是在允许范围之内。设定另一条不同于激励轨迹的验证轨迹,将辨识得出的负载值代入机器人动力学模型,对比实际的各轴力矩与通过模型计算得出的预测力矩,结果如图3所示。由图3可知,各关节预测力矩与实际力矩可以完全吻合,该结果表明辨识出的负载参数可以有效的完善机器人动力学模型,在变负载的情况下,通过该负载辨识的方法,可以得到更贴近实际的机器人模型,从而优化改善机器人动力学的控制性能,使机器人能有更灵活的工作性能。本实施方式相对于现有技术而言,通过运行一段的激励轨迹,并根据采集的六轴机器人的参数运行值对机器人负载的惯性参数进行辨识,无需额外的六维力传感器,这样可以降低生产成本,而且无需再对传感器进行调试等工作,使得六轴机器人的安装调试更为容易。通过对六轴机器人进行动力学模型分析与转换,采用线性辨识方法对机器人负载的惯性参数进行辨识,既可以辨识出负载的全部惯性参数,又无需复杂的非线性辨识方法,减少运算量,提高了运算速度,使动力学模型可以更为精确。而且无需对机器人进行整体的重新辨识,只需要后4轴运动而无需6轴全动,即减少机器人进行辨识所需的工作空间,使负载辨识更为安全,精确度也更高,从而可以完善六轴机器人的动力学模型,提供更准确的预测力矩,有助于提升机器人的工作精度与控制性能,有效的降低由于负载变化而导致的误差产生。另外,在采集参数各关节的运行值时不需要机器人停机,可以实现在线采集,简单方便。本发明的第二实施方式涉及一种六轴机器人的负载辨识模块,如图4所示,包括:激励轨迹生产单元1、运行控制单元2、参数运行值采集单元3、力矩预测值计算单元4以及负载惯性参数计算单元5。激励轨迹生产单元1,用于根据预设的各关节的参数限制值生成六轴机器人的激励轨迹;运行控制单元2,用于控制携带负载的六轴机器人按照激励轨迹运行;参数运行值采集单元3,用于在运行控制单元2控制携带负载的六轴机器人按照激励轨迹运行的过程中,采集各关节的参数运行值;力矩预测值计算单元4,用于根据各关节的参数运行值与预设的机器人动力学模型,计算各关节的力矩预测值;负载惯性参数计算单元5,用于计算力矩运行值与力矩预测值之差作为负载产生的力矩,并根据负载产生力矩与负载惯性参数的预设关系,计算负载的负载惯性参数。在本实施方式中,力矩预测值计算单元4包括:滤波子单元41和计算子单元42。滤波子单元41,用于对各关节的参数运行值进行滤波处理;计算子单元42,用于将滤波处理后的各关节的参数运行值代入机器人动力学模型,计算各关节的力矩预测值。在实际应用中,本实施方式中的,六轴机器人的负载辨识模块还包含动力学模型获取单元6与存储单元7。其中,存储单元7可以用来存储机器人动力学模型、各关节的参数限制值、参数运行值采集单元3采集的各关节的参数运行值以及负载惯性参数计算单元5计算出的负载惯性参数。动力学模型获取单元6,用于判断存储单元7中是否预存有机器人动力学模型;若未预存,则对六轴机器人进行全辨识以建立机器人动力学模型。不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1