一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于BP神经网络的并联六轴机器人位姿正解方法与流程

2022-02-21 08:19:12 来源:中国专利 TAG:

基于bp神经网络的并联六轴机器人位姿正解方法
技术领域
1.本发明涉及工业机器人领域,具体涉及一种基于bp神经网络的并联六轴机器人位姿正解方法。


背景技术:

2.并联机器人是一类结构全新的机器人,与传统的工业机器人相比,它具有更高的刚度、精度和更好的承载能力等优点,其应用几乎涉及现代尖端技术的许多领域。在定位平台、仿真设备、娱乐设备等领域已有广泛的应用,在自动化加工应用场景的潜力也很大。在并联机器人运动分析中,给出各主动件的位置,求解动平台的位姿称为位姿正解,这对于机器人机构的工作空间解析、误差补偿都具有深远的意义。有了动平台的位姿信息,可以用来对机器人的动平台的工作位置作限位处理,即控制系统在运行过程中不断地判定位姿,当超过用户的设定极限时,即报警停机。
3.目前的并联机器人位姿正解方法运算量大,计算效率低。


技术实现要素:

4.本发明的目的在于提供一种基于bp神经网络的并联六轴机器人位姿正解方法,以降低并联机器人位姿正解方法的运算量,提高计算效率。
5.为实现上述目的,本发明采用的技术方案是:
6.一种基于bp神经网络的并联六轴机器人位姿正解方法,所述并联六轴机器人包括静平台、动平台、六个虎克铰组件、六个电缸组件和三个交叉轴组件,其中,虎克铰组件安装在静平台上,交叉轴组件安装在动平台上,电缸组件的一端安装在虎克铰组件上,电缸组件的另一端通过承力销轴转动连接在交叉轴组件上;所述方法包括以下步骤:
7.步骤1、收集n组训练数据,训练数据包括机器人的末端位姿数据posei=[p
i ri]和电缸组件的电缸伸缩长度li=[l1
i l2
i l3
i l4
i l5
i l6i];其中,1≤i≤n,l1i至l6i表示第1至第6个电缸的伸缩长度;pi=[x
i y
i zi]表示机器人末端的位置数据,xi,yi,zi分别为动坐标系{plat}的原点在基座标系{o}下x轴,y轴,z轴方向的值;ri=[u
i v
i wi]表示机器人末端的姿态数据,ui,vi,wi分别为动坐标系{plat}绕基座标系{o}的x轴,y轴,z轴的角度值;
[0008]
步骤2、在pytorch中的神经网络工具箱中搭建bp神经网络框架,并将n组训练数据集导入bp神经网络框架中:将n组电缸伸缩长度数据li作为输入数据集;将n组机器人末端位姿数据posei=[p
i ri]作为输出数据集;然后选择bp神经网络训练策略,具体如下:
[0009]
选择自适应学习策略“levenberg-marquardt方法”,自适应学习策略选择为梯度下降法;
[0010]
性能评价策略选择“均方误差”;
[0011]
隐含层数选择m层,用ki表示,其中1≤i≤m;隐含层的激活函数均为“tansig”;
[0012]
输入层和输出层的节点个数均为6;
[0013]
步骤3、开始训练bp神经网络,训练完成后得到bp神经网络模型,用“bpnet”表示;
然后提取出bpnet中的数据:输入权值数据iw、隐含层权值数据lw、输出层权值数据ow、隐含层偏差值数据lb、输出层偏差值数据ob;
[0014]
步骤4、根据步骤3所提取出的数据,使用c/c 重构bp神经网络,重构完成后,导入控制系统中运行使用即可。
[0015]
所述激活函数“tansig”的意义为双曲正切sigmoid函数,含义为:
[0016][0017]
所述输入权值数据iw是一个维度为k1×
6的矩阵;所述隐含层权值数据lw共包含m个二维矩阵,每个矩阵的维度为ki×ki
,其中1≤i≤m,这m个矩阵有序排列,第i个矩阵表示为lw{i};输出层权值ow数据为一个维度为6
×km
的矩阵;所述隐含层偏差值数据lb包含m个一维向量,维度为ki×
1,m个向量有序排列,第i个向量表示为lb{i};所述输出层偏差值数据ob为1个一维向量,维度为6
×
1。
[0018]
所述步骤4中,重构的bp神经网络伪代码表示为:
[0019]
输入:l=[l
1 l
2 l
3 l
4 l
5 l6]
t
[0020]
输出:pose=[x y z u v w]
t
[0021]
算法过程:
[0022]
1:for i=1:m
[0023]
2:if i=1
[0024]
3:lout{i}=tansig(iw*l lb{i})
[0025]
4:else
[0026]
5:lout{i}=tansig(lw{i-1}*lout{i-1} lb{i-1})
[0027]
6:endif
[0028]
7:endfor
[0029]
8:pose=ow*lout{m} ob
[0030]
其中,l表示输入的电缸的活塞杆的伸缩长度,pose表示输出机器人末端的位姿值。lout{i}表示第i个隐含层的输出结果。
[0031]
采用上述方案后,本发明采集并联六轴机器人末端位姿数据以及电缸活塞杆的伸缩长度数据作为训练数据,并将其导入bp神经网络框架中,训练bp神经网络,然后从训练得到的bp神经网络模型中提取相关参数,并使用c/c 语言重构后导入机器人控制系统即可。
附图说明
[0032]
图1为本发明的并联六轴机器人的结构示意图;
[0033]
图2为本发明的方法流程图;
[0034]
图3为本发明的训练数据生成流程图;
[0035]
图4为本发明的bp神经网络模型示意图。
[0036]
标号说明:
[0037]
静平台10;动平台20;虎克铰组件30;电缸组件40;交叉轴组件50。
具体实施方式
[0038]
如图1所示,本发明所涉及的并联六轴机器人包括静平台10、动平台20、六个虎克铰组件30、六个电缸组件40和三个交叉轴组件50,其中,虎克铰组件30安装在静平台10上,交叉轴组件50安装在动平台20上,电缸组件40的一端安装在虎克铰组件30上,电缸组件40的另一端通过承力销轴转动连接在交叉轴组件50上。
[0039]
如图2所示,基于以上并联六轴机器人结构,本发明揭示了一种基于bp神经网络的并联六轴机器人位姿正解方法,其包括以下步骤:
[0040]
步骤1、收集n组训练数据,训练数据包括机器人的末端位姿数据posei=[p
i ri]和电缸组件的电缸伸缩长度li=[l1
i l2
i l3
i l4
i l5
i l6i];其中,1≤i≤n,l1i至l6i表示第1至第6个电缸的伸缩长度;pi=[x
i y
i zi]表示机器人末端的位置数据,xi,yi,zi分别为动坐标系{plat}的原点在基座标系{o}下x轴,y轴,z轴方向的值;ri=[u
i v
i wi]表示机器人末端的姿态数据,ui,vi,wi分别为动坐标系{plat}绕基座标系{o}的x轴,y轴,z轴的角度值。
[0041]
{o}为基坐标系。在静平台上建立直角坐标系{o},该坐标系的原点o设置在b1~b6确定的平面上,且位于b1~b6确定的圆的圆心位置,y轴方向设置在ob1,ob2线段的角平分线位置,此时六个虎克铰组件相对于y轴对称;z轴设置朝上,x轴根据右手定则即可自动确定,最终的坐标系。bi,i=1~6为虎克铰原点,其分别设置在六个虎克铰组件的十字轴中心。
[0042]
{p}为动平台坐标系。在动平台上建立直角坐标系{p},坐标系{p}的原点p位于ui,i=1~3确定的平面上,且位于三个ui确定的圆的圆心位置。坐标系{p}的y轴如图所示,其中u2在y轴的负方向,u1,u3相对于y轴对称,z轴朝上,x轴可用右手定则确定。ui为交叉轴原点,交叉轴零件的两个圆柱面的轴线形成一个交点,设该点为ui,i=1~3。
[0043]
如图3所示,该步骤中的训练数据可以采用以下方法收集得到:
[0044]
首先,在机器人允许的工作范围内,生成n组机器人位姿数据。然后对n组机器人位姿数据进行位置逆解,得到n组逆解数据,即电缸的活塞杆的伸缩长度。
[0045]
步骤2、在pytorch中的神经网络工具箱中搭建bp神经网络框架,并将n组训练数据集导入bp神经网络框架中:将n组电缸伸缩长度数据li作为输入数据集;将n组机器人末端位姿数据posei=[p
i ri]作为输出数据集。然后选择bp神经网络训练策略,如图4所示,具体如下:
[0046]
选择自适应学习策略“levenberg-marquardt方法”,自适应学习策略选择为梯度下降法;
[0047]
性能评价策略选择“均方误差”;
[0048]
隐含层数选择m层,每层的节点个数可以相同也可以不同,用ki表示,其中1≤i≤m;隐含层的激活函数均为“tansig”,激活函数“tansig”的意义为双曲正切sigmoid函数,含义为:
[0049][0050]
输入层和输出层的节点个数均为6。
[0051]
步骤3、开始训练bp神经网络,训练完成后得到bp神经网络模型,用“bpnet”表示。提取出bpnet中的数据,具体就是输入权值数据(用iw表示),隐含层权值数据(用lw表示),输出层权值数据(用ow表示),隐含层偏差值数据(用lb表示),输出层偏差值数据(用ob表
示)。
[0052]
输入权值数据iw是一个维度为k1×
6的矩阵。隐含层权值数据lw共包含m个二维矩阵,每个矩阵的维度为ki×ki
,其中1≤i≤m,这m个矩阵有序排列,第i个矩阵表示为lw{i}。输出层权值ow数据为一个维度为6
×km
的矩阵。隐含层偏差值数据lb包含m个一维向量,维度为ki×
1,这m个向量有序排列,第i个向量表示为lb{i}。输出层偏差值数据ob为1个一维向量,维度为6
×
1。
[0053]
步骤4、根据步骤3所提取出的数据,使用c/c 重构bp神经网络,重构完成后,导入控制系统中运行使用即可。重构的bp神经网络伪代码可表示为:
[0054]
输入:l=[l
1 l
2 l
3 l
4 l
5 l6]
t
[0055]
输出:pose=[x y z u v w]
t
[0056]
算法过程:
[0057]
1:for i=1:m
[0058]
2:if i=1
[0059]
3:lout{i}=tansig(iw*l lb{i})
[0060]
4:else
[0061]
5:lout{i}=tansig(lw{i-1}*lout{i-1} lb{i-1})
[0062]
6:endif
[0063]
7:endfor
[0064]
8:pose=ow*lout{m} ob
[0065]
其中,l表示输入的电缸的活塞杆的伸缩长度,pose表示输出机器人末端的位姿值。lout{i}表示第i个隐含层的输出结果。
[0066]
以上所述,仅是本发明实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献