一种基于神经网络的六维力矩传感器重力补偿方法及系统

文档序号:24874559发布日期:2021-04-30 12:48阅读:47来源:国知局
一种基于神经网络的六维力矩传感器重力补偿方法及系统

本发明涉及机器人控制技术领域,具体涉及一种基于神经网络的六维力矩传感器重力补偿方法及系统。



背景技术:

在现有的六维力矩传感器的重力补偿方案中,利用软件补偿方法可分为两类方法,一是对六维力矩传感器在不同姿态下的情况进行数学建模,得到数学模型公式,该过程涉及复杂的力学分析。二是智能控制方法,如人工神经网络。通过大量的示教数据,构建性能良好的神经网络模型,六维力矩传感器在不同的位姿下,智能补偿器能预测出相应的补偿数据,完成六维力矩传感器的重力补偿。智能控制方法,还能使用机器学习,如经典机器学习算法,高斯混合回归分析。

这两种方法都能达到理想的补偿作用,但也有缺点。关于数学建模方法,需要使用复杂的力学建模,建模难度大于构建神经网络模型。关于神经网络模型,其缺点在于神经网络的参数优化不足会导致的预测精度不优,无法实现高精度的装配任务。



技术实现要素:

本发明提供一种基于神经网络的六维力矩传感器重力补偿方法及系统,以解决现有技术中所存在的一个或多个技术问题,至少提供一种有益的选择或创造条件。

为了实现上述目的,本发明提供以下技术方案:

一种基于神经网络的六维力矩传感器重力补偿方法,所述方法包括以下步骤:

步骤s100、获取六维力矩传感器的样本集,所述样本集包括训练样本集和测试样本集;所述样本集中的样本包括输入样本、以及与所述输入样本对应的输出样本;

步骤s200、建立广义回归神经网络,使用改进粒子群算法对广义回归神经网络的平滑因子进行优化,得到优化后的广义回归神经网络,所述平滑因子的维数与所述输入样本的维数之比为1:2;

步骤s300、通过所述训练样本集对优化后的广义回归神经网络进行训练,得到训练好的广义回归神经网络;

步骤s400、实时获取六维力矩传感器的输入数据,将采集得到的输入数据输入训练好的广义回归神经网络,得到输出数据,使用所述输出数据对六维力矩传感器检测到的六维数据进行重力补偿。

进一步,所述输入样本包括六维力矩传感器的姿态四元数,所述输出样本包括六维力矩传感器在无负载情况下的传感器检测到的六维数据。

进一步,所述步骤s200包括:

步骤s210、建立广义回归神经网络,调整广义回归神经网络中平滑因子的维数,使平滑因子的维数与训练样本集中输入样本的维数之比为1:2;

步骤s220、根据调整后的平滑因子重新建立广义回归神经网络中间层神经元的输出模型;

步骤s230、采用改进粒子群算法对所述平滑因子进行优化,得到优选平滑因子;

步骤s240、根据所述优选平滑因子得到优化后的广义回归神经网络。

进一步,步骤s220中,所述中间层神经元的输出模型为:

其中,spread1表示第一平滑因子,spread2表示第二平滑因子,test表示测试样本集中的输入样本,train表示训练样本集中的输入样本,middle-neuroneoutput表示所有中间层神经元的输出。

进一步,所述步骤s230包括:

步骤s231、将粒子位置的区间范围随机划分为若干个子区域,将每个子区域中的粒子群生成符合正态分布规律的粒子群落,将每个子区域以外的粒子作为随机生成的粒子群落;

步骤s232、使用局部搜索方法确定出全局优选粒子,将所述全局优选粒子作为全局粒子群算法的搜索方向;

步骤s233、构建全局粒子群算法中权重因子的指数衰减公式,使权重因子的变化趋势呈指数衰减;

步骤s234、根据所述权重因子和迭代次数生成全局粒子群算法中学习因子的权重,将所述权重作为全局粒子群算法中学习因子的自变量,建立学习因子的数学模型;所述学习因子包括自我学习因子、社会学习因子以及邻域学习因子;

步骤s235、根据所述学习因子确定全局粒子群算法,对确定好的全局粒子群算法进行训练,得到优选平滑因子。

进一步,步骤s232中,所述使用局部搜索方法确定出全局优选粒子,具体为:

根据粒子间的距离实时调整局部粒子群算法的拓扑半径,所述拓扑半径的大小与粒子间的距离正相关;

以二维坐标系的y轴为界,两端的粒子通过不同旋转方向进行螺旋拓扑;

当使用局部搜索方法迭代计算设定次数时,将该粒子作为全局优选粒子。

进一步,所述步骤s230还包括:

步骤s2301、将粒子位置的区间范围随机划分为若干个子区域,将每个子区域中的粒子群生成符合正态分布规律的粒子群落,将每个子区域以外的粒子作为随机生成的粒子群落;

步骤s2302、使用局部搜索方法确定出全局优选粒子,计算粒子群中每个粒子到全局优选粒子的距离值,按照所述距离值由小到大对全部粒子进行排序;

步骤s2303、选取排序在阈值前的粒子,以选取的最末一位粒子所在位置的数量级绝对值为参考值,所述阈值的取值范围为粒子总数的20%到30%;

步骤s2304、生成符合正态分布的新粒子群,生成的新粒子群中的粒子所在位置的数量级绝对值大于参考值的10%-20%;

步骤s2305、重复执行步骤s2301至步骤s2304,直至通过测试样本集对所述广义回归神经网络进行测试的评价指标达到设定阈值时,得到优选平滑因子。

一种基于神经网络的六维力矩传感器重力补偿系统,所述系统包括:

至少一个处理器;

至少一个存储器,用于存储至少一个程序;

当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述任一项所述的基于神经网络的六维力矩传感器重力补偿方法。

本发明的有益效果是:本发明公开一种基于神经网络的六维力矩传感器重力补偿方法及系统,本发明首先使用改进粒子群算法对广义回归神经网络的平滑因子进行优化,提高广义回归神经网络的预测精度,接着对该广义回归神经网络进行训练,利用训练好的广义回归神经网络对六维力矩传感器的输出进行实时预测,避免了复杂的力学建模步骤;通过对六维力矩传感器精准的重力补偿,能够提高工业机器人的力控精度。

附图说明

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

图1是本发明实施例中基于神经网络的六维力矩传感器重力补偿方法的流程示意图;

图2是本发明实施例中正态分布种群的示意图;

图3是本发明实施例中粒子初始化位置的示意图;

图4是本发明实施例中分方向分区域螺旋型拓扑的示意图;

图5是本发明实施例中惯性权重和学习因子函数的变化示意图。

具体实施方式

以下将结合实施例和附图对本申请的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本申请的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

参考图1,如图1所示为本申请实施例提供的一种基于神经网络的六维力矩传感器重力补偿方法,所述方法包括以下步骤:

步骤s100、获取六维力矩传感器的样本集;

其中,所述样本集包括训练样本集和测试样本集;所述样本集中的样本包括输入样本、以及与所述输入样本对应的输出样本;

步骤s200、建立广义回归神经网络,使用改进粒子群算法对广义回归神经网络的平滑因子进行优化,得到优化后的广义回归神经网络;

其中,所述平滑因子的维数与所述输入样本的维数之比为1:2;

步骤s300、通过所述训练样本集对优化后的广义回归神经网络进行训练,得到训练好的广义回归神经网络;

步骤s400、实时获取六维力矩传感器的输入数据,将采集得到的输入数据输入训练好的广义回归神经网络,得到输出数据,使用所述输出数据对六维力矩传感器检测到的六维数据进行重力补偿。

其中,所述训练样本集中的训练样本包括输入样本、以及与所述输入样本对应的输出样本,所述输入样本包括六维力矩传感器的姿态四元数,所述输出样本包括六维力矩传感器在无负载情况下的传感器检测到的六维数据;所述输入数据为实时获取的六维力矩传感器的姿态四元数,所述输出数据为对六维力矩传感器进行重力补偿的六维数据。

在一个实施例中,所述姿态四元数为根据四元数法计算得到的六维力矩传感器的姿态数值,所述六维数据为fx,fy,fz,tx,ty,tz;其中,fx表示所述六维力矩传感器的在x轴上检测到的力分量,fy表示所述六维力矩传感器的在y轴上检测到的力分量,fz表示所述六维力矩传感器的在z上检测到的力分量,tx表示所述六维力矩传感器的在x轴上检测到的力矩分量,ty表示所述六维力矩传感器的在y轴上检测到的力矩分量,tz表示所述六维力矩传感器的在z轴上检测到的力矩分量。

本实施例中,所述输入样本的维数和所述平滑因子的维数均为二维,所述输出样本的维数为六维,相应地,所述改进粒子群优化算法为二维的粒子群算法。本实施例中,平滑因子的维数与训练样本集中输入样本的维数之比为1:2,使得每一维平滑因子各自控制两个径向,通过对每一维平滑因子进行优化,可以提高神经网络的适应性。

在一个优选的实施例中,所述步骤s200包括:

步骤s210、建立广义回归神经网络,调整广义回归神经网络中平滑因子的维数,使平滑因子的维数与训练样本集中输入样本的维数之比为1:2;

步骤s220、根据调整后的平滑因子重新建立广义回归神经网络中间层神经元的输出模型;

步骤s230、采用改进粒子群算法对所述平滑因子进行优化,得到优选平滑因子;

步骤s240、根据所述优选平滑因子得到优化后的广义回归神经网络。

在一个优选的实施例中,步骤s220中,所述中间层神经元的输出模型为:

其中,spread1表示第一平滑因子,spread2表示第二平滑因子,test表示测试样本集中的输入样本,train表示训练样本集中的输入样本,middle-neuroneoutput表示所有中间层神经元的输出。

参考图2,本实施例中所有中间层神经元的输出即为图中的φ1至φn。

在一个优选的实施例中,所述步骤s230包括:

步骤s231、将粒子位置的区间范围随机划分为若干个子区域,将每个子区域中的粒子群生成符合正态分布规律的粒子群落,将每个子区域以外的粒子作为随机生成的粒子群落;

现有技术中,粒子群算法的初始化大多使用随机分布或混沌模型生成粒子位置,这两种方法与现实生物种群分布不符,本实施例中,采用正态分布与随机分布相结合的方法,对改进粒子群算法进行初始化,具体地,使用正态分布模型对所有群落初始化,并使用随机分布模型对群落中的落单个体初始化,避免全局粒子群算法陷入局部最优。实现正态分布与随机分布相结合初始化粒子群,这种模式更为符合现实世界中生物的分布情况。

在一个实施例中,在(-100,100)的范围内随机划分为16个区间,从而将改进粒子群算法中的粒子群分成16个群落,落在16个群落之外的其余粒子就像是生物世界中落单的个体随机遍布在这个范围内。符合正态分布规律的粒子群落如图3所示。

对改进粒子群算法初始化的数学公式如下:

xi=random(min,max.size)+r×gaussiandistributionrandom(min,max,size);

xall=[x1,x2,x3,......,xn];

其中,n表示粒子群的总数,i表示粒子群的编号,xi表示编号为i的粒子群,xall表示全部的粒子群,包括正态分布模型的粒子群和随机分布模型的粒子群,min表示粒子位置的最小值,max表示粒子位置的最大值,size表示粒子群的规模,random(min,max.size)表示随机生成的粒子群落;gaussiandistributionrandom(min,max,size)表示符合正态分布规律的粒子群落;r表示正态分布模型的标准差;

步骤s232、使用局部搜索方法确定出全局优选粒子,将所述全局优选粒子作为全局粒子群算法的搜索方向;

鉴于局部粒子群算法尽管计算速度慢,但有不易陷入局部最优的优点。本实施例中,分阶段使用局部粒子群算法和全局粒子群算法,在整个搜索阶段的前期使用局部粒子群算法,通过多次迭代计算,找出较优的全局优选粒子。将全局优选粒子作为全局粒子群算法的搜索方向。在迭代计算前期使用局部粒子群算法,其优点是避免粒子过早陷入局部最优。其目的是让整个种群快速找到适应度值较优的位置,为后期使用全局粒子群算法提供更加正确的全局最优点,若在迭代计算的前期就使用全局粒子群算法,虽然计算速度快,但是会容易陷入局部最优情况。

在一个优选的实施例中,步骤s232中,所述使用局部搜索方法确定出全局优选粒子,具体为:

根据粒子间的距离实时调整局部粒子群算法的拓扑半径,所述拓扑半径的大小与粒子间的距离正相关;

以二维坐标系的y轴为界,两端的粒子通过不同旋转方向进行螺旋拓扑;

当使用局部搜索方法迭代计算设定次数后,将该粒子作为全局优选粒子。

其中,设定次数的大小与粒子群的规模正相关,当局部粒子群算法收敛时,即可停止迭代,本领域技术人员可根据粒子群的规模调整设定次数的大小。

参考图4,本实施例中,在局部粒子群算法中提出一种新的领域拓扑方法:变径分向螺旋拓扑模型,即拓扑的半径是时变的,变化趋势与粒子间距离同向。而且以二维坐标系的y轴为界,两端的粒子使用不同旋转方向的螺旋拓扑。此方法可以加速局部搜索的速度,为两端的粒子提供搜索参考方向。

在一个实施例中,利用分区域分方向螺旋拓扑的方法找出每个原始粒子的邻域拓扑中最佳邻域粒子。分区域是指将特定区域按照需求分成两半,分方向是在两个平分区域中,螺旋拓扑的方向相反。从图4中可以看到螺旋拓扑的半径是变化的,这是经过调试得出的结果:在(-100,100)的区域,通过局部学习使区域范围缩小,每十次迭代范围缩小1/10,在进行30次迭代后,粒子群大部分粒子聚集在一点,范围在(-0.1,0.1)之间。

在局部粒子群公式中,邻域最佳粒子起到原始粒子的学习对象。每个粒子的邻域范围是一定的,设置3/4个邻域值。但是螺旋拓扑的半径是时变的,这样子做的目的是防止在局部搜索阶段后期,粒子间距离会缩小,但是如果螺旋拓扑保持一样的半径,就与粒子间距离不对等,会造成的无效学习,浪费计算机计算时间。

步骤s233、构建全局粒子群算法中权重因子的指数衰减公式,使权重因子的变化趋势呈指数衰减;

其中,权重因子的指数衰减公式为:weight(k)=l-0.0092k,k表示迭代次数,weight(k)表示全局粒子群算法在每次迭代时的权重因子,k≤30。

步骤s234、根据所述权重因子和迭代次数生成全局粒子群算法中学习因子的权重,将所述权重作为全局粒子群算法中学习因子的自变量,建立学习因子的数学模型;所述学习因子包括自我学习因子、社会学习因子以及邻域学习因子;

所述自我学习因子的数学模型为:

所述社会学习因子的数学模型为:

所述邻域学习因子的数学模型为:

其中,c1表示自我学习因子,c2表示社会学习因子,c3表示邻域学习因子;iterationmax表示全局粒子群算法的最大迭代次数,yk表示权重,作为学习因子的自变量。

本实施例中,在使用全局粒子群算法阶段,为了避免广义回归神经网络容易陷入局部最优的缺点,首先对全局粒子群算法中的自我学习因子、社会学习因子以及邻域学习因子进行改进,通过构建权重因子和学习因子的关系,提出基于权重因子变化的学习因子的方法。权重因子的变化趋势呈指数衰减,权重因子与迭代量组合一种新的线性关系,以作为学习因子的自变量。

参考图5,yk作为学习因子的自变量,其由迭代次数k和权重因子weight(k)决定。k逐渐变大,weight(k)逐渐减少,则yk逐渐变大。而自我学习因子c1,社会学习因子c2,邻域学习因子c3均呈从大到小缓慢变化的趋势。

在整个迭代计算的前期,进行的是大范围搜索,粒子依靠自我学习经验和邻域学习经验,在前期阶段,两个系数的变化都是从大到小缓慢变化,经实验总结出,在大范围个体依靠自我经验和邻域经验进行搜索时,c1和c3的范围在(2,3)都有较好的效果。

c2作为社会学习因子,由于使用的是局部粒子群算法和全局粒子群算法分阶段搜索,所以社会学习经验在后期进行局部依靠自我学习经验和全局经验进行的搜索过程中才起作用,而且在这个阶段大多需要依赖社会学习经验而不是自身学习经验,所以c2是从小缓慢变大,经实验发现c2的范围在(0,2)之间是最佳的,c2早后期若超过2,会导致粒子无法收敛,配合逃逸机制来看,在逃逸机制已完成粒子的飞跃,若c2过大,就把社会学习经验项过度放大,就会出现该次学习中,若使用恰当的c2就可能找到与全局目标点最为相近的全局最优点,但c2过大就会跳过这个全局最优点,造成过度学习的现象,甚至在后期粒子会出现发散的情况。

步骤s235、根据所述学习因子确定全局粒子群算法,对确定好的全局粒子群算法进行训练,得到优选平滑因子。

具体地,将确定好的学习因子替换全局粒子群算法中的对应参数,对全局粒子群算法进行迭代计算,当全局粒子群算法满足收敛条件时,完成对全局粒子群算法的训练,得到全局最优点,即得到优选平滑因子。

在又一个优选的实施例中,所述步骤s230包括:

步骤s2301、将粒子位置的区间范围随机划分为若干个子区域,将每个子区域中的粒子群生成符合正态分布规律的粒子群落,将每个子区域以外的粒子作为随机生成的粒子群落;

步骤s2302、使用局部搜索方法确定出全局优选粒子,计算粒子群中每个粒子到全局优选粒子的距离值,按照所述距离值由小到大对全部粒子进行排序;

步骤s2303、选取排序在阈值前的粒子,以选取的最末一位粒子所在位置的数量级绝对值为参考值,所述阈值的取值范围为粒子总数的20%到30%;

步骤s2304、生成符合正态分布的新粒子群,生成的新粒子群中的粒子所在位置的数量级绝对值大于参考值的10%-20%;

步骤s2305、重复执行步骤s2301至步骤s2304,直至通过测试样本集对所述广义回归神经网络进行测试的评价指标达到设定阈值时,得到优选平滑因子。

具体的,将测试样本集输入所述广义回归神经网络进行测试,当所述广义回归神经网络的评价指标达到设定阈值时,得到优选平滑因子。本实施例适用于迭代次数超过30次的情况。

在一个实施例中,所述评价指标为广义回归神经网络的均方误差,所述设定阈值的大小为10-4,即mse≤10-4,其中,mse表示所述广义回归神经网络的均方误差,均方误差的计算公式为:其中f(xi)为根据广义回归神经网络得到的粒子xi的预测值,yi为粒子xi的期望输出值,m表示测试样本的总数量。

本实施例中,以粒子间距离之和作为评价标准,当粒子间距离之和在迭代中停滞变化,且没有满足迭代停止要求时,则判定为陷入了局部最优;

陷于局部最优情况的最大特征是其位置的数量级绝对值不变,若想逃逸出该种环境就要改变数量级绝对值。菌群算法中有淘汰细菌再繁殖细菌的理论,在本发明中每次迭代都淘汰70%到80%的劣势粒子,判断粒子是否处于劣势的标准是每个粒子到全局优选粒子的距离。

本发明中每次迭代的生存下来的20%到30%的粒子,以生存下来最末一位粒子位置的数量级绝对值为参考值,设置新生成粒子的位置数量级绝对值大于参考值的10%-20%。

新生成粒子的方法是符合现实环境种群的正态分布,正态分布的中心点的数量级取值与新生成的粒子的数量级绝对值相近。如此在每次迭代,在出现停滞情况时,整个粒子群的位置就会发生改变,粒子间距离之和也发生了改变,达到逃逸的效果。动态位置限制的视线是依托上述逃逸策略,每次迭代计算时,利用学习因子得到每个粒子的新位置,再使用动态位置限制。动态位置限制的范围小于参考值的10%-20%。

在一个实施例中,数量级的计算根据的是个体最优粒子到全局最优粒子的距离,由于最优目标点是未知的,所以粒子的排序的依据只能上述两种粒子之间的距离来进行,通过排序得到1-1000的排名。全局最优点是第一名粒子,然后找到排名在第50名的粒子,这个点作为新群落的中心点。不取最优点为新群落中心点的原因是:全局最优点附近粒子聚集密集,若再以全局最优点,那么再生成的点大多会聚集在全局最优点附近,粒子间距离相对较小,造成粒子过度重合,使得生物种群多样性变差。若选排名优良的粒子,该点一般在中间位置,粒子间距离相对较大,在这些位置重新生成粒子,即能增加种群多样性,也可以提升粒子的速度。

与图1的方法相对应,本发明实施例还提供一种基于神经网络的六维力矩传感器重力补偿系统,所述系统包括:

至少一个处理器;

至少一个存储器,用于存储至少一个程序;

当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述任一实施例所述的基于神经网络的六维力矩传感器重力补偿方法。

上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。

所述处理器可以是中央处理单元(central-processing-unit,cpu),还可以是其他通用处理器、数字信号处理器(digital-signal-processor,dsp)、专用集成电路(application-specific-integrated-circuit,asic)、现场可编程门阵列(field-programmable-gate-array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述基于神经网络的六维力矩传感器重力补偿系统的控制中心,利用各种接口和线路连接整个基于神经网络的六维力矩传感器重力补偿系统可运行装置的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述基于神经网络的六维力矩传感器重力补偿系统的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart-media-card,smc),安全数字(secure-digital,sd)卡,闪存卡(flash-card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

尽管本申请的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求,考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本申请的预定范围。此外,上文以发明人可预见的实施例对本申请进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本申请的非实质性改动仍可代表本申请的等效改动。

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