蛇形机器人管道攀爬的快速自适应控制方法与流程

文档序号:18405453发布日期:2019-08-10 00:20阅读:311来源:国知局
蛇形机器人管道攀爬的快速自适应控制方法与流程

本发明涉及机器人技术领域,更具体地,涉及一种蛇形机器人管道攀爬的快速自适应控制方法。



背景技术:

无监督学习是一种机器学习方法,用于发现数据中的模式,对于无标签的输入数据,可以很好地根据其内部的结构和规律,将其归类为不同的集合,本发明使用的是无监督学习中的k-means++算法,用于对大量的数据进行聚类操作,便于后续选取和修改最敏感参数。

蛇形机器人是仿生机器人,从20世纪70年代就已经有学者开始进行研究,目前的蛇形机器人的运动方式有平面运动、三维运动和万向运动,适用于在狭窄区域、崎岖的山地、管道等地方进行运动,能够实现检测、救援、探索等功能。

现有的蛇形机器人,大多都是专门针对某一类型的管道来进行定制的,专门为攀爬管道而设计这种硬件装置,没有对应的自主调节软件来根据当前的状态来进行自主调控,自适应性不足。在遇到不同直径的管道合不同的场景下,需要花费大量的人力物力来对设备进行调整。



技术实现要素:

本发明为克服上述现有技术所述的至少一种缺陷,提供一种蛇形机器人管道攀爬的快速自适应控制方法,能够实现蛇形机器人自适应的进行管道攀爬。

为解决上述技术问题,本发明采用的技术方案是:一种蛇形机器人管道攀爬的快速自适应控制方法,包括以下步骤:

s1.定义参数的变化空间;定义蛇形机器人步态控制参数:幅值a、频率ω和相位∈的变化空间,对所有参数进行全排列组合;

s2.控制蛇形机器人在不同参数组合下进行管道攀爬,在一定周期内收集机器人的加速度和关节角度;

s3.聚类归簇;用k-means++算法将收集到的数据进行聚类操作,归为n个簇;

s4.选择最敏感参数;实时运动时,周期性采集数据,将数据进行归簇操作,选取同簇中的z轴加速度比实时z轴加速度大的训练数据,计算控制参数的加速度熵方差,选出最敏感参数;

s5.更新最敏感参数值;首先计算拟合估计函数fw,用平方误差作为误差函数,使用梯度下降算法更新权重w直到权重稳定后,计算出新的最敏感参数值,用于蛇形机器人的步态控制中。

在本发明中,离线工作算法:收集离线数据进行无监督训练,用k-means++算法进行聚类。运行时工作算法:实时采集数据,基于训练的聚类结果进行归簇,计算各控制参数的加速度熵方差,选出最敏感参数,用回归算法修改参数使得机器人顺利攀爬管道。

本发明提出的蛇形机器人管道攀爬的快速自适应控制算法首先定义控制参数的变化空间,让机器人在不同参数组合下进行管道攀爬,以2秒为周期记录机器人的加速度和关节角度,将所有采集到的数据整合成一个完备的数据集,并对数据中的关节角度属性所构成的向量使用k-means++算法进行聚类。之后,在实时控制中同样以2秒为周期收集实时的关节角度、加速度和当前控制参数,通过归簇操作选取同簇的数据集,对每个控制参数计算加速度熵方差来衡量对机器人运动的影响程度,选择影响程度最大的控制参数,再用加权回归更新最敏感参数值后代入控制系统从而改变蛇形机器人的运动步态。不需要耗费人力资源来手动控制机器人;能够自主攀爬不同直径的管道,并且可以攀爬不同直径组合而成的管道,适应性强。

进一步的,所述的s2步骤具体包括在仿真环境中使用每个参数组合进行管道攀爬,并且以一定周期记录机器人的z轴方向上的加速度、每个关节的角度和此时的控制参数幅值a、频率ω和相位∈。

进一步的,所述的s3步骤在使用k-means++算法时,使用手肘法,选择簇的个数,随机选取n个簇心,并将数据集归簇,接着不断地更新簇心的位置和数据在n个簇中的归属,直到簇心在误差范围内不再变化。

进一步的,所述的s4步骤具体包括:

s41.在蛇形机器人实时运行中采集数据,计算该数据到每一个簇心的距离,选择最近距离的簇心,将其归簇到该数据簇中;将该簇中z轴的加速度大于实时z轴的加速度的数据组成一个集合p;

s42.对集合p中的加速度做离散化预处理,按照下式进行处理:

式中,ld为可调步长,az,i为集合p中第i项数据的z轴加速度的值,anew,i是集合p中z轴加速度离散化后z轴加速度的值;

s43.对于一个步态参数有多种可能的取值,用si,j来表示控制参数矢量,i的值为0、1、2分别代表幅值a、频率ω、相位∈,si,j代表控制参数i在当前数据集中第j个可能的取值,计算参数i的值为第j个可能取值时的熵值h(si,j):

式中,p(anew,k)是控制参数i的值等于其在这个数据集中第j个取值的所有情况中,z轴加速度的离散化速度等于anew,k的占比比例;

s44.计算步态参数i的熵方差vari:

式中,为当控制参数i的所有取值情况的加速度熵的均值,ni为控制参数i的所有可能取值的数量;

s45.对熵方差进行归一化:

s46.使用轮盘赌选择算法随机挑选最敏感参数。

进一步的,所述的s5步骤具体包括:

s51.采用加权回归分析方法更新最敏感步态参数的值,使用梯度下降算法求解拟合回归函数中的加权最小二乘问题,其中拟合估计函数如下:

式中,w为拟合函数的系数矢量,m为系数的个数,pt为实时采集的蛇形机器人的关节角度;

误差函数为:

pa=[pa,1pa,2…pa,n]

q=[qa,1qa,2…qa,n]t

式中,n为集合p中z轴加速度大于实时z轴加速度的数据数量,pa为集合p中z轴加速度大于实时z轴加速度的数据对应的关节角度构成的向量,q为集合p中z轴加速度大于实时z轴加速度的数据对应的最敏感控制参数组合而成的向量。

s52.根据梯度下降原理,对d(w)求导:

s53.为了保证优势数据矢量拟合和加速回归,对优势数据矢量矩阵pa根据其对应的加速度采取加权操作:

式中,ls为可变学习步长,m是学习率矩阵;

s54.按下式更新系数矢量wnew:

s55.不断进行迭代直到wnew的值趋于稳定状态;迭代终止时得到最优拟合系数wbest,将wbest带入公式

fw(pt)=wtpt

s56.求得最敏感参数的回归结果,将该结果用于步态的控制中,其他参数保留原来的值,只修改最敏感参数的值。

与现有技术相比,有益效果是:本发明提供的一种蛇形机器人管道攀爬的快速自适应控制方法,不需要耗费人力资源手动控制机器人运行,能够实现自主攀爬不同直径的管道,并且可以攀爬不同直径组合而成的管道,适应性强;本发明从软件层面实现攀爬效果,不受制于硬件的影响。

附图说明

图1是本发明控制方法的整体流程图。

图2是本发明k-means++聚类过程流程图。

图3是本发明最敏感参数选取的流程图。

图4是本发明更新最敏感参数值的流程图。

具体实施方式

附图仅用于示例性说明,不能理解为对本发明的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。附图中描述位置关系仅用于示例性说明,不能理解为对本发明的限制。

如图1所示,一种蛇形机器人管道攀爬的快速自适应控制方法,包括以下步骤:

s1.定义参数的变化空间;定义蛇形机器人步态控制参数:幅值a、频率ω和相位∈的变化空间,对所有参数进行全排列组合;

s2.控制蛇形机器人在不同参数组合下进行管道攀爬,在一定周期内收集机器人的加速度和关节角度;

s3.聚类归簇;用k-means++算法将收集到的数据进行聚类操作,归为n个簇;

s4.选择最敏感参数;实时运动时,周期性采集数据,将数据进行归簇操作,选取同簇中的z轴加速度比实时z轴加速度大的训练数据,计算控制参数的加速度熵方差,选出最敏感参数;

s5.更新最敏感参数值;首先计算拟合估计函数fw,用平方误差作为误差函数,使用梯度下降算法更新权重w直到权重稳定后,计算出新的最敏感参数值,用于蛇形机器人的步态控制中。

具体的,s2步骤具体包括在仿真环境中使用每个参数组合进行管道攀爬,并且以一定周期记录机器人的z轴方向上的加速度、每个关节的角度和此时的控制参数幅值a、频率ω和相位∈。

如图2所示,s3步骤在使用k-means++算法时,使用手肘法,选择簇的个数,随机选取n个簇心,并将数据集归簇,接着不断地更新簇心的位置和数据在n个簇中的归属,直到簇心在误差范围内不再变化。

如图3所示,s4步骤具体包括:

s41.在蛇形机器人实时运行中采集数据,计算该数据到每一个簇心的距离,选择最近距离的簇心,将其归簇到该数据簇中;将该簇中z轴的加速度大于实时z轴的加速度的数据组成一个集合p;

s42.对集合p中的加速度做离散化预处理,按照下式进行处理:

式中,ld为可调步长,az,i为集合p中第i项数据的z轴加速度的值,anew,i是集合p中z轴加速度离散化后z轴加速度的值;

s43.对于一个步态参数有多种可能的取值,用si,j来表示控制参数矢量,i的值为0、1、2分别代表幅值a、频率ω、相位∈,si,j代表控制参数i在当前数据集中第j个可能的取值,计算参数i的值为第j个可能取值时的熵值h(si,j):

式中,p(anew,k)是控制参数i的值等于其在这个数据集中第j个取值的所有情况中,z轴加速度的离散化速度等于anew,k的占比比例;

s44.计算步态参数i的熵方差vari:

式中,为当控制参数i的所有取值情况的加速度熵的均值,ni为控制参数i的所有可能取值的数量;

s45.对熵方差进行归一化:

s46.使用轮盘赌选择算法随机挑选最敏感参数。

如图4所示,s5步骤具体包括:

s51.采用加权回归分析方法更新最敏感步态参数的值,使用梯度下降算法求解拟合回归函数中的加权最小二乘问题,其中拟合估计函数如下:

式中,w为拟合函数的系数矢量,m为系数的个数,pt为实时采集的蛇形机器人的关节角度;

误差函数为:

pa=[pa,1pa,2…pa,n]

q=[qa,1qa,2…qa,n]t

式中,n为集合p中z轴加速度大于实时z轴加速度的数据数量,pa为集合p中z轴加速度大于实时z轴加速度的数据对应的关节角度构成的向量,q为集合p中z轴加速度大于实时z轴加速度的数据对应的最敏感控制参数组合而成的向量。

s52.根据梯度下降原理,对d(w)求导:

s53.为了保证优势数据矢量拟合和加速回归,对优势数据矢量矩阵pa根据其对应的加速度采取加权操作:

式中,ls为可变学习步长,m是学习率矩阵;

s54.按下式更新系数矢量wnew:

s55.不断进行迭代直到wnew的值趋于稳定状态;迭代终止时得到最优拟合系数wbest,将wbest带入公式

fw(pt)=wtpt

s56.求得最敏感参数的回归结果,将该结果用于步态的控制中,其他参数保留原来的值,只修改最敏感参数的值。

实施例1

如图1所示,该方法包括:

步骤1:定义参数空间并进行全排列组合。蛇形机器人步态控制参数包括幅值(a)、频率(ω)和相位(∈),a的变化区间为[40,80],变化步长为5;ω的变化区间为[1.5,3],步长为0.5;∈的变化区间为[0,5],变化步长为1。对所有参数进行全排列组合。

步骤2:选择控制参数组合并收集数据。

步骤3:聚类归簇。

步骤4:选择最敏感参数。

步骤5:更新最敏感参数值,并应用到蛇形机器人的控制中。

如图2所示,为k-means++聚类过程,具体流程如下:

s31.确定聚类个数n。使用手肘法,选择簇的个数:

式中,nk为簇心个数,si为每个簇中成员数据到簇心的距离的均值,nk从1开始进行尝试,计算簇方差最小时的nk,经过尝试,本发明使用的nk=25;

s32.选择簇心。随机选取25个簇心,并将数据集归簇;

s33.不断地更新簇心的位置和数据在25个簇中的归属,直到簇心在误差范围内不再变化;

s34.得到n个簇心结果。

如图3所示,为最敏感参数的选取,具体流程如下:

s41:在蛇形机器人实时运行中采集数据,进行归簇。

s42:将该簇中z轴的加速度大于实时z轴的加速度的数据组成优势数据集合p。

s43:对集合p中的加速度做离散化预处理,ld可变步长设置为0.1。

s44:计算每种参数每个取值的熵值。

s45:计算熵方差。

s46:对熵方差进行归一化处理。

s47:通过轮盘赌算法求出最敏感参数。

如图4所示,为最敏感参数的更新过程,具体流程如下:

s51:设置拟合估计函数:

s52:初始参数设置,矢量系数w初始化为0,ls可变步长设置为0.5。

s53:使用梯度下降算法更新矢量系数。

s54:重复更新获得最优拟合系数矢量,带入s51的公式求得最敏感参数值。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

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