一种基于遗传算法优化BP神经网络的冗余机械臂求逆解的方法技术

技术编号:27309199 阅读:20 留言:0更新日期:2021-02-10 09:29
本发明专利技术公开了一种基于遗传算法优化BP神经网络的冗余机械臂求逆解的方法。机械臂在各关节运动范围内均分为180份,计算相邻两关节之间的变换矩阵,得到七组4*4大小的矩阵,通过矩阵连乘得到机械臂末端的位姿矩阵,提取姿态信息元素和位置信息元素作为一组输入样本,提取位姿矩阵对应的七个关节角度作为一组输出样本,累积收集180份输入输出样本,其中150份作为训练样本,其余30份作为测试样本。搭建BP神经网络,随机给定40组权值和阈值,对样本进行训练并返回误差,根据误差大小分配相应概率,采用遗传算法通过选择、交叉、变异生成子代,从中择优进入下一代训练运算,通过30代遗传运算得到最优权值和阈值,得到求逆解的网络,提高运算速率和精度。提高运算速率和精度。提高运算速率和精度。

【技术实现步骤摘要】
一种基于遗传算法优化BP神经网络的冗余机械臂求逆解的方法


[0001]本专利技术涉及冗余机械臂运动学逆解求解领域,尤其涉及一种基于遗传算法优化BP神经网络的冗余机械臂逆运动学的求解方法。

技术介绍

[0002]一般常见的通用机器人通常为6自由度,其逆解的个数和各连杆长度参数有关,至多有16组逆解,但是对于某些常见特殊机械臂构型,一般逆解个数之多有8组甚至更少。现在对于6自由度机械臂逆解方法已经有了较多的方法,例如常见特殊构型机械臂的封闭解。而对于冗余机械臂,常见的有7自由度串联机械臂,其逆解具有无数组,会产生较大的计算量,而机械臂需具备较强的实时性。几何法求冗余机械臂的逆解,需要利用前四个关节的位置信息求得关节角,在通过姿态求得后三关节角,推导过程较为复杂,常规的数值解法运算时间长,神经网络属于特殊的数值解法,因为其具有并行计算、逼近任意复杂系统的能力,所以被广泛应用于各种场景。
[0003]对于冗余机械臂的逆运动学问题亟需一种可靠且快速的计算方法,能够实现求得更加准确的结果。BP神经网络是一种前馈式的多层网络,目前应用范围最广泛,其并行分布式处理能力是其他解法所不具备的。尤其BP神经网络是仿人脑的思维,对于非线性问题的处理能力有很强的适应性。它的学习规则采用梯度下降法(也成最速下降法),输出层通过误差反向传播不断调整权值和阈值,最终达到所要求的误差范围,解决了这一技术问题。

技术实现思路

[0004]冗余机械臂的市场前景越来越广阔,针对不同结构的机械臂,亟需一种快速且精确的求解运动学逆解的方法。为解决此问题,本文提出了一种基于遗传算法优化BP神经网络的冗余机械臂求逆解的方法,保证了求解速度和准确性。
[0005]一种七自由度冗余机械臂求逆解的方法,包括以下步骤:
[0006]步骤一,根据冗余机械臂机构及参数按照改进D-H法列出参数表,描述机械臂各关节的坐标系,相邻坐标系之间通过坐标转换得到变换矩阵i的取值范围为1~7。求得七个变换矩阵后,通过连乘得到首末坐标系的变换矩阵一般的,求得的坐标变换矩阵满足表达式(1):
[0007][0008]其中n、o、a所包含的3*3的矩阵表达了机械臂姿态信息,p所包含的3*1的矩阵表达了机械臂位置信息,最后一行的信息对于本专利技术来说没有特别的作用。提取位姿信息并建
立大小位12*1的新矩阵A,将七个关节的运动范围均分为180份,计算180次机械臂的正运动学的解,提取到有效信息并添加至新矩阵A中,最终组成12*180的矩阵,将此数据存入数据库。同时,将A矩阵对应位置的七个关节角添加到新矩阵B中,最终形成7*180的矩阵B,将A矩阵和B矩阵分别分为两组,其中0~140列作为训练样本的输入Ain和输出Aout,141~180列作为测试样本的输入Bin和输出Bout,利用式(2)对数据进行归一化处理,区间为[0,1]。
[0009]y=(x-min)/(max-min)
ꢀꢀꢀ
(2)
[0010]步骤二,建立三层BP神经网络,输入层神经元设定为12,输出层神经元设定为7,隐藏层的神经元数量没有明确规定,若选取过多会增加运算量,若选取过少无法全面概括样本规律。一般的有经验公式(3)计算隐藏层神经元个数。
[0011][0012]其中Hide代表隐藏层神经元个数,Input代表输入层神经元个数,Output代表输出层神经元个数。α默认取值区间为1~10。求得隐藏层神经元个数后,需要确定隐藏层的激活函数,激活函数的选取对整个网络的质量有很大的影响,激活函数有理解学习非线性问题的重要作用,本专利技术选取(4)式作为本网络的激活函数。
[0013]elliot2sig(n)
ꢀꢀꢀ
(4)
[0014]创建新矩阵X,矩阵X包含随机权值和阈值所组成的矩阵,同时矩阵X也作为遗传算法的个人(父代)进行遗传。对网络的参数进行设置,其中包括训练次数、训练目标和学习速率,计算得到误差e。
[0015]步骤三,建立改进的遗传算法,步骤二中的矩阵X为二进制数,具体位数通过式(5)求得。
[0016][0017]其中a、b分别为上下界,eps为精度,L若为小数则四舍五入取整数,矩阵X中存放40组随机个体,每个个体通过步骤二计算出误差e,根据40组误差的大小,通过线性变换函数分配每个个体的适应度,并采用排序法将40个个体进行降序排列,采用精英保存策略,将最好的个体不参与交叉、变异保留到下一代的群体当中,其余个体进行交叉和变异运算,用本代最优个体替换掉下一代最差的个体,交叉算子采用两点交叉法对个体基因进行交换,最后通过离散变异算子对个体进行变异,完成预定的遗传代数。
[0018]步骤四,不断重复步骤二和步骤三,直到满足设定的精度要求,获得最优的一组权值和阈值X{i},最后将其从二进制转换为十进制数,至此则求得针对某七自由度机械臂的最优求逆解网络。
附图说明
[0019]以下通过附图对本专利技术做进一步描述。
[0020]图1为本专利技术冗余机械臂逆解快速求解流程示意图。
[0021]图2为本专利技术所提供的未优化的均方误差曲线图。
[0022]图3为本专利技术所提供的经过遗传算法优化后的均方误差曲线图。
具体实施方式
[0023]本专利技术的具体技术方案如下:
[0024]第一步,根据仿人体上肢机械臂7DOF-ROBOT采用改进法建立冗余机械臂D-H参数模型,如下表1。表中i为连杆编号,α为连杆扭转角,a为连杆长度,d为连杆偏距,θ为关节角,ω为关节角转动范围。
[0025]iα
i-1
a
i-1
d
i
θ
i
ω
i
10000[-Pi/2,Pi/4]2Pi/200-Pi/2[0,Pi]3Pi/200.3-Pi/2[0,(Pi*11)/18]4Pi/2000[-(Pi*11)/18,0]5-Pi/200.270[-Pi/4,Pi/4]6Pi/200Pi/2[-(Pi*7)/36,(5*Pi)/18]7-Pi/2000[-(Pi*7)/36,(5*Pi)/18][0026]表1 7R机械臂的D-H参数第二步,根据式(1)求得初始位置的变换矩阵如式(6)
[0027][0028]第三步,将七个关节等分为180份,并存放在矩阵中,采用m语言实现,仅以一个关节为例,inputdataTemPart1为存放的矩阵名称。
[0029]inputdataTemPart1=[];
[0030]for a=-90:0.75:45
[0031]inputdataTemPart=[(a/180)*pi];
[0032]inputdataTemPart1=[inputdataTemPart1;inputdataTemPart];
[0033]End
[0034]第四步,重复第二步180次,建立并拆分新的矩阵Ain、Aout、Bin、Bout,通本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于遗传算法优化BP神经网络的冗余机械臂求逆解的方法,其特征在于,包括如下步骤:步骤一,根据冗余机械臂关节数据建立D-H参数模型,并根据一般正运动学求得末端4*4的位姿矩阵;步骤二,建立BP神经网络,所述BP网络包括输入、输出、隐藏层神经元,传递函数;步骤三,建立遗传算法流程,神经网络中的权值和阈值作为个体参加遗传,通过多代遗传后,使得权值和阈值快速收敛,得到最优值;步骤四,将所述冗余机械臂末端执行器的有效位姿数据输入BP神经网络中,得到该机械臂对应的关节角度。2.如权利要求1所述的一种基于遗传算法优化BP神经网络的冗余机械臂求逆解的方法,其特征在于,所述BP神经网络的训练过程包括如下步骤:步骤一,创建三层网络,确定每层网络的神经元个数;步骤二,根据实际计算案例选取相应的隐藏层的传递函数,并对输入数据归一化;步骤三,通过不断修正权值和阈值都网络进行训练和测试,并输出测试误差。3.如权利要求1所述的一种基于遗传算法优化BP神经网络的冗余机械臂求逆解的方法,其特征在于,所述遗传算法的过程包括如下步骤:步骤一,合并权值和阈值的二进制数成为一个个体,并随机生成初始种群;步骤二,通过线性变换函数,采用排序的方法分配各个个体的适应度;步骤三,通过精英保存策略对个体进行选择;步骤四,通过两点交叉算子对个体进行交叉;步骤五,通过离散变异算子对个体进行变异;步骤六,重复步骤三至步骤五,直至满足遗传代数,输出遗传算法后的权值和阈值。4.如权利要求2所述的一种基于遗传算法优化BP神经网络的冗余机械臂求...

【专利技术属性】
技术研发人员:康存锋刘思远陈伟康
申请(专利权)人:北京工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1