一种机器人的位置误差补偿方法与流程

文档序号:20919167发布日期:2020-05-29 13:55阅读:544来源:国知局
一种机器人的位置误差补偿方法与流程

本发明涉及机器人运动学参数标定领域,具体涉及一种机器人的位置误差补偿方法。



背景技术:

目前,造成机器人末端位置误差的误差来源有很多种,比如加工、装配以及环境因素造成的机器人几何参数误差,结构刚度、减速机柔性以及驱动器柔性等非线性参数造成的机器人非几何参数误差,以及环境温度、摩擦环境以及控制参数等非参数造成的非参数误差;这些不同种类的参数之间互相耦合,具有非常强的非线性,难以通过传统的建模方法进行数学表示,因此也无法通过基于模型的参数标定方法进行参数误差标定和补偿。基于模型的参数误差标定和补偿方法只能对几何参数误差进行补偿,而对于其他参数误差却无法辨识和补偿。此外,在对几何参数辨识时采用线性化的处理,丢失了其他参数误差的物理特征,因此机器人末端执行器的位置精度只能得到有限的提高,不能完全补偿末端执行器的位置误差。

中国发明专利cn102607552公开了一种基于神经网络的工业机器人空间网格精度补偿方法,该方法通过采用粒子群法优化神经网络来补偿机器人的位置误差。但该方法需要实现将机器人的工作空间进行网格划分,并且只对神经网络的权值进行优化,使得神经网络的泛化能力和拟合精度较差,无法对整个工作空间中的末端执行器位置误差进行补偿。

中国发明专利cn110385720公开了一种基于深度神经网络的机器人定位误差补偿方法,该方法采用粒子群法对神经网络进行优化。但是并没有对神经网络的结构进行优化,无法准确确定神经网络的初始结构,使得神经网络结构的设计显得更为关键,这往往是通过经验来选定,使得神经网络的设计更复杂,网络拟合精度变差。



技术实现要素:

基于现有技术所存在的问题,本发明的目的是提供一种机器人的位置误差补偿方法,能解决现有机器人位置误差补偿方法存在的无法对整个工作空间中的末端执行器位置误差进行补偿以及补偿精度差等问题。

本发明的目的是通过以下技术方案实现的:

本发明实施方式提供一种机器人的位置误差补偿方法,包括:

步骤1,随机规划和生成待补偿的机器人的空间位姿,使各空间位姿均匀分布于整个工作空间中,随机生成空间位姿的方程为:

式1中,max(qm)和min(qm)为关节参数,max(qm)表示所述机器人第m个驱动关节取值的最大关节参数;min(qm)表示所述机器人第m个驱动关节取值的最小关节参数;m表示机器人的驱动关节总数量;rand(1)表示随机生成0至1之间的随机数;随机生成的空间位姿放入输入数据集{qn};

步骤2,将所述步骤1得到的输入数据集{qn}中的关节参数输入到机器人的正运动学方程p=f(g,n,q)中,输出得到机器人末端执行器的理论位置{pn};所述机器人的正运动学方程p=f(g,n,q)中,p表示机器人末端执行器在工作空间中的位置,g表示机器人的几何参数,n表示机器人的非几何参数,q表示机器人的关节参数;

步骤3,将所述步骤1得到的输入数据集{qn}中的关节参数输入到所述机器人的控制器中,规划和控制所述机器人的末端执行器运动到理论位置{pn};利用外部测量装置测量末端执行器在理论位置{pn}时的实际位置{p′n},由实际位置{p′n}减去理论位置{pn}得出所述机器人的位置误差δp;

步骤4,建立与所述机器人拟合的人工神经网络:建立包括输入层、中间的隐层和输出层的人工神经网络,该人工神经网络的输入层表示所述机器人的关节参数变量δq,该输入层的网络节点数量等于所述机器人关节参数的数量;该人工神经网络的输出层表示所述机器人末端执行器的位置误差δp,该输出层节点数量等于所述机器人末端执行器的位置误差参数的数量;该人工神经网络的隐层的数量不小于2,所述隐层的网络层数和每层隐层的节点数任意设置;设定该人工神经网络的初始迭代次数为0;设定该人工神经网络的最大迭代次数;

步骤5,对所述步骤3建立的人工神经网络进行迭代训练,随机生成独立子群,将子群中的每个个体采用二进制编码,并分别对以矩阵表示的所述人工神经网络的隐层的结构、权值参数和阈值参数进行编码;

步骤6,遗传操作:采用以下交叉概率计算公式对所述各个独立子群中的个体之间进行算术交叉操作,所述交叉概率计算公式为:

上述式(2)中,y′为选择出将要交叉的两个染色体中适应度较大的值;y表示平均适应度;ymax表示最大适应度;pc1和pc2表示交叉概率因子,分别设置为0.9和0.6;

采用以下变异概率计算公式进行变异概率计算,为:

上述式(3)中,pm1和pm2表示变异概率因子,分别设置为0.1和0.01;

步骤7,计算适应度:利用适应度函数计算所述人工神经网络种群中每个个体所代表的网络输出的实际值与理论值之间的误差,并计算所有个体均方根误差,所述适应度函数为:

上述式(4)中,δp′j表示神经网络输出的需要补偿的末端执行器位置误差;δpj表示末端执行器的实际位置误差;α表示调整进化过程中网络复杂度和均方根误差比例的调整参数,该调整参数设置为0.95;a(k)表示激活的神经元个数,k表示总的神经元个数;

步骤8,保留当前最优的个体,迭代次数加1;若当前适应度收敛到最小值或已迭代次数超过最大迭代次数时,迭代过程停止,完成人工神经网络的训练执行所述步骤8;否则,返回所述步骤4继续进行迭代训练;

步骤9,当完成所述人工神经网络的训练后,将所述机器人的关节参数q输入到所述人工神经网络进行处理得出该机器人末端执行器的补偿误差δp′,通过公式δq=(jtj)-1jtδp′计算得出在关节空间中补偿的关节参数补偿变量δq,将得到的关节参数补偿变量δq加入输入变量,得到重新补偿的机器人的关节参数q′=q+δq,用得到的重新补偿的机器人的关节参数驱动所述机器人,即完成在关节空间对所述机器人末端执行器的位置补偿。

由上述本发明提供的技术方案可以看出,本发明实施例提供的机器人的位置误差补偿方法,其有益效果为:

通过建立人工神经网络来拟合机器人各项参数误差造成的末端执行器的位置误差,并基于多种群协同进化的方法对人工神经网络的结构、权值和阈值进行优化,获得具有泛化能力强、拟合精度高的人工神经网络,进而在关节空间中对位置误差进行补偿,实现了提高机器人在工作空间中的位置精度,很好的解决了当前机器人的位置误差补偿不完整及精度不高的难题。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的机器人的位置误差补偿方法的流程图;

图2为本发明实施例提供的位置误差补偿方法中的人工神经网络的结构示意图;

图3为本发明实施例提供的位置误差补偿方法中的种群分割的矩阵表示示意图;

图4为本发明实施例提供的位置误差补偿方法中的个体之间交叉变异操作示意图。

具体实施方式

下面结合本发明的具体内容,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。本发明实施例中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

如图1所示,本发明实施例提供一种机器人的位置误差补偿方法,包括:

步骤1,数据采集:随机规划和生成待补偿的机器人的空间位姿,使各空间位姿均匀分布于整个工作空间中,随机生成空间位姿的方程为:

式1中,max(qm)和min(qm)为关节参数,max(qm)表示所述机器人第m个驱动关节取值的最大关节参数;min(qm)表示所述机器人第m个驱动关节取值的最小关节参数;m表示机器人的驱动关节总数量;rand(1)表示随机生成0至1之间的随机数;随机生成的空间位姿放入输入数据集{qn};

步骤2,将所述步骤1得到的输入数据集{qn}中的关节参数输入到机器人的正运动学方程p=f(g,n,q)中,输出得到机器人末端执行器的理论位置{pn};所述机器人的正运动学方程p=f(g,n,q)中,p表示机器人末端执行器在工作空间中的位置,g表示机器人的几何参数,n表示机器人的非几何参数,q表示机器人的关节参数;

步骤3,将所述步骤1得到的输入数据集{qn}中的关节参数输入到所述机器人的控制器中,规划和控制所述机器人的末端执行器运动到理论位置{pn};利用外部测量装置测量末端执行器在理论位置{pn}时的实际位置{p′n},由实际位置{p′n}减去理论位置{pn}得出所述机器人的位置误差δp;

步骤4,建立与所述机器人拟合的人工神经网络:建立包括输入层、中间的隐层和输出层的人工神经网络(参见图2),该人工神经网络的输入层表示所述机器人的关节参数变量δq,该输入层的网络节点数量等于所述机器人关节参数的数量;该人工神经网络的输出层表示所述机器人末端执行器的位置误差δp,该输出层节点数量等于所述机器人末端执行器的位置误差参数的数量;该人工神经网络的隐层的数量不小于2,所述隐层的网络层数和每层隐层的节点数任意设置;设定该人工神经网络的初始迭代次数为0;设定该人工神经网络的最大迭代次数;

步骤5,对所述步骤3建立的人工神经网络进行迭代训练,随机生成独立子群,将子群中的每个个体采用二进制编码,并分别对以矩阵表示的所述人工神经网络的隐层的结构、权值参数和阈值参数进行编码(参见图3);

步骤6,遗传操作:采用以下交叉概率计算公式对所述各个独立子群中的个体之间进行算术交叉操作(参见图4),所述交叉概率计算公式为:

上述式(2)中,y′为选择出将要交叉的两个染色体中适应度较大的值;y表示平均适应度;ymax表示最大适应度;pc1和pc2表示交叉概率因子,分别设置为0.9和0.6;

采用以下变异概率计算公式进行变异概率计算,为:

上述式(3)中,pm1和pm2表示变异概率因子,分别设置为0.1和0.01;

步骤7,计算适应度:利用适应度函数计算所述人工神经网络种群中每个个体所代表的网络输出的实际值与理论值之间的误差,并计算所有个体均方根误差,所述适应度函数为:

上述式(4)中,δp′j表示神经网络输出的需要补偿的末端执行器位置误差;δpj表示末端执行器的实际位置误差;α表示调整进化过程中网络复杂度和均方根误差比例的调整参数,该调整参数设置为0.95;a(k)表示激活的神经元个数,k表示总的神经元个数;

步骤8,保留当前最优的个体,迭代次数加1;若当前适应度收敛到最小值或已迭代次数超过最大迭代次数时,迭代过程停止,完成人工神经网络的训练执行所述步骤8;否则,返回所述步骤4继续进行迭代训练;

步骤9,当完成所述人工神经网络的训练后,将所述机器人的关节参数q输入到所述人工神经网络进行处理得出该机器人末端执行器的补偿误差δp′,通过公式δq=(jtj)-1jtδp′计算得出在关节空间中补偿的关节参数补偿变量δq,将得到的关节参数补偿变量δq加入输入变量,得到重新补偿的机器人的关节参数q′=q+δq,用得到的重新补偿的机器人的关节参数驱动所述机器人,即完成在关节空间对所述机器人末端执行器的位置补偿。

上述方法的步骤3中,利用的外部测量装置采用视觉相机、运动捕捉系统、激光干涉仪中的至少一种。

上述方法的步骤4中,所述人工神经网络的隐层层数设置为3,每层隐层的节点数设置为100。

上述方法的步骤4中,设定该人工神经网络的最大迭代次数为500。

上述方法的步骤5中,并分别对以矩阵形式表示的所述人工神经网络的隐层的结构、权值参数和阈值参数进行编码为:

设定所述隐层的结构、权值参数和阈值参数对应的矩阵分别为m、w和λ,所有结构对应的矩阵m、权值参数对应的矩阵w和阈值参数对应的矩阵λ的初始参数均为随机产生;

按以下方式进行编码,为:

若所述人工神经网络的输入层中第i个节点与隐层第一层的第lj个节点之间连接,则将矩阵m1的第[i,j]个元素记为1;

若所述人工神经网络的输入层中第i个节点与隐层第一层的第lj个节点之间不连接,则将矩阵m1的第[i,j]个元素记为0;

若所述人工神经网络的隐层第一层的第li个节点与隐层第二层的第kj个节点之间连接,则将矩阵m2的第[i,j]个元素记为1;

若所述人工神经网络的隐层第一层的第li个节点与隐层第二层的第kj个节点之间不连接,则将矩阵m2的第[i,j]个元素记为0;

直至得出所述隐层最后一层与输出层的连接矩阵mn的全部元素的编码;

所述矩阵m1、m2、mn为矩阵m的子集。

上述方法步骤2中,机器人的正运动学方程p=f(g,n,q)中,几何参数g与非几何参数n之间具有非常强的耦合性与非线性,由机器人参数误差导致的末端位置误差方程为:δp+p=f(g+δg,n+δn,q);该方程能等效为δp+p=f(ρ+δρ,q),其中,表示关于几何参数g和非几何参数n的非线性函数;将该方程两边对时间t进行求偏导,即得到正运动学雅克比矩阵推导得到的雅克比矩阵j代入步骤9的补偿计算过程,即能得到需要补偿的关节参数补偿变量δq。

与现有技术相比,本发明的有益效果体现在:

(1)本发明将造成机器人末端执行器位置误差的误差全部归类为单一的伪误差,通过建立对应的人工神经网络来拟合伪误差造成的末端执行器位置误差曲面,并且在关节空间中对位置误差进行补偿,大大提高了机器人位置误差补偿精度和可靠性。

(2)本发明不需要将机器人的工作空间进行分区或划分网格等其他操作,直接通过驱动关节生成工作空间中的随机位置,大大提高了神经网络的泛化能力和拟合精度。

(3)本发明设计了基于多种群协同进化的网络优化方法,分别设计了基于个体适应度的交叉概率计算方法以及变异概率计算方法,此外还设计了同时优化网络权值、阈值以及网络结构的计算方法。可以直接通过网络优化方法获得整个神经网络的权值、阈值以及网络结构,不需要通过人工经验来设计神经网络,进一步提高了神经网络的泛化能力和拟合精度。

(4)本发明不需要提前对机器人的参数进行标定和补偿,大大提高了机器人误差补偿的效率。

下面对本发明实施例具体作进一步地详细描述。

本实施例提供一种机器人的位置误差补偿方法,该方法中,待补偿的机器人的正运动学方程表示为:p=f(g,n,q)(a)

上述式(a)中,p表示机器人末端执行器在工作空间中的位置,g表示机器人几何参数,n表示机器人非几何参数,q表示机器人关节参数;几何参数与非几何参数之间具有非常强的耦合性与非线性,由于机器人参数误差导致的末端位置误差方程为:

δp+p=f(g+δg,n+δn,q)(b)

上述式(b)能等效为:δp+p=f(ρ+δρ,q)(c)

上述式(c)中,表示关于几何参数g和非几何参数n的非线性函数,将式(c)两边对时间t进行求偏导,即得到正运动学雅克比矩阵,为:

该方法按如下步骤进行(参见图1):

步骤1,数据采集,随机规划和生成机器人空间位姿,这些位姿需要均匀分布于整个工作空间中,随机位姿生成方程写作

这里,max(qm)表示第m个机器人驱动关节可以取值的最大关节参数,min(qm)表示第m个机器人驱动关节可以取值的最小关节参数,m表示机器人驱动关节总数量;rand(1)表示随机生成0至1之间的随机数;随机生成的位姿放入输入数据集{qn};

步骤2,将输入数据集{qn}中的关节参数输入到机器人的正运动学方程(a),输出得到理论的机器人末端执行器位置{pn};

步骤3,将输入数据集{qn}中的关节参数输入到机器人控制器中,规划和控制机器人末端执行器运动到理论的位置{pn};利用外部测量装置(如视觉相机、运动捕捉系统以及激光干涉仪)测量末端执行器在理论位置{pn}时的实际位置{p′n},根据理论位置{pn}与实际位置{p′n}能得出机器人的末端位置误差:δp={p′n}-{pn};

步骤4,建立拟合所述机器人的人工神经网络,如图2所示,包括输入层、中间的隐层和输出层,该人工神经网络的输入层表示机器人关节参数变量δq,输入层的网络节点数量与机器人关节参数数量有关,如机器人具有6个驱动关节,则输入层节点数为6;该人工神经网络的输出层表示机器人执行器末端位置误差δp,输出层节点数量为执行器末端位置误差参数数量,这里一般表示空间位置误差,即节点数为3;中间的隐层的数量设置成2,3,4等,隐层的网络层数和每层的节点数任意设置,一般根据实际情况将隐层层数设置为3,每层的节点数设置为100;设置迭代次数d=0;设定最大迭代次数为500;

步骤5,随机生成独立子群,将子群中的每个个体采用二进制编码,分别对隐层的权值、阈值以及结构进行编码,并以矩阵形式表示;举例说明:如果输入层中第i个节点与隐层第一层的第lj个节点之间连接,则表示在矩阵m1的第[i,j]个元素为1;如果输入层中第i个节点与隐层第一层的第lj个节点之间不连接,则表示在矩阵m1的第[i,j]个元素为0;同理,对于隐层第一层的第li个节点与隐层第二层的第kj个节点之间连接,则表示在矩阵m2的第[i,j]个元素为1;对于隐层第一层的第li个节点与隐层第二层的第kj个节点之间不连接,则表示在矩阵m2的第[i,j]个元素为0;同理,类推到隐层最后一层与输出层的连接矩阵;对应结构矩阵m的权值参数矩阵w以及阈值矩阵λ,如图3所示;这里所有的结构矩阵m、权值参数矩阵w以及阈值矩阵λ的初始参数均为随机产生;

步骤6,遗传操作,遗传操作是将各个种群中的个体之间进行算术交叉操作,如图4所示。交叉概率大可以增强个体变异能力,产生新的个体,但较大的交叉概率会破坏种群中的优良个体,降低算法的收敛速度。这里采用新的交叉概率计算公式如下

上述式(2)中,y′为选择出将要交叉的两个染色体中适应度较大的值,y表示平均适应度,ymax表示最大适应度;pc1和pc2表示交叉概率因子,分别设置为0.9和0.6;变异概率计算公式如下:

上述式(3)中,pm1和pm2表示变异概率因子,分别设置为0.1和0.01;

步骤7,适应度计算,计算种群中每个个体所代表的网络输出的实际值与理论值之间的误差,并计算所有个体均方根误差,适应度函数写作:

上述式(4)中,δp′j表示神经网络输出的需要补偿的末端执行器位置误差,δpj表示末端执行器的实际位置误差,α表示可调参数,用于调整进化过程中网络复杂度和均方根误差的比例,这里设置为0.95;a(k)表示激活的神经元个数,k表示总的神经元个数;

步骤8,保留当前最优的个体,迭代次数d=d+1;若当前适应度收敛到最小值(即yi<<10-4mm),或迭代步骤超过最大迭代次数(即迭代次数d>dmax=500)时,跌代过程停止,即完成人工神经网络的训练;否则,返回步骤6;

步骤9,完成人工神经网络的训练后,需要对末端执行器的位置误差进行补偿;将机器人的关节输入参数q输入到神经网络,得到末端执行器的补偿误差δp′;得到需要在关节空间中补偿的驱动关节参数补偿变量计算公式:δq=(jtj)-1jtδp′

得到关节参数补偿变量δq后,将补偿变量δq加入输入变量q,即为:q′=q+δq;

这样就得到了重新补偿的驱动机器人关节的关节参数q′,利用该关节参数q′对机器人末端执行器的位置补偿,即完成了在机器人关节空间对机器人末端执行器的位置补偿。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

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