一种超冗余机械臂的控制方法与流程

文档序号:18175808发布日期:2019-07-13 10:08阅读:228来源:国知局
一种超冗余机械臂的控制方法与流程

本发明涉及一种超冗余机械臂的控制方法。



背景技术:

在抢险救灾、辐射设备的故障检修、有毒材料的采样、管道泄露监测等方面,操作空间狭小且面临较大危险,不适合人类或大型装备进入现场开展工作。同时由于传统的关节式机器人的机电部件安装于机械臂杆件连接处,且质量较大,外形尺寸和载荷比难以满足狭小空间作业的要求,因此,体型纤细、运动灵活的超冗余机械臂成为解决这些复杂问题的一个重要选择。但是该机械臂环节众多,结构较为复杂,对于它的运动学参数辨识便成了一个难题,从而造成了精准控制的难题。

图1是线绳驱动超冗余机械臂模型的一个关节段,该超冗余机械臂由多个相同的关节段组成,对于每个关节段而言,又有若干个联动十字轴关节,联动关节之间建立了关联坐标系。根据建立的关节坐标系,可以得到其对应的d-h参数表如表1所示。所谓d-h参数即为机械臂相邻关节之间的角度与偏移量,用来建立相邻关节之间的转换关系。考虑到柔性机械臂关节段的小关节之间采用了联动的运动方式,在任何的构型下各个旋转轴之间理论上具有等角度的约束关系。因此对于任意的关节段m其正运动学只需利用两个变量进行表示即可,表示为公式1:

7sm=1tm,2·2tm,3·3tm,4·4tm,5…10tm,11·11tm,13=f(θ2m-1,θ2m)

表1:联动关节段dh参数表

虽然有多种方法可以解算出驱动空间与关节空间之间的正逆运动学。然而,在柔性机械臂实际工作过程中,由于外界各种因素以及机械臂线绳受到拉力变形情况的影响,线绳长度发生变化。此时,我们求运动学正解时,给定三根驱动线绳的长度值时,关节空间的两个角度变量发生了偏差,从而得不到精确的末端位置。因此,我们需要通过对柔性机械臂的参数进行辨识,补偿机械臂的驱动绳长,从而做到对机械臂的精确控制。

对于传统的机器人进行参数辨识从而做到对机械臂的精确控制,一般会进行如下几个步骤:1)运动学建模;2)位姿测量;3)参数求解;4)参数补偿。

对于机器人的参数辨识,传统的辨识算法有:扩展卡尔曼滤波法、levenberg-marquardt算法、递归线性方程和扩展卡尔曼滤波法、基于s模型的旋转半径法、极大似然方法。这些方法有明显的优缺点,扩展卡尔曼滤波法用来进行运动学参数辨识,它是经典的求解非线性系统的方法,能够处理参数估计中的不确定问题。但是该方法没有考虑误差分布情况,有时参数辨识精度较低,且容易发散。levenberg-marquardt算法是将梯度下降法和牛顿法结合起来,算法局部收敛性强、收敛快,鲁棒性强,但是计算所占内存空间较大。

线绳驱动超冗余机械臂,由于关节数目多,运动情况复杂,以上传统辨识方法难以使用。现有技术对于超冗余柔性机械臂的参数辨识一般通过对关节角进行直接补偿与操作,运算难度大,参数多,难以得到比较精确的结果。

另外,现有技术还有如下缺点:

·基于运动学模型进行参数建模,难以找到驱动空间发生变化时,参数变化导致的末端误差规律,进而无法对机械臂进行补偿;

·基于具体模型进行建模,参数发生改变时,建模方法也发生改变,针对不同的模型,算法移植性不强;

·对机器人进行参数辨识时,计算方法复杂,算法复杂度较高,计算时间比较长。



技术实现要素:

本发明的目的是为了解决现有技术中的不能很好补偿机械臂的驱动绳长问题,提出一种超冗余机械臂的控制方法。

为解决上述技术问题,本发明提出一种超冗余机械臂的控制方法,包括如下步骤:s1、根据机械臂的运动学分析,得到模块化关节自由度变量和对应的驱动绳索长度之间的关系;s2、测量出机械臂各个关节位置参数,得到实际的驱动线绳长度;s3、通过对柔性机械臂的参数进行辨识,补偿机械臂的驱动绳长,从而做到对机械臂的精确控制。

在本发明的一些实施例中,还包括如下特征:

步骤s1包括:s11、解算出操作空间和关节空间之间正逆运动学的关系,得到机械臂末端位姿在三维空间与模块化关节两个自由度变量之间的关系,得到机械臂末端位姿在三维空间与模块化关节两个自由度变量之间的关系;s12、解算绳索驱动空间与关节空间的正逆运动学的关系,得到模块化关节两个自由度变量ψ、α和对应的三个驱动绳索长度li之间的关系。

步骤s2中,得到实际的驱动线绳长度的方法是:通过对位置参数进行处理,得到关节角参数,通过运动学逆解,解算出关节空间与驱动空间的关系,得到实际的三个驱动线绳长度。

步骤s3中,利用对神经网络模型进行训练而得到的实时补偿模型,对驱动空间的三根驱动绳进行补偿。

步骤s3中得到实时补偿模型的方法是:以理论上的三根驱动线绳长度为输入,以解算的三个驱动线长为输出,基于数据源,建立神经网络模型并进行训练,得到实时补偿模型。

步骤s2中,测量系统,包括多个标定相机,通过多个相机与定位杆件建立一个基坐标系,通过在待测量物体上放置靶球,利用反射原理,对靶球进行定位,从而得到物体相对于基坐标系的实际坐标值。

通过在机械臂关节上放置多个靶球,对靶球进行位置跟踪,得出关节上点的位置信息,对位置信息进行处理和解算,得出关节的运动情况。

对于测量点的位置信息,得到测量点的位置矩阵,对位置进行转化,得到关节角信息,最终带入运动学模型,求解多组驱动线长的实际值;批量保存三根驱动绳长的理论值与实际值,建立数据集。

步骤s3中,建立以原始理论绳长为输入,以实际绳长为输出的三输入三输出神经网络模型。

本发明还涉及一种计算机介质,其存储有计算机程序,所述计算机程序用于被执行以实现上述的方法。

与现有技术相比,本发明的有益效果有:对于超冗余柔性机械臂进行运动学分析,得到模块化关节自由度变量和对应的驱动绳索长度之间的关系,从而使复杂的参数补偿变成了简单的驱动线绳长的补偿;进而通过对柔性机械臂的参数进行辨识,做到对机械臂的精确控制。

本发明的其他一些有益效果,将在实施例中得到进一步说明。

附图说明

图1是超冗余机械臂段示意图。

图2a是关节示意图。

图2b是本发明实施例关节简化等效图。

图3是本发明实施例关节模型坐标系分析图。

图4是本发明实施例绳索驱动超冗余臂运动学空间关系描述示意图。

图5a是本发明实施例optitrack测量系统原理图。

图5b是本发明实施例关节测量装置实物图。

图6是本发明相邻机械臂关节测量模型示意图。

图7是本发明实施例驱动线绳补偿神经网络模型示意图。

图8是本发明实施例训练网络上位机系统。

具体实施方式

为了使本发明实施例所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者间接在该另一个元件上。当一个元件被称为是“连接于”另一个元件,它可以是直接连接到另一个元件或间接连接至该另一个元件上。另外,连接即可以是用于固定作用也可以是用于电路连通作用。

需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多该特征。在本发明实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

实施例1

本实施例主要进行了如下改进:

1、对于超冗余柔性机械臂进行建模,求逆解,将关节角转化为驱动空间的线绳长度,大大减少了需要辨识的运动学参数,运算难度大大降低,参数大大减少;

2、基于大量的测量数据进行参数建模,不必得到参数之间的关系,不需要得到输入输出之间的变化规律,直接根据输入得到输出,对机械臂进行直接补偿;

3、基于数据进行建模,参数发生改变时,建模方法不发生改变,只需将测量的实时数据带入模型,针对不同的数据,模型均可使用,模型移植性强;

4、对机器人进行参数辨识时,本专利计算方法简单,计算时间大大缩短;

5、针对参数辨识模型,开发了一个参数训练网络的上位机系统,可以实时改变参数和系统权值,得到不同的模型。

本实施例在简化了关节的三维模型的基础上建立了单个模块化关节的运动学模型,解算出驱动空间与关节空间之间的正逆运动学。

本实施例利用optitrack(一种三维运动捕捉系统)测量系统,测量出机械臂各个关节位置参数,通过对位置参数进行处理,得到关节角参数,通过运动学逆解,解算出关节空间与驱动空间的关系,得到实际的三个驱动线绳长度。问题转化为对线绳进行补偿,以理论上的三根驱动线绳长度为输入,以解算的三个驱动线长为输出,这样,大大简化了多关节模型,使得对机械臂的参数辨识成为可能。基于大量数据源,建立神经网络模型,避免关节之间的复杂建模关系,只考虑输入输出情况。相比于传统方法,本专利避免了对各个关节角进行补偿,而是通过运动学转化,对驱动空间进行了补偿,大大减少了参数个数。提出并将神经网络模型应用于超冗余机械臂的运动学参数辨识,建立了数据集,通过数据来训练神经网络模型,然后得到实时补偿模型,对驱动空间的三根驱动绳进行了补偿。

如图2a所示,绳索驱动超冗余机械臂的单个关节模块系统中具有3个驱动绳索输入,2个角度自由度输出。单个关节依靠3个驱动线绳进行驱动,线绳运动互不干扰,从而实现机械臂关节的三维空间运动。因此,为了准确的构造绳驱动机械臂关节的转动角度与关节处绳索长度之间的关系,本文将关节模型进行简化,建立了单关节的运动学模型,如图2b所示。

在图2a、2b中,面a1a2a3、面b1b2b3分别代表布线圆盘1和布线圆盘2,线段a1b1、a2b2、a3b3依次表示三个独立的绳索l1、l2、l3,点p则代表关节的中心。分别以面b1b2b3、面a1a2a3中心o1、o2为原点,关节两个自由度旋转的方向为x、y轴,关节臂杆轴心的方向为z轴,建立坐标系{1}、{2}。关节的中心点p则固定不变,为方便分析计算,在关节中心点处建立中间过渡坐标系{0},如图3所示。

假设关节初始位置时两圆盘之间的距离为2d,那么对于坐标系{0}、{1},如上图所示,当{1}先绕其x轴旋转α角,再继续往上平移后与{0}重合。于是可以得到齐次变换矩阵,如公式2:

对于坐标系{0}、{2},坐标系{0}绕其y轴旋转ψ角,再继续沿着旋转后的坐标系的z轴往上平移d后与{2}重合。于是可以得到齐次变换矩阵,如公式3:

于是根据链式法则,可以知道坐标系{1}、{2}之间的变化矩阵为,公式4:

在圆盘2上任意取一点b1,通过分析可以知道∠b1o2x2=β,那么在圆盘1上与b1对应点a1,也有,于是在坐标系{1}中有公式5:

在坐标系{2}中有公式6:

利用前面计算的齐次变换矩阵,进行计算,可以得到在坐标系{1}中的1b1为(公式7):

于是进行进一步计算可以得到绳子长度为(公式8):

同理,对于绳索a2b2、a3b3,那么有(公式9):

因此,可以绳索的长度可以统一地表示为(公式10):

由此,由关节角度到驱动绳长,便解算出关节的驱动空间与关节空间的逆运动学问题。而同时,其正运动学的求解则是在已知||a1b1||、||a2b2||、||a3b3||的情况下,联立以上三个式子,解算出关节的角度ψ、α的关系。

根据前面分析的绳索驱动超冗余机械臂结构,其运动学分析相对复杂,为了方便运动学分析,将运动学模型分为两个部分。包括传统机器人中的关节空间和操作空间之间的映射关系,以及关节空间和线绳驱动空间之间的复杂映射关系。因此其运动学空间关系描述如图4所示。

由图4可以知道,机械臂的运动学分析可以由两步完成。(1)解算出操作空间和关节空间之间正逆运动学的关系,得到机械臂末端位姿在三维空间与模块化关节两个自由度变量ψ、α之间的关系。(2)解算绳索驱动空间与关节空间的正逆运动学的关系,得到模块化关节两个自由度变量ψ、α和对应的3个驱动绳索长度li之间的关系。

然而,在柔性机械臂实际工作过程中,由于外界各种因素以及机械臂线绳受到拉力变形情况的影响,线绳长度发生变化。此时,我们求运动学正解时,给定三根驱动线绳的长度值时,关节空间的两个角度变量发生了偏差,从而得不到精确的末端位置。

因此,我们需要通过对柔性机械臂的参数进行辨识,补偿机械臂的驱动绳长,从而做到对机械臂的精确控制。

数据的采集与处理

如图5a、5b所示,该系统为optitrack测量系统,该系统主要由多个标定相机(图5a中a\b\c\d\e\f)组成,中间区域是系统的测量区域(立内侧内测空间区域)。剩下部分如图5b所示,该系统通过多个相机与定位杆件(建立坐标系所用,具体工件未显示)建立一个基坐标系,通过在待测量物体(图5b中放置在平台上部分)上放置靶球(图5b中带座球体),利用反射原理,对靶球进行定位,从而得到物体相对于基坐标系的实际坐标值。通过在机械臂关节上放置多个靶球,对靶球进行位置跟踪,得出关节上点的位置信息,对位置信息进行处理和解算,便可以得出关节的运动情况。

为了方便测量与计算,不考虑角度ψ的情况,将机械臂在平面内进行运动。对于机械臂的每个十字轴关节,放置两个靶球,下图6是两个相邻十字轴关节的测量模型,a和b位于相同关节,c与d位于另外一个关节,如同所示,求出相邻关节之间的转动角度α。以此类推,对于超冗余机械臂的每个关节都进行处理,得到机械臂实际运动学参数情况,对于机械臂进行求运动学逆解,求解出驱动绳长的实际值,同时记录下此时驱动绳长的理论给定值。

对于测量点的位置信息,该测量系统将其保存在指定文件中,该文件批量保存位置点,因此我们得到测量点的位置矩阵,应用上述方法对位置进行转化,便可以得到大量的关节角信息,最终带入运动学模型,求解多组驱动线长的实际值。批量保存三根驱动绳长的理论值与实际值,建立数据集。

参数辨识模型的构建

神经网络一般由三部分组成,分别是输入层,隐藏层和输出层。隐藏层可以根据需要,选择是一层,二层或者多层。一般情况而言来说,使用一层隐藏层,以及输出层使用非线性函数已经可以适用绝大数问题。多加隐藏层可以用来改进结果,提高模型准确率,但同时会加大训练的时间。根据超冗余柔性机械臂绳长的情况,设计如图所示:以原始理论绳长为输入,以实际绳长为输出的三输入三输出神经网络模型,中间为隐藏层,图示中隐藏层为两层,给出部分隐藏节点。

如图7,驱动线绳补偿神经网络模型示意图。

对于该神经网络,基于数据对该网络进行训练。训练神经网络模型,一般具有以下步骤:

1、设置神经网络层数和网络模型迭代次数以及学习率;

2、初始化网络各层权重,将网络各层的初始误差设为0;

3、迭代计算正向传播过程中,隐藏层节点的输入,隐藏层节点输出以及输出层的输出;

4、迭代计算反向传播过程中,各个输出节点的误差以及各个隐藏层节点的误差;

5、通过误差,更新网络模型各个节点的权值,重复进行步骤3)以及步骤4);

6、当误差收敛或者达到迭代次数后,结束迭代。

对于本专利中的具体神经网络而言,输入为n个(n为数据中训练集三条绳长理论值的组数)3*1的矩阵x=[l1l2l3]t,输出为n个3*1的矩阵y=[l′1l′2l′3]t。随机初始化网络权值参数:输入层到隐藏层1的权值隐藏层1到隐藏层2的权值隐藏层2到输出层的权值参数则隐藏层1的输入隐藏层1的输出(即隐藏层2的输入)隐藏层2的输出最终输出层输出o.其中,f(x)表示激活函数,由正向传播网络可以得到公式11:

由正向传播得到结果之后,再带入反向网络,求得网络权值参数的该变量,如下公式12:

对权值进行更新,可以得到下一次迭代网络的权值参数(公式13):

当迭代次数超过设定的周期数或相对于前一个周期,参数的改变量均太小(小于设定阈值),参数趋于稳定时,停止对网络进行训练。因此,我们便可以得到对驱动绳长进行补偿的模型。在实际训练网络过程中,将数据集分为3个独立的数据集(训练集,测试集,验证集),分别为原始样本的70%,15%,15%。用训练集对网络进行训练,每当迭代到一定次数后,均用测试集去测试当前网络的误差和。然后,我们选取误差最小的网络作为我们最终的网络模型,而最后的验证则通过验证集去测试,验证网络的准确性与稳定性。

网络模型上位机的编写

基于以上神经网络的模型,通过matlabgui编程界面,设计了如下图8所示的上位机系统。

该上位机系统支持从外部导入数据和手动输入数据两种数据输入方式;用户可以自定义训练集和测试集占所输入全部数据的百分比,设定完成后,软件根据输入随机产生训练集和测试集;用户可以自定义网络的结构参数和训练参数;具有绘图功能,可以对比测试集的真实值与预测值;支持网络及数据的保存;具有菜单选项,用户可以通过菜单执行相应的操作;勾选“从外部导入数据”前的复选框,会弹出数据导入对话框,选择需导入的数据即可(注意,在该版本中,对导入的数据有一定的格式要求,即一列对应一个样本)手动输入时需注意,一列对应一个样本。用户可以拖动滑块,或点击滑块两端的箭头,定义训练集占全部数据的百分比,剩余数据为测试集,默认的训练集占全部数据的百分比为70%。用户可以通过设定单选按钮的值选择是否需要对数据进行归一化,可以自定义网络结构参数。

默认的网络结构参数为:隐含层神经元个数——10

输入层-隐含层传递函数——tansig

隐含层-输出层传递函数——purelin

学习函数——trainlm

用户可以自定义网络训练参数,默认的网络训练参数为:最大训练次数epochs——1000

显示间隔show——10

训练目标goal——0.001

学习率η——0.01

训练网络——利用输入的数据和设定的参数进行训练;

仿真测试——利用训练好的网络对测试集数据进行仿真,同时输入仿真结果和绘图

保存网络——保存训练好的网络以便以后使用。

本实施例具有如下的有益效果:

1)对于超冗余柔性机械臂进行建模,求逆解,将关节角转化为驱动空间的线绳长度,大大减少了需要辨识的运动学参数,运算难度大大降低,参数大大减少;

2)基于大量的测量数据进行参数建模,不必得到参数之间的关系,不需要得到输入输出之间的变化规律,直接根据输入得到输出,对机械臂进行直接补偿;

3)基于数据进行建模,参数发生改变时,建模方法不发生改变,只需将测量的实时数据带入模型,针对不同的数据,模型均可使用,模型移植性强;

4)对机器人进行参数辨识时,本专利计算方法简单,计算时间大大缩短;

5)针对参数辨识模型,开发了一个参数训练网络的上位机系统,可以实时改变参数和系统权值,得到不同的模型。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。

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