一种串联机器人动力学参数辨识方法
技术领域
本发明属于机器人技术领域,具体涉及一种串联机器人动力学参数辨识方法。
背景技术
六轴工业机器人和协作机器人大多采用串联构型,随着工业自动化的深入发展和人机协作概念的兴起,这类机器人的应用在继续拓展。拓展的应用对机器人的控制性能也提出了更高的要求。机器人的运动规律由一组动力学方程描述,方程中出现的参数称为动力学参数。动力学方程是实现机器人复杂精确控制的理论基础,也是提升机器人性能必须深入研究的,因而准确获取机器人动力学参数具有重要意义。
动力学参数包含惯性参数和摩擦力参数两类。惯性参数表示的是机器人各个杆件的质量及其分布,摩擦力参数的定义则需要确定一个合理的摩擦力模型。
由机器人本体三维模型可以计算惯性参数,但由于加工误差,装配等因素,计算的惯性参数可能存在较大偏差。设计试验辨识机器人动力学参数是行之有效的办法。在现有软硬件基础上,控制机器人按预定轨迹运动,采集关节位置、电机电流等数据,由采集的数据反求动力学参数是通用可行的方法。通常的做法是先确定摩擦力模型,设计试验同时辨识所有惯性参数和摩擦力参数。
但这会带来问题。其一,对于同样一组数据,采用不同的摩擦力模型将辨识出不同的惯性参数,惯性参数与摩擦力参数之间关联性强,不能进行单独处理。其二,现有技术的方法,若要保证待辨识参数一定程度的激励,则需要优化的变量过多,很难进行试验优化设计。
发明内容
本发明所要解决的技术问题在于如此实现摩擦力辨识与惯性参数辨识相互独立,既保证了惯性参数辨识的准确度,也有利于确定合理的摩擦力模型,同时控制了试验优化设计的变量规模。
本发明通过以下技术手段实现解决上述技术问题的:一种串联机器人动力学参数辨识方法,其特征在于,包括以下步骤:
步骤一、建立串联机器人运动学模型;
步骤二、根据步骤一的串联机器人运动学模型,确定串联机器人最小惯性参数集φ并建立关于φ线性形式的动力学方程;
步骤三、从φ的最后一组分量开始,设计试验逆序辨识φ的每组分量;设计多对运动状态,控制机器人到达每对状态,采集关节驱动力数据;
步骤四、分离每对状态下关节驱动力的摩擦项和惯性项,由惯性项辨识φ分量;
步骤五、待完成φ所有分量的辨识后,汇集摩擦项数据,形成摩擦力辨识数据,结合摩擦力模型,进行摩擦力参数辨识。
优选地,所述步骤一建立串联机器人运动学模型包括以下步骤:串联机器人由n个活动连杆通过n个关节顺序连接,运动学模型由n组DH参数描述;通过DH参数确定各个连杆的坐标系及相邻连杆坐标系之间的变换。
优选地,所述步骤二中依据能量等效原理确定最小惯性参数集φ=(φ1,φ2,…,φi,…,φn)T,φ包含n组分量;第i组分量φi包含ci个参数,φi的物理意义为连杆i的等效惯性参数;连杆i包含10个惯性参数:1个质量参数mi,3个一阶矩参数(mxi,myi,mzi),6个二阶矩参数(Ixxi,Ixyi,Ixzi,Iyyi,Iyzi,Izzi),φi的每个参数都是连杆i~n惯性参数的线性组合。
优选地,所述步骤二中依据Newton-Euler方程,先建立不考虑摩擦情况下的关于φ的线性形式的动力学方程:
式中q=(q1,q2,…,qn)T、和分别为关节位置、速度和加速度向量,其中分别为第i关节的位置、速度和加速度。任意时刻关节位置、速度和加速度的组合表示完全描述了此刻机器人的运动状态;为不考虑摩擦的情况下,相应的关节驱动力,称为惯性项;同样依据Newton-Euler方程,惯性项满足:
即关节位置、关节加速度不变,关节速度取反,惯性项保持不变。
式(1)中为系数矩阵,形式如下:
其中分块矩阵Kij维数为1×ci,i>j有Kij=0,i≤j有Kij与前j个关节的运动状态有关,引入记号qr:s=(qr,qr+1,…,qs)T,相应地, 则由式(1)和式(3),第i关节驱动力的惯性项表达式为:
拆分为两项:
则
再考虑摩擦,动力学方程为:
为运动状态对应的关节驱动力,为惯性项,为摩擦项,具体表达式依赖于摩擦力模型。机器人关节多采用电机连接谐波/行星减速机来实现,结构上具有对称性,因此:
即关节位置、关节加速度不变,关节速度取反,则摩擦项相反。
优选地,步骤三中从φn开始,逆序辨识φ各组分量;辨识φ第i组分量φi时,为辨识φi的所有ci个参数,首先采用优化方法计算ci个运动状态;记第k个运动状态为k=1~ci;将拆分为两部分:和即前i个关节的运动状态和后(n-i)个关节的运动状态,分别对这两部分进行计算;
a.计算方法如下:
组合ci个为方阵
求解极值问题:
式中κ(Ci)为方阵Ci的条件数,作为目标函数;为待求变量;为1~i关节位置、速度和加速度的最小和最大取值,是已知量,它们限定了变量的取值范围;使用数值优化算法求解以上极值,得到
b.计算方法如下:
辨识φi时,φi+1~φn为已知量,将已计算出的及φi+1~φn代入式(4),则只与相关,求解极值问题:
使用数值优化算法进行求解,得到从而最终计算得到ci个运动状态
以上公开的“优化算法”为现有技术,也称为“数学规划”、“最优化方法”,本质上就是对实际问题建立数学模型,然后抽象为求函数极值的问题,再调用数值优化方法求解极值问题。求解以上极值问题(7)、(8),适合使用约束全局最优化数值算法可以为模拟退火算法,其他现有技术如差分进化等算法也应该在本发明的保护范围内。
对每个运动状态它的负状态为设计试验,控制机器人分别到达这一对状态,即和并采集两种状态下关节驱动力数据τ(k),τ(k-)。
优选地,所述步骤四中分离每对状态下关节驱动力的摩擦项和惯性项,由惯性项辨识φi分量包括以下步骤:由式(2)、式(5)和式(6)得到τ(k)的惯性项和摩擦项计算公式为
如此分离出正状态下关节驱动力的惯性项和摩擦项;取分离出的惯性项的第i分量计算
φi的计算公式为:
现有技术中存在多种指标去衡量参数的激励程度,式(7)采用矩阵的条件数作为指标,再结合式(8),使得待辨识参数φi获得激励,保证了按上式辨识φi的准确度。
优选地,步骤四中的摩擦力模型包括库仑摩擦模型或粘滞摩擦模型或二者的综合。
本发明的优点在于:本发明使用关于φ的线性形式的动力学方程,并按照逆序方式辨识φ的每组分量,控制了需要优化的变量规模,使得试验优化设计成为可能。采用本发明的方法,使得摩擦力辨识与惯性参数辨识相互独立,既保证了惯性参数辨识的准确度,也有利于确定合理的摩擦力模型。
附图说明
图1为本发明动力学参数辨识的流程示意图。
图2为本发明串联机器人的结构示意图。
串联机器人由n个活动连杆通过n个关节顺序连接,参见图2,1为起始第1关节,2为起始第1连杆,3、4分别为中间第i关节和第i连杆,5、6分别为中间第(i+1)关节和第(i+1)连杆,7为末端第n关节,8为末端第n连杆。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当元件被称为“固定于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。
本实施例公开一种串联机器人动力学参数辨识方法,包括以下步骤:
运动学模型由n组DH参数(αi,ai,di,θi)(i=1~n)描述,DH参数确定各个连杆的坐标系及相邻连杆坐标系之间的变换。连杆i包含10个惯性参数:1个质量参数mi,3个一阶矩参数(mxi,myi,mzi),6个二阶矩参数(Ixxi,Ixyi,Ixzi,Iyyi,Iyzi,Izzi)。组合这10个惯性参数为li=(mi,mxi,myi,mzi,Ixxi,Ixyi,Ixzi,Iyyi,Iyzi,Izzi)T。
依据能量等效原理确定最小惯性参数集φ,φ形式如下:
共包含n组分量,φi为第i组分量,物理意义为杆件i的等效惯性参数。式中Aij(j≥i)均为由运动学模型导出的常量矩阵。φi包含多个参数,每个参数都是连杆i~n惯性参数的线性组合,参数的数量也即φi的维数用ci表示,一般情形下ci=7,以φn为例,
φn=(myn,mzn,Ixyn,Ixzn,Iyyn-Ixxn,Iyzn,Izzn)T
对应于
不考虑摩擦力,依据Newton-Euler方程,建立出关于φ的线性形式的动力学方程:
式中分别为关节位置、速度和加速度;其中,q=(q1,q2,…,qn)T,qi(i=1~n)为第i关节的位置;任意时刻关节位置、速度和加速度的组合表示完全描述了此刻机器人的运动状态;为不考虑摩擦的情况下,相应的关节驱动力,称为惯性项;同样依据Newton-Euler方程,惯性项满足:
即关节位置、关节加速度不变,关节速度取反,惯性项保持不变。
式(1)中为系数矩阵,形式如下:
其中分块矩阵Kij维数为1×ci,引入记号qr:s=(qr,qr+1,…,qs)T,i>j有Kij=0,i≤j有Kij与前j个关节的运动状态有关,即由式(1)
和式(3),第i关节驱动力的惯性项表达式为:
拆分为两项:
则
再考虑摩擦,动力学方程为:
为运动状态对应的关节驱动力,为惯性项,为摩擦项,具体表达式依赖于摩擦力模型。机器人关节多采用电机连接谐波/行星减速机来实现,结构上具有对称性,因此:
即关节位置、关节加速度不变,关节速度取反,则摩擦项相反。
设计试验辨识φ第i组分量φi时,利用已辨识分量φi+1~φn及关于φ线性形式的动力学方程,使用优化方法计算运动状态,使得φi获得激励。
具体地,从φn开始,逆序辨识φ各组分量;辨识φ第i组分量φi时,为辨识φi的所有ci个参数,首先采用优化方法计算ci个运动状态;记第k个运动状态为将拆分为两部分:和即前i个关节的运动状态和后(n-i)个关节的运动状态,分别对这两部分进行计算;
a.计算方法如下:
组合ci个为方阵
求解极值问题:
式中κ(Ci)为方阵Ci的条件数,作为目标函数;为待求变量;为1~i关节位置、速度和加速度的最小和最大取值,是已知量,它们限定了变量的取值范围;使用数值优化算法求解以上极值,得到
b.计算方法如下:
辨识φi时,φi+1~φn为已知量,将已计算出的及φi+1~φn代入式(4),则只与相关,求解极值问题:
使用数值优化算法进行求解,得到从而最终计算得到ci个运动状态
以上公开的“优化算法”为现有技术,也称为“数学规划”、“最优化方法”,本质上就是对实际问题建立数学模型,然后抽象为求函数极值的问题,再调用数值优化方法求解极值问题。求解以上极值问题(7)、(8),适合使用约束全局最优化数值算法,可以采用模拟退火算法,其他现有技术如差分进化等算法也应该在本发明的保护范围内。
对每个运动状态它的负状态为设计试验,控制机器人分别到达这一对状态,即和并采集两种状态下关节驱动力数据τ(k),τ(k-)。
分离每对状态下关节驱动力的摩擦项和惯性项,由惯性项辨识φi分量包括以下步骤:由式(2)、式(5)和式(6)得到τ(k)的惯性项和摩擦项计算公式为
如此分离出正状态下关节驱动力的惯性项和摩擦项。取分离出的惯性项的第i分量计算
φi的计算公式为:
现有技术中存在多种指标去衡量参数的激励程度,式(7)采用矩阵的条件数作为指标,再结合式(8),使得待辨识参数φi获得激励,保证了按上式辨识φi的准确度。
φ所有分量辨识完成后,汇集摩擦项数据作为摩擦力辨识的输入数据。由于隔离了摩擦力辨识与惯性参数辨识,可以采用任意的摩擦力模型,但应该选用与当前数据最为相符的摩擦力模型。常用的摩擦力模型有:库仑摩擦模型粘滞摩擦模型以及二者的综合 kci,kvi为摩擦力模型参数。这三种模型形式简单,但忽略了关节约束力的影响。在积累了足够的摩擦力辨识数据后,可以采用更复杂的模型,以获得更精确的摩擦力辨识结果。
综上所述,本发明使用关于φ的线性形式的动力学方程,并按照逆序方式辨识φ的每组分量,控制了需要优化的变量规模,使得试验优化设计成为可能。另外,采用本发明的方法,使得摩擦力辨识与惯性参数辨识相互独立,既保证了惯性参数辨识的准确度,也有利于确定合理的摩擦力模型。
需要说明的是,在本文中,如若存在第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。