一种基于神经网络的6轴机器人动力学参数辨识方法与流程

文档序号:17740159发布日期:2019-05-22 03:45阅读:478来源:国知局
一种基于神经网络的6轴机器人动力学参数辨识方法与流程

本发明涉及了一种机器人动力学参数辨识的方法,尤其是涉及了一种基于神经网络的6轴机器人动力学参数辨识方法,涉及工业生产、物流运输等领域中广泛使用的串联工业机器人,准确的动力学参数是机器人高精度控制的基础。



背景技术:

机器人动力学是探讨机器人控制的基础,所以动力学参数辨识是机器人控制中非常关键的一项技术,工业机器人实现高精度控制,平滑运动轨迹都需要高精度的动力学参数。目前机器人动力学传参数辨识大多采用遗传算法来优化激励轨迹,用最小二乘法来进行动力学参数的迭代估计,动力学参数估计精度不高,导致工业机器人难以准确控制。



技术实现要素:

针对现有技术的不足,本发明公开了一种基于神经网络的6轴机器人动力学参数辨识方法,提高了动力学参数的估计精度,具有较高的容错性。

一种基于神经网络的6轴机器人动力学参数辨识的方法,包括以下几个步骤:

第一步动力学建模建立6轴机器人的d-h连杆坐标系,构建其动力学方程,因为后三轴主要影响机器人末端姿态,对关节力矩的影响小,故不予考虑,主要进行前三关节动力学参数的辨识。根据拉格朗日动力学方程,推导出机器人显性线性表达式,根据最小惯性原理将表达式简化成线性形式,给出需要辨识的动力学参数,观测矩阵。

第二步激励轨迹优化进行关节角度的傅里叶级数展开,为了得到边界连续,关节角速度,角加速度在周期起始等于0的傅里叶级数,需要对它进行优化(改进),以五次多项式来代替常数项,得到改进的傅里叶级数如下:

其中i为第i关节,wf为傅里叶级数的基频,aik,bik为傅里叶级数,为常数项系数,m为傅里叶级数的阶数。

以免疫克隆算法来优化得到傅里叶级数的系数,得到优化的激励轨迹;

第三步实验采样让机器人跟随激励轨迹运动,多个周期,不同时刻用光电编码器采集多组机器人的关节角度,得到多组关节力矩作为实验样本,同时得到电机反馈电流,根据转矩系数,求出电机输出力矩即为关节力矩;

第四步数据处理通过三标准差以及中位值平均滤波法对实验采集的数据进行数据预处理,来降低数据噪声对实验的影响;

第五步动力学参数估计根据实验得到的多组观测矩阵以及关节力矩,通过神经网络来辨识出动力学参数。

第六步参数验证给出一条不同于激励轨迹的可执行轨迹,机器人跟随轨迹运动,多个周期,不同时刻采集多组机器人的关节角度,电机反馈电流,根据所求的动力学参数得到理论的关节力矩与实验得到关节力矩做对比,用力矩残差根来评价动力学参数的可靠性。

进一步的,所述的免疫克隆算法优化傅里叶级数具体为改进后的激励轨迹每个关节有10个自由度,3个关节共计30个自由度系数,同时,机器人的关节位置,速度和加速度受到约束,采用免疫克隆选择算法,来获得优化结果,优化指标为观测矩阵的条件数最小,免疫克隆选择算法寻优步骤如下:

(1)首先对抗原进行识别,即对需要优化的问题进行分析,选出优化特征。针对需要优化的特征进行可行性分析,然后构造出它的亲和度函数,作为问题的评价指标,同时构造出问题的约束条件。本文中的优化问题为30个自由度系数,最小条件数作为其亲和度函数,机器人的关节运动范围,最大速度与最大加速度作为其约束条件。

(2)然后对抗体进行初始化。由于二进制编码的方式存在效率低与“汉明悬崖”的缺点,故初始解采用实数编码的方式。通过编码将问题的可行解转换成免疫克隆选择算法中的抗体,产生一组满足约束条件的随机初始解。

(3)对种群中的每一个抗体个体计算亲和度。通过计算个体的亲和度,以此来评价抗体的性能。

(4)对种群中的抗体根据亲和度大小进行排序,选择前50%的优良个体作为优良个体。

(5)对选中的优良个体进行克隆、变异和克隆抑制操作,删选得到同样数量的子代个体。

(6)随机生成与原种群数量相等的新生种群,计算其亲和度,并删选出前50%的优良子代。

(7)将(5)(6)生成的免疫种群与新生种群合并,取代原来的种群。

(8)判断得到的新种群是否满足算法的终止条件,终止条件为迭代次数超过200次,如果满足终止条件,则终止寻优过程,否则继续进行迭代寻优。

进一步的,所述的第四步具体为对采样得到的多组观测矩阵数据,先进行三标准差准则,除去粗大误差;之后再用中位值平均滤波法对实验数据进行处理,来降低数据噪声带来的影响。

进一步的,所述的第五步具体为将实验得到观测矩阵作为神经网络的输入,初始的权重设置为0-1的随机值,实验得到的关节力矩作为神经网络输出的标签,理论的关节力矩作为神经网络的输出。采用批量梯度下降优化算法来估计动力学参数,训练完的神经网络的权重即为待估计的动力学参数。

进一步的,所述的第一步中,对于n关节的机器人系统,考虑关节摩擦的影响,其动力学方程可以用二阶非线性微分方程来表示:

其中m(q)代表惯性矩阵,q为关节角度矢量;为关节角速度矢量;为关节角加速度矢量;为离心力和哥氏力矩阵;g(q)为机器人重力项;τ为控制力矢量。

可以将其动力学模型线性化简化:

其中w为机器人各关节变量组成的观测矩阵,为待辨识的动力学参数。

进一步的,所述的第三步中,将实验得到的关节角度,将其拟合成傅里叶级数,对其求微分得到关节角速度,再对求微分得到关节角加速度,组成多组观测矩阵作为实验样本。

本发明的优势和有益效果在于如下几点:

动力学参数辨识的传统方法有解体测量法,cad法,整体辨识法,本发明提出的方法属于整体辨识法的一种,相较于其他俩种方法,整体解析法是通过机器人实际运行得到的,更符合实际场景,辨识的结果与实际更加接近,而且不需要对机器人进行解体,方便安全。

目前的动力学参数辨识方法对数据处理大多采用均值化滤波方法,本发明提出以三标准差准则以及中位值平均滤波法对数据进行处理,除去因操作失误或不正确带来粗大误差,中位值平均滤波综合了两种滤波算法的优点,既能抑制随机干扰,又能滤除明显的脉冲干扰。对于激励轨迹大多采用遗传算法进行优化,容易陷入局部最优,计算比较复杂,本发明采用人工免疫算法能够有效避免局部最优的情况发生,算法的收敛速度较快。

目前的动力学参数辨识方法对动力学参数估计大多采用加权最小二乘迭代法,本发明提出以神经网络来估计动力学参数,神经网络有着较高的容错性与高速寻找优化解的能力,通过神经网络可以很快,很准确的估计机器人的动力学参数。

附图说明

图1是本发明中机器人动力学参数估计的流程框图;

图2是本发明中免疫克隆优化算法的流程图;

图3是本发明中免疫克隆算法优化效果的示意图;

图4是本发明中神经网络的结构的示意图;

图5是本发明的梯度下降优化算法的示意图;

图6是本发明的验证动力学参数可靠性的流程图。

具体实施方式

下面结合说明书附图,对本发明的技术方案作进一步说明。

选定合适的6轴机器人,得到机器人的d-h参数等信息。

d-h参数

alpha1=pi/2;a1=160;d1=0;theta1=q1;init_theta1=0

alpha2=0;a2=575;d2=0;theta2=q2;init_theta2=pi/2

alpha3=pi/2;a3=130;d3=644;theta3=q3;init_theta3=0

alpha4=-pi/2;a4=0;d4=0;theta4=q4;init_theta4=0

alpha5=pi/2;a5=0;d5=0;theta5=q5;init_theta5=-pi/2

alpha6=0;a6=0;d6=109.5;theta6=q6;init_theta6=pi/2

本发明采用以下步骤:

一种基于神经网络的6轴机器人动力学参数辨识的方法,主要包括以下几个步骤:

第一步动力学建模建立6轴机器人的d-h连杆坐标系,构建其动力学方程,因为后三轴主要影响机器人末端姿态,对关节力矩的影响较小,故不予考虑,主要进行前三关节动力学参数的辨识。根据拉格朗日动力学方程,推导出机器人显性线性表达式,根据最小惯性参数原理将表达式简化成线性形式,并给出需要辨识的动力学参数,观测矩阵。

对于n关节的机器人系统,考虑关节摩擦的影响,其动力学方程可以用二阶非线性微分方程来表示:

其中m(q)代表惯性矩阵,q为关节角度矢量;为关节角速度矢量;为关节角加速度矢量;为离心力和哥氏力矩阵;g(q)为机器人重力项;τ为控制力矢量。

可以将其动力学模型线性化简化:

其中w为机器人各关节变量组成的观测矩阵,为待辨识的动力学参数。

第二步激励轨迹优化对关节角度进行傅里叶级数展开,为了得到边界连续,关节角速度,角加速度在周期起始等于0的傅里叶级数,需要对它进行优化(改进),以五次多项式来代替常数项,得到改进的傅里叶级数:

其中i为第i关节,wf为傅里叶级数的基频,aik,bik为傅里叶级数,为常数项系数,m为傅里叶级数的阶数。

以免疫克隆算法来优化得到傅里叶级数的系数,免疫克隆算法优化傅里叶级数具体为改进后的激励轨迹每个关节有10个自由度,3个关节共计30个自由度系数。同时,机器人的关节位置,速度和加速度受到约束,所以激励轨迹的寻优问题是一个多约束的最优问题。优化指标为观测矩阵的条件数最小,传统的方法求解异常复杂,因此,采用免疫克隆选择算法,来获得较好的优化结果。

免疫克隆选择算法寻优步骤如下:

(1)首先对抗原进行识别,即对需要优化的问题进行分析,选出优化特征。针对需要优化的特征进行可行性分析,然后构造出它的亲和度函数,即为观测矩阵的条件数最小,作为问题的评价指标,同时构造出问题的约束条件。本文中的优化问题为30个自由度系数,最小条件数作为其亲和度函数,机器人的关节运动范围,最大速度与最大加速度作为其约束条件。

(2)然后对抗体进行初始化。由于二进制编码的方式存在效率低与“汉明悬崖”的缺点,故初始解采用实数编码的方式。通过编码将问题的可行解转换成免疫克隆选择算法中的抗体,产生一组满足约束条件的随机初始解。

(3)对种群中的每一个抗体个体计算亲和度。通过计算个体的亲和度,以此来评价抗体的性能。

(4)对种群中的抗体根据亲和度大小进行排序,选择前50%的优良个体作为优良个体。

(5)对选中的优良个体进行克隆、变异和克隆抑制操作,删选得到同样数量的子代个体。

(6)随机生成与原种群数量相等的新生种群,计算其亲和度,并删选出前50%的优良子代。

(7)将(5)(6)生成的免疫种群与新生种群合并,取代原来的种群。

所述的第二步具体为判断得到的新种群是否满足算法的终止条件,终止条件为迭代次数超过200次。如果满足终止条件,则终止寻优过程,否则继续进行迭代寻优。免疫克隆算法迭代计算得到优化的傅里叶级数系数,生成优化的激励轨迹。算法流程图如附图2,人工免疫算法优化的效果图,如附图3。

第三步实验采样让机器人跟随激励轨迹运动,多个周期,不同时刻用光电编码器采集多组机器人的关节角度,将实验得到的关节角度,将其拟合成傅里叶级数,对其求微分得到关节角速度,再对求微分得到关节角加速度,组成多组观测矩阵作为实验样本,根据惯性矩阵和哥氏力矩阵推导出观测矩阵具体为:

w1_1=ddq1;w1_2=ddq1*sin(q2)^2+dq1*dq2*sin(2*q2);w1_3=-ddq1*sin(2*q2)

-2*dq1*dq2*cos(2*q2);w1_4=ddq2*sin(q2)+dq2^2*cos(q2);w1_5=ddq2*cos(q2)

-dq2^2*sin(q2);w1_6=0;w1_7=2*a2*(ddq1*cos(q2)-dq1*dq2*sin(q2));w1_8=

-2*a2*(ddq1*sin(q2)-dq1*dq2*cos(q2));w1_9=-0.5*ddq1*cos(2*q2+2*q3)+

dq1*(dq2+dq3)*sin(2*q2+2*q3);w1_10=-ddq1*sin(2*q2+2*q3)-

2*dq1*(dq2+dq3)*cos(2*q2+2*q3);

w1_11=(ddq2+ddq3)*sin(q2+q3)+(dq2+dq3)^2*cos(q2+q3);

w1_12=(ddq2+ddq3)*cos(q2+q3)+(dq2+dq3)^2*sin(q2+q3);

w1_13=0;

w1_14=ddq1*(a3*cos(q3)+a3*cos(2*q2+q3)+2*a2*cos(q2+q3))

-2*dq1*dq2*(a3*sin(2*q2+q3)+a2*sin(q2+q3))

-dq1*dq3*(2*a2*sin(q2+q3)+a3*sin(q3)+a3*sin(q3+2*q2));

w1_15=-ddq1*(a3*sin(q3)+a3*sin(2*q2+q3)+2*a2*sin(q2+q3))

-2*dq1*dq2*(a3*cos(2*q2+q3)+a2*cos(q2+q3))

-dq1*dq3*(2*a2*cos(q2+q3)+a3*cos(q3)+a3*cos(q3+2*q2));

w2_1=0;w2_2=-dq1^2*sin(q2)*cos(q2);w2_3=dq1^2*cos(2*q2);

w2_4=ddq1*sin(q2);w2_5=ddq1*cos(q2);w2_6=ddq2;

w2_7=dq1^2*a2*sin(q2)+g*cos(q2);w2_8=dq1^2*a2*cos(q2)-g*sin(q2);

w2_9=-dq1^2*sin(q2+q3)*cos(q2+q3);w2_10=dq1^2*cos(2*q2+2*q3);

w2_11=ddq1*sin(q2+q3);w2_12=ddq1*cos(q2+q3);w2_13=ddq2+ddq3;

w2_14=(2*ddq2*ddq3)*a3*cos(q3)-a3*sin(q3)*(2*dq2+dq3)*dq3

+(a2*sin(q2+q3)+a3*sin(q3+2*q2))*ddq1^2+g*cos(q2+q3);

w2_15=-(2*ddq2*ddq3)*a3*sin(q3)-a3*cos(q3)*(2*dq2+dq3)*dq3

+(a2*cos(q2+q3)+a3*cos(q3+2*q2))*ddq1^2-g*sin(q2+q3);

w3_1=0;w3_2=0;w3_3=0;w3_4=0;w3_5=0;w3_6=0;w3_7=0;

w3_8=0;w3_9=-ddq1*sin(q2+q3)*cos(q2+q3);w3_10=dq1^2*cos(2*q2+2*q3);

w3_11=ddq1*sin(q2+q3);w3_12=ddq1*cos(q2+q3);w3_13=ddq2+ddq3;

w3_14=ddq2*a3*cos(q3)+q1^2*(a2*sin(q2+q3)+a3*sin(q2+q3)*cos(q2)+

dq2^2*a3*sin(q3)+g*cos(q2+q3);

w3_15=-ddq2*a3*sin(q3)+dq1^2*(a2*cos(q2+q3)+0.5*a3*(cos(q3)+cos(2*q2+q3)))

+dq2^2*a3*cos(q3)-g*sin(q2+q3);

其中q1、q2、q3代表各关节的角度,dq1、dq2、dq3代表各关节的角速度,ddq1、ddq2、ddq3代表各关节的角加速度,g代表重力加速度。

同时得到电机反馈电流,根据转矩系数,求出的电机输出力矩即为关节力矩。

t=k*ia

其中t为关节力矩,k为电流转矩系数,ia为电机反馈电流;

第四步数据处理通过三标准差准则,除去实验数据中的粗大误差,在通过中位值平均滤波法对实验采集的数据进行处理,来降低数据噪声对实验的影响。

第五步动力学参数估计根据实验得到的多组观测矩阵以及关节力矩,通过神经网络来辨识出动力学参数。具体为将实验得到多组观测矩阵作为神经网络的输入,初始的权重设置为0-1的随机值,实验得到的多组关节力矩作为神经网络输出的标签,理论的关节力矩作为神经网络的输出。采用批量梯度下降法来训练模型,训练完成的神经网络的权重即为待辨识的动力学参数,神经网络的结构附图4,梯度下降优化算法示意图附5。

第六步参数验证给出一条不同于激励轨迹的可执行轨迹,机器人跟随轨迹运动,多个周期,不同时刻采集多组机器人的关节角度,电机反馈电流,根据所求的动力学参数得到理论的关节力矩与实验得到关节力矩做对比,用力矩残差根来评价动力学参数的可靠性。参数验证流程图如附图6。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1