基于人工神经网络的动力学参数辨识法①

2020-06-09 05:12杜其通刘朝雨费燕琼
高技术通讯 2020年5期
关键词:人工神经网络力矩动力学

杜其通 刘朝雨 闵 剑 费燕琼

(上海交通大学机器人研究所 上海 200240)

0 引 言

工业机器人已经成为现代人类社会不可或缺的自动化工具,提高其控制精度一直是国内外研究的热点。传统的PID控制已经无法满足实际工作的精度要求,基于模型的控制方法成为主流。基于模型的控制器需要以机器人动力学参数作为先验值[1],但是机器人是一个多变量、强耦合的非线性系统[2],通过数学计算获得动力学模型很困难,一般采用实验辨识方法。

国内外研究人员提出了很多机器人参数辨识方法。Gautier等人[3]提出了串联机器人最小参数集的推导方法,能够减小辨识的运算量,提高算法的鲁棒性。Calafiore 等人[4]采用递推的最小二乘法进行参数运算,提高了算法效率。丁亚东等人[5]提出了一种分布辨识方法,降低了辨识方程的复杂性。智能控制算法促进了机器人动力学参数辨识的发展,陈柏等人[1]采用人工蜂群算法,禹鑫燚等人[6]采用粒子群算法,谢宏[7]采用改进的遗传算法进行辨识,均取得了不错的辨识效果。

为了提高工业机器人的动力学模型辨识精度,本文结合近年兴起的机器学习、深度学习算法,提出了一种基于人工神经网络的动力学模型辨识方法。使用线型整流单元(rectified linear unit, ReLU)函数作为神经网络的激活函数,使用Dropout方法避免神经网络训练中容易产生的过拟合现象,采用有限项傅里叶多项式作为激励轨迹。最后,为了验证本文提出的方法,将实验结果与传统最小二乘法结果进行了对比。

1 辨识神经网络模型

对于一个n关节的机器人系统,传统辨识方法将其动力学模型表示为

(1)

利用人工神经网络对机器人动力学参数进行辨识时,实际是将整个机器人系统看作一个如图1所示的黑箱模型,输入为机器人的关节角度、角速度和角加速度,输出为各关节的力矩矢量。因为动力学参数辨识的目的主要是计算关节力矩,将计算的力矩用于机器人的模型控制系统,很多时候对于实际动力学参数并不关心。

图1 机器人系统黑箱模型

使用如图2所示的全连接神经网络对n自由度机器人进行辨识时,需要将n个关节的角度、角速度和角加速度共计3n个参数作为输入,n个关节力矩作为输出。大多数串联机器人模型并不复杂,因此只需要1~3个隐藏层。每个隐藏层的神经元个数不宜过多,避免出现过拟合现象。

图2 全连接神经网络

2 优化的神经网络模型

2.1 激活函数的选择

传统的BP(back propagation)神经网络一般选用logistic sigmoid函数f(x)=(1+e-x)-1作为隐藏层神经元的激活函数,但是该函数的广泛饱和性使得利用梯度下降算法对神经网络进行优化时容易出现梯度消失的情况。研究人员发现线性整流函数f(x)=max(0,x)有一定的生物学原理[8],将其作为激活函数的神经网络优化收敛速度更快,单次迭代的运算量更小[9]。神经网络的输出单元选用线性单元。

2.2 损失函数与优化方法的选择

设计人工神经网络时,除了其结构设计,最重要的就是损失函数和优化方法的选用。使用神经网络对机器人系统进行辨识选用均方误差(MSE)作为损失函数。

(2)

神经网络一般选用批量梯度下降进行迭代求解,批量梯度下降与传统的梯度下降不同的是前者每次计算梯度时只选用数据集中的一部分数据(Batch)。批量梯度下降能够大大减小迭代的运算量,同时使迭代不容易陷入局部最优点之中。现代人工神经网络的优化方法一般选用批量梯度下降的变体,其区别在于计算下一次权重更新时考虑上一步的权重更新。Tieleman等人[10]提出了RMSProp优化算法,已被证明是一种有效且实用的人工神经网络优化算法。

权重W的更新方法如式(3)所示:

VW←βVW+(1-β)▽W

W←W-αVW

(3)

式中,W是神经网络的权值;β是RMSProp算法引入的超参数,一般取0.9;▽W是W的梯度;α是学习率。

2.3 防止过拟合

人工神经网络模型通常都很擅长拟合训练数据,但真正的难点在于泛化,而不是拟合。传统的BP神经网络一般采用L1或者L2正则化以防止过拟合,本文采用Dropout[11]模型来提高辨识模型的泛化能力。

3 数据输入

3.1 激励轨迹设计

使用人工神经网络对机器人系统进行动力学辨识时,输入轨迹需要具有足够的代表性,尽可能多地包含机器人的特征信息。另外,还要考虑实际测量力矩的噪声对模型辨识产生的影响。本文采用Swevers等人[12]提出的有限项傅里叶级数轨迹,如式(4)所示。这种方法将轨迹优化转化为对傅里叶系数的优化(式(5)),同时需要考虑机器人对关节角、角速度和角加速度有限制(式(6))。傅里叶项数N取3~5,基频ω避开机器人的共振频率。

(4)

(5)

(6)

式中,K是机器人的动力学矩阵,通常由牛顿欧拉法递推得到;cond(K)表示矩阵K的条件数,σ0(K)表示矩阵K的最小奇异值,λ1和λ2分别表示其权值。

3.2 数据预处理

实际测量到的机械臂的数据可能会有较大的噪声,影响辨识准确度,在这种情况下需要先将数据进行滤波处理,提高数据的平滑性。另外,实验发现,机械臂关节运动换向时将会产生较大的误差,剔除换向点附近的一些数据点,可以有效提升辨识的准确性,加快算法的收敛。因为运动数据与力矩的关系并不受时间顺序影响,随机打乱神经网络输入的运动数据,同时对应打乱输出的力矩信息,可以减小模型过拟合情况发生的可能性。

受机器人控制系统的影响及其传感器的限制,测量得到的各轴运动参数值可能有较大的差异,将数据进行标准化后再输入神经网络可以更快地迭代收敛。

X←X-mean(X)

X←X/std (X)

(7)

式中,X是神经网络训练所用到的数据,mean(X)为数据的均值,std(X)表示数据的标准差。

4 实验验证

4.1 实验设计

某公司生产的6自由度机械臂如图3所示。使用深度学习框架Keras[13]建立本文第1节和第2节中介绍的人工神经网络模型,为了避免过拟合现象,添加Dropout正则化层。

在实际进行神经网络辨识时,理论上提供的训练数据越多,越能辨识到模型更多的特征,模型就会拥有更强的泛化能力。本文利用2.2节中提到的激励轨迹的设计方法,尽可能多地收集机械臂的实际数据,并将数据分为3部分,分别是训练集(70%)、验证集(15%)和测试集(15%)。训练过程中监控损失函数的大小及训练精确度,如图4和图5所示。可以看出,随着迭代的进行,模型的损失函数逐渐下降接近于0,精确度逐渐达到最大值,在第100轮左右的时候达到收敛,精度不再变化。

图3 6自由度机械臂

图4 神经网络训练精度

图5 神经网络训练损失

4.2 辨识结果

为了验证本文提出算法的准确性,采用传统的最小二乘法结合库伦粘性摩擦模型,利用相同的实验数据进行辨识,在相同的验证集上进行验证。将2种算法得到的力矩曲线放在一起,结果如图6所示。

图6 各关节力矩计算结果

从图6可以看出,2种算法对于实际力矩都有较好的跟随效果。通过观察局部放大图发现,本文提出的神经网络算法对于实际力矩的拟合程度更高,尤其是在峰值附近,对于实际力矩的跟随效果更好,曲线更加平滑,更加适合控制器的设计。其中关节1的误差曲线如图7所示,可以看出,采用神经网络辨识算法所计算出来的力矩误差比传统算法更小,峰值误差更小,曲线更加平滑。值得一提的是,曲线中有一些误差跳变较大的点,这些点主要是在机械臂关节速度为0的点附近,因计算相对误差时分母较小,所得相对误差结果较大,对于实际使用并没有影响。

图7 关节1力矩误差曲线

如式(8)所示,动力学辨识的匹配度δ可以用计算力矩τi与实验测量力矩τ进行计算[14]。

(8)

2种方法的匹配度计算结果如表1所示。从表1可以看出,神经网络模型的匹配度相对于传统的最小二乘模型能够平均提升超过5%。

近年来各种优化算法越来越多地应用在机器人辨识领域,比如结合非线性摩擦模型的人工蜂群算法取得了较好的实验结果,平均精度可达89%[14]。本文提出的算法的平均精度为90.70%,略好于人工蜂群算法。

表1 各关节辨识匹配度

4.3 结果分析

本文提出的辨识方法的精度相对于传统最小二乘辨识法有一定的提升,有效减小了传统辨识模型的出现的力矩波动的情况,平滑性更好。频繁波动的力矩容易对控制器造成损伤,因此本文提出的方法更加适合于控制器的设计。在实际控制系统中将神经网络模型和传统的最小二乘辨识模型结合使用能够得到更好的效果。

机器人的摩擦力与多个外部因素相关,针对摩擦力的建模及辨识一直是一大难题。近年来提出很多算法(如人工蜂群算法[14])的辨识精度比较依赖其摩擦力模型的选择,不同工作环境的机器人的摩擦力模型不完全一致,选取不合适的模型可能对辨识精度有害甚至出现运算不收敛的情况。本文提出的方法不需要对摩擦力进行专门的建模,对于不同工作环境的机器人具有很强的适应性和可移植性,并能保证较高的精度。因此,本文提出的方法相对于目前较新的辨识方法也有一定的优势。

5 结 论

本文针对传统动力学参数辨识算法精度不高的问题,提出了基于人工神经网络的辨识方法,使用ReLU激活函数,结合RMSProp算法和Dropout方法,算法泛化能力强,迭代速度快。设计了实验与传统最小二乘法进行对比,结果表明,本文提出的方法能够明显提高力矩计算的平滑性,准确性相对于传统方法提高超过5%。本算法不需要对系统摩擦力进行建模,具有较好的适应性。

猜你喜欢
人工神经网络力矩动力学
《空气动力学学报》征稿简则
一种制动器力矩测量系统的研制及应用
具有Markov切换的非线性随机SIQS传染病模型的动力学行为
利用人工神经网络快速计算木星系磁坐标
人工神经网络实现简单字母的识别
发动机阻力矩计算和起动机介绍
弹性负载力矩下舵偏转角度的测量方法
基于改进人工神经网络的航天器电信号分类方法
模糊人工神经网络在工程建设项目后评价中的运用
基于D-最优化理论的陀螺仪力矩反馈测试法