本发明涉及机器人动力学模型领域,尤其涉及一种机器人动力学模型辨识方法。
背景技术:
动力学模型在控制器设计、包含关节力/力矩约束的运动规划、离线仿真以及干扰观测器的设计有着广泛的应用。因此如何准确地辨识出动力学模型具有十分重要的意义。
机器人动力学模型辨识的理论基础成熟于20世纪80年代,其中最重要的理论基础是机器人动力学模型关于其惯性参数呈线性关系,从而可以用最小二乘法来辨识模型参数。对此,khalil等人在“modeling,identificationandcontrolofrobots”有详细阐述。
摩擦力模型在机器人动力学模型辨识过程中尤为重要。一方面,摩擦力在驱动力中占有很大比重;另一方面,模型非线性主要集中在摩擦力模型上。因此,选择一个合适的摩擦力模型对机器人动力学模型辨识精度至关重要。目前广泛采用的摩擦力模型为库伦摩擦加粘滞摩擦,但是采用该摩擦力模型辨识出的机器人动力学模型参数的精度并不高。
由于机器人动力学模型关于其惯性参数是线性的,人们习惯性的采用最小二乘法或加权最小二乘法,但是最小二乘或加权最小二乘法对异常值(不符合模型的数据点)非常敏感,常常导致不同数据集辨识出的机器人动力学模型参数的一致性非常差。
因此,本领域的技术人员致力于开发一种机器人动力学模型辨识方法,该方法不仅具有对机器人动力学模型参数辨识精度高、一致性好的特点,还可以通过离线的方式准确地、鲁棒地辨识出动力学模型参数。
技术实现要素:
有鉴于现有技术的上述缺陷,本发明所要解决的是现有技术对机器人动力学模型参数辨识精度不高、一致性差的问题。
为实现上述目的,本发明提供了一种机器人动力学模型辨识方法,包括以下步骤:
步骤一,准备数据,采集各个关节的转矩指令和关节编码器反馈位置,并用零相位延迟滤波器对反馈位置信号进行滤波并通过数值微分得到各个所述关节的速度和加速度;
步骤二,初始化各个所述关节的摩擦力模型参数α,所述α均初始化为1;
步骤三,初始化irls(迭代加权最小二乘法)权重,所有数据点的权重均设置为1;
步骤四,计算各个数据点的观测矩阵y和各个数据点的各个关节的转矩矩阵t;
步骤五,初始化模型误差的协方差矩阵ω为单位阵;
步骤六,计算所述y的标准化矩阵y*;计算所述t的标准化矩阵t*;
步骤七,计算动力学模型参数π;
步骤八,计算标准化残差r*及其重排e*;
步骤九,更新所述ω;
步骤十,判断所述ω是否收敛,如果收敛则转到步骤十一,否则转到所述步骤六;
步骤十一,计算残差r及其重排e;
步骤十二,残差分析;
步骤十三,更新所述irls权重;
步骤十四,判断更新后的所述irls权重的数据集是否有异常值,如果有则转到所述步骤四,否则转到步骤十五;
步骤十五,估计摩擦力;
步骤十六,拟合所述步骤十五中估计的所述摩擦力,更新所述α;
步骤十七,判断摩擦力模型参数是否收敛,如果收敛则转到步骤十八,否则转到所述步骤三;
步骤十八,模型验证。
进一步地,所述步骤四中计算所述y与所述t的公式如下:
式中,yi为第i个数据点的观测矩阵,τi为第i个数据点的各关节转矩。
进一步地,所述步骤六中计算所述y*的公式如下:
所述步骤六中计算所述t*的公式如下:
进一步地,所述步骤七中计算所述π的公式如下:
π=(y*t·y*)-1·y*t·t*。
进一步地,所述步骤八中计算所述r*和所述e*的公式如下:
r*=t*-y*·π。
进一步地,所述步骤九中更新所述ω的公式如下:
式中,m表示数据点个数,p表示待辨识参数的个数。
进一步地,所述步骤十一中计算所述r和所述e的公式如下:
r=t-y·π。
进一步地,所述步骤十三中还包括,将满足以下条件的数据点舍弃:
式中,
进一步地,所述步骤十五中计算所述摩擦力的公式如下:
式中,πi为动力学模型的惯性参数。
进一步地,所述步骤十六中拟合所述步骤十五中估计的所述摩擦力的公式如下:
式中,fc为库仑摩擦,fv为粘滞摩擦系数,
与现有技术相比,本发明至少具有如下有益技术效果:
1、本发明所提出的机器人动力学模型辨识方法,从统计学角度分析参数辨识问题,采用了迭代加权最小二乘法剔除异常点,采用新摩擦力模型提高辨识精度,具有对机器人动力学模型参数识别的精度更高、一致性更好的优点;
2、本发明所提出的机器人动力学模型辨识方法,可以通过离线的方式准确地、鲁棒地辨识出动力学模型参数。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明一个较佳实施例的流程图;
图2到图7是本发明一个较佳实施例的模型误差的自相关分析图;
图8到图13是本发明一个较佳实施例的模型误差的正态分布验证图;
图14到图19是本发明的一个较佳实施例的摩擦力拟合图;
图20到图25是本发明的一个较佳实施例的模型验证图。
具体实施方式
以下结合附图对本发明的方法进一步描述,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本实施例的机器人是型号为a-05-2的富士康机器人,其六个关节均为旋转关节,实施例所用的控制器是dspace公司的microlabbox,如图1所示,本实施例包括以下步骤:
步骤一,准备数据,采集各个关节的转矩指令和关节编码器反馈位置;让机器人跟踪事先优化好的激励曲线,同时记录关节转矩指令和编码器反馈位置,然后用零相位延迟的巴特沃斯滤波器和中值差分滤波器对反馈位置进行滤波和差分得到关节速度和关节加速度,可以得到共20000个数据点;
步骤二,将各关节的摩擦力模型参数α初始化为1;
步骤三,将各数据点的irls权重均初始化为1,即所有数据点都有效;
步骤四,按以下公式计算各个数据点的观测矩阵y和各个数据点的各个关节的转矩矩阵t:
式中,yi为第i个数据点的观测矩阵,τi为第i个数据点的各关节转矩;
在第一次迭代过程中,y是大小为120000行58列的矩阵,t是大小为120000行的向量;
步骤五,初始化模型误差的协方差矩阵ω为单位阵,其大小为6行6列的矩阵;
步骤六,按以下公式计算y的标准化矩阵y*和t的标准化矩阵t*:
类似步骤四,在第一次迭代过程中,所述y*是大小为120000行58列的矩阵,所述t*是大小为120000行的向量;
步骤七,通过以下公式计算动力学模型参数π,所述π为58行1列的向量:
π=(y*t·y*)-1·y*t·t*;
步骤八,通过以下公式计算标准化残差r*及其重排e*,在第一次迭代过程中,r*大小为120000行1列的向量,e*大小为6行20000列的矩阵:
r*=t*-y*·π;
步骤九,通过以下公式更新协方差矩阵ω,式中,m表示数据点个数,p表示待辨识参数的个数,在第一次迭代过程中,m为20000,p为58:
步骤十,判断ω是否收敛,如果收敛则转到步骤十一,否则转到步骤六;
步骤十一,通过以下公式计算所述r及所述e,在第一次迭代过程中,r大小为120000行1列的向量,e大小为6行20000列的矩阵:
r=t-y·π;
步骤十二,残差分析,如图2至图7所示,一个较佳实施例的六个轴模型误差的自相关分析图,如图8至图13所示,一个较佳实施例的模型误差的正态分布验证图;
步骤十三,更新irls权重,满足以下条件的数据点将被丢掉:
式中,
步骤十四,判断更新irls权重后的数据集是否有异常值,有则转到步骤四,否则转到步骤十五;
步骤十五,根据以下公式估计摩擦力,式中为πi动力学模型的惯性参数:
步骤十六,用以下公式拟合步骤十五中估计的摩擦力,更新非线性摩擦力模型参数α,如图14至图19显示了实施例所用机器人的六个轴的摩擦力拟合图:
式中,fc为库仑摩擦,fv为粘滞摩擦系数,
步骤十七,判断摩擦力模型参数是否收敛,是则转到步骤十八,否则转到步骤三;
步骤十八,模型验证,如图20至图25显示了实施例所用机器人的模型验证图。
通过本实施例,充分说明本发明所公开的机器人动力学模型辨识方法,可以快速高效并且以良好的辨识精度辨识出机器人动力学模型,为前馈控制器设计、动力学仿真、运动规划和干扰观测器设计等奠定了基础。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。