(南京航空航天大学机电学院,南京210016)
随着《中国制造2025》强国战略的推进,机器人在飞机装配、柔性磨削、激光切割等高精度制造领域中的应用越来越广泛。应用机器人进行高精度作业任务主要依靠其绝对定位精度,通常情况下,机器人绝对定位精度较低,达到±1~2mm[1-3]。因此研究提高机器人绝对定位精度的精度补偿方法,是推动智能制造技术发展的重要基础。
现有的提高机器人绝对定位精度的方法,根据机器人控制方式分为在线检测反馈补偿方法和离线标定前馈补偿方法。在线检测反馈补偿方法通常是在机器人系统中附加外部检测装置来提高机器人绝对定位精度,一般可以达到±0.2mm 以内[4-6],但此类方法高度依赖外部的检测设备,且在复杂部件的工业现场实施存在难度。
离线标定前馈补偿方法又分为运动学模型和非运动学模型标定方法。运动学模型标定方法[7-9]的基本原理:通过一定测量手段和参数辨识方法获取机器人运动学参数误差,以修正机器人运动学模型。该方法的不足在于建模和参数辨识过程繁杂,且模型忽略了占总误差源的10%~20%的非几何误差源[10],使得精度补偿效果有限,因此精度高且通用性强的非运动学模型应运而生。
非运动学模型标定方法如神经网络法[11]、空间插值法[3,12]等不仅考虑到几何误差因素,还包含了如齿轮间隙、负载变化、热效应等非几何误差因素影响。周炜等[3,12]提出了一种基于空间插值的精度补偿方法,通过反距离加权来估计机器人定位点处的位置误差来进行补偿,但此方法补偿效果受采样步长大小影响显著。Xu等[13]利用前馈神经网络预测关节角度误差,并将其应用到控制系统中进行误差修正。Nguyen 等[14]提出利用人工神经网络补偿非几何误差,以3个关节角作为神经网络输入得到非几何误差的预测值。王龙飞等[15]通过ELM算法建立目标点实际坐标与理论坐标间映射模型,使机器人绝对定位精度提高了45%,该方法空间采样范围太小,难以应用到实际工程问题中。上述方法都没有考虑到目标点姿态对定位误差的影响,因此补偿精度受限。
针对上述问题,本文提出一种基于遗传粒子群算法优化深度神经网络(GPSO-DNN)的机器人定位误差补偿方法,同时考虑目标位置和姿态对定位误差的影响来建立定位误差预测模型,对误差进行预测并补偿,同时与其他误差补偿模型进行试验对比,验证本文中基于GPSO-DNN的误差补偿方法的准确性和实用性。
由于采样点数据直接反映了机器人定位误差的原始状态,采样点规划方法对机器人定位误差补偿效果有显著影响。因此研究合理有效的采样点规划方法是保证机器人定位误差补偿精度的关键步骤之一。现有机器人采样点规划方法有两种:基于可观测度指数[16]和空间网格[3]的采样点规划。前者是根据运动学参数模型得到的,不适用于非运动学模型标定方法,后者只能对空间位置进行采样点规划。
拉丁超立方采样(Latin Hypercube Sampling,LHS)[17-19]是一种用于采样试验的统计学方法,其目的是在空间采样选取一部分试验点,并使该组试验点能够均匀分布于采样空间中。
假设采样维度为N,采样样本数为M,LHS的基本原理步骤为:
(1)将每一维变量si按定义域范围等分为M个子区间,在每个子区间随机选取一个变量值sij。
(2)将变量s1的M个变量值{s11,s12,…,s1M}与变量s2的M个变量值{s21,s22,…,s2M}随机配对组合。
(3)将得到的二元集合{s1j,s2j}(j=1,2,…,M)与变量s3的M个变量值{s31,s32,…,s3M}再随机配对组合;继续上述相同的随机配对操作直至形成M个N元集合{s1j,s2j,…,sNj}(j=1,2,…,M),即得到M个拉丁超立方采样样本,可表示为:
其中,矩阵S的每列表示一个拉丁超立方采样得到的样本向量,每行表示每个变量的M个变量值的任意排列组合。
为保证采样点能够尽可能地反映机器人整个工作空间状态,利用LHS 方法在机器人笛卡尔空间采样,规划一个尺寸为500mm×700mm×700mm 且目标点姿态角(a,b,c)均在±10°范围内的长方体区域作为采样空间,如图1所示。易知采样维度N=6,设定采样样本数M=150,LHS 方法的采样结果如图2所示,可见通过LHS 方法获取的采样点能均匀地分布于采样空间中。
在机器人的笛卡尔空间中,设某一目标点的理论位置坐标为Pt(xt,yt,zt),测量得到的实际位置坐标为Pa(xa,ya,za),则该点的定位误差矢量E为:
图1 机器人笛卡尔空间采样范围示意图Fig.1 Cartesian space sampling range of robot
其绝对定位误差由欧氏距离表示:
相关研究[20]表明,对于六自由度转动关节机器人,前3个关节主要影响其位置精度,后3个关节主要影响其姿态精度。但在实际应用中发现由于安装、负载等误差因素,后3个关节也影响了机器人的定位精度,因此研究目标点姿态对定位精度的影响有重要意义。
图2 机器人笛卡尔空间LHS采样点集合示意图Fig.2 Schematic diagramof LHS point set in Cartesian space of robot
依据前文中的LHS 方法在KUKA KR500-3型工业机器人的600mm×700mm×1000mm 空间中规划了10个定位点,每个定位点对应30组姿态(a、b、c均在±15°内),通过测量得到此300个目标点的绝对定位误差。表1列出了上述10个定位点30组姿态角下的定位误差分布范围,可以看出不同定位点的误差离散程度不同,其中误差分布范围最大的为定位点(x1962.3,y257.1,z591.4),其误差极差有0.65mm。定位点(x1962.3,y257.1,z591.4)30组姿态下的绝对定位误差分布如图3所示,可以更加直观地看出,由于姿态角的差异,该点绝对定位误差分布在0.80~1.50mm范围内。通过上述试验结果可以发现,同一定位点不同姿态角下的定位误差存在较大差异,这表明目标点姿态的变化对机器人精度的影响较大,因此对机器人进行定位误差补偿也要充分考虑目标点姿态对定位精度的影响。
因此,为保证加工精度,应根据加工范围合理地规划采样点,确保采样点能够均匀分布在全加工范围内,同时误差补偿方法也要考虑目标位置和姿态因素来保证精度补偿效果。
表1 定位点30组姿态下的误差分布范围Table1 Error distribution range of 30 groups of attitude of positioning points
图3 (x1962.3,y257.1,z591.4)30组姿态的绝对定位误差Fig.3 Absolute positioning error of 30 groups of attitude of (x1962.3,y257.1,z591.4)
针对PSO算法在寻优进化初期收敛快,但进化后期早熟收敛且效率不高等缺陷[21],本文提出一种遗传粒子群优化算法(Genetic Particle Swarm Optimization,GPSO),该算法引入遗传算法的选择交叉因子,有效提高了算法的收敛速度和全局寻优性能。
粒子群优化算法(Particle Swarm Optimization,PSO)[22]是一种源于模拟鸟群捕食行为的全局优化算法,通过群体内个体信息共享和群体迭代在解空间中寻找最优解。设搜索空间维度为D,种群大小为n,粒子i的位置和速度矢量分别为Xi,Vi:
其中,j=1,2,…,n。
在每次迭代进化过程中,粒子通过个体极值和群体极值来更新自身的速度和位置,更新公式如下:
式中,Pi为个体极值;Pg为群体极值;t为当前迭代次数;ω为惯性权重;c1,c2为非负常数学习因子;r1,r2为区间[0,1]内的随机数。
本文的GPSO算法借鉴了遗传算法的选择交叉思想,利用选择交叉操作产生新的种群,拓展了粒子群的搜索空间。在每次更新粒子群位置和速度后,选择种群中适应度值较小的前一半粒子直接成为下一代;同时复制上述适应度值较小的一半粒子进行交叉操作产生子代,选择子代和父代中适应度值较小的前一半粒子再进入下一代,实现粒子群的更新。由于粒子为实数编码,因此交叉操作方法采用实数交叉法,种群中的粒子两两随机配对,以一定的概率p交叉得到新粒子,其位置和速度如下:
式中,Xchildk,Xparentk为子代和父代粒子位置,Vchildk,Vparentk为子代和父代粒子速度,k=1,2;交叉概率p为[0,1]内随机数。
深度前馈神经网络(DNN)是深度学习领域结构最简单但应用最广泛的模型,相邻层节点间采用全连接,一般通过误差反向传播算法进行网络参数调整,图4为一个包含三隐层的DNN网络结构。
DNN的输入层和输出层的节点数分别由输入量[x1,x2,…,xn]和输出量[y1,y2,…,ym]的维度确定,隐层层数及节点数由待解决问题及样本数据特性等因素决定。假设DNN 包含L个隐层,则第l(l=1,…,N+1)层输出的表达式为:
其中,Wl是第l-1层与第l层节点间的连接权值矩阵,bl是第l层节点的阈值向量。σ(x)函数为修正线性单元(ReLU),相较于传统常用的sigmoid 或tanh 激活函数,能使网络具有更好的收敛性和稀疏性,其公式表示为:
相关研究表明[23],DNN的隐层层数及节点数的选择对网络性能和预测结果有显著影响。隐层层数或节点数增多,网络精度提高但训练时间增加,且容易出现“过拟合”现象。深层网络比浅层网络具有更高的参数效率,且DNN网络越往高层其冗余性越强,因此采取隐层节点数递减策略有利于提高网络参数效率,减少模型训练时间。目前还没有确切方法确定最佳隐层层数和节点数,一般参考经验法则如式(14)所示来大致确定最佳隐层节点数的范围[24]:
其中,n,m分别是输入层和输出层节点数;常数a={1,2,…,10}。最佳隐层层数和节点数通过在遍历其取值区间内元素进行反复试验来确定。
图4 三隐层的DNN网络结构示意图Fig.4 Schematic diagram of three hidden layers of DNN
同时,权值和阈值的初始化方法对神经网络算法的收敛性能也至关重要,而常用的随机初始化方法容易将网络训练的参数搜索范围放在非优区间内,使网络收敛速度慢。因此,本文提出一种GPSO-DNN(GPSO 优化DNN)算法来获得DNN 最优的初始权值和阈值,使优化后的DNN模型能更好地实现数据预测。本文以粒子群中粒子位置表示网络的权值和阈值,将DNN的实际输出与期望输出间的均方误差作为GPSO算法的适应度函数,如式(15)所示。因此可知,适应度函数值越小,DNN模型的预测误差也就越小。
式中,yi表示训练样本实际值;yi'表示训练样本的网络输出值。
GPSO算法优化DNN的流程如图5所示,GPSO算法优化DNN的过程大致如下:
(1)归一化处理样本数据,并划分为训练样本和测试样本。
(2)初步确定隐层层数和节点数的取值范围,并设定其初值。
(3)GPSO算法优化DNN,获取当前网络结构下的最优权值和阈值。
图5 GPSO算法优化DNN流程图Fig.5 Flowchart of DNN optimized by GPSO algorithm
(4)进行网络训练和测试,并保存网络结构和预测结果。
(5)依次遍历隐层层数和节点数取值范围内元素,若不满足遍历结束条件,则返回步骤(3);若满足结束条件,则停止遍历,选择预测精度最高的网络结构和预测数据。
与只考虑几何误差源的传统运动学模型标定等方法不同,深度神经网络模型可以同时兼顾几何和非几何误差源,能够很好地建立输入量与输出量间复杂的映射关系,实现机器人定位误差预测。实质上,机器人各项误差源都综合反映在定位误差上,结合前文中的试验分析可知,机器人定位误差不仅与目标点位置有关,也与目标点姿态有关。因此将目标点的理论位姿Pt=(xt,yt,zt,at,bt,ct)T作为模型的输入量,目标点的实际定位误差E=(Δx,Δy,Δz)T作为模型的输出量。故模型的输入层节点为6,输出层节点为3,根据式(14)确定最佳隐层节点范围为[4,13],为进一步保证网络精度,适当扩大隐层节点数范围为[3,16],由于机器人精度补偿并非极其复杂的问题,设定隐层层数范围为[1,6]。
基于GPSO-DNN的机器人定位误差补偿方法是一种前馈控制补偿方法,原理如图6所示。首先根据前文中的LHS 方法在机器人工作空间进行采样规划得到采样点Psample,通过测量获得采样点实际定位误差Esample;其次利用采样点理论位姿Psample和实际定位误差数据Esample训练GPSO-DNN模型;然后将目标点理论位姿Ptarget输入训练好的模型,得到其定位误差预测值Etarget;最后对目标点理论坐标反向迭加其定位误差的预测值,获得补偿修正后的目标点坐标Pmodified,输给机器人。
搭建如图7所示的试验平台对基于GPSO-DNN模型的机器人定位误差补偿方法进行试验验证,其中试验验证载体为KUKAKR500-3型号机器人,其法兰盘上装有制孔末端执行器,测量设备为API Radian 激光跟踪仪,激光跟踪仪靶球安置在末端执行器的某一固定位置。机器人的重复定位精度为±0.06mm,激光跟踪仪的绝对测距精度为±10μm+3.5μm/m。
本文中目标点位姿实质上是工具坐标系相对于机器人基坐标系的坐标转换关系,为进行精度补偿试验,需利用激光跟踪仪建立机器人基坐标系、法兰盘坐标系和工具坐标系,其中机器人基坐标系建立过程如下:
图6 基于GPSO-DNN的机器人定位误差补偿原理图Fig.6 Principle diagram of robot positioning error compensation based on GPSO-DNN
(1)保持其他轴不动,转动A1轴,利用激光跟踪仪测量获取转动过程的靶球点数据,并拟合得到圆O1;方法同上,只转动A2轴并拟合测量点得到圆O2。
(2)过圆O1的圆心,作平面1平行于圆O2,将圆O2的圆心投影在此平面上,得到投影点C2'。
(3)过投影点C2'作平面2平行于圆O1,将平面2沿法线向下平移1045mm 获得机器人基座平面,此平面法向即为基坐标系Z轴。
(4)分别将圆O1的圆心和圆O2的圆心投影点C2'投影到机器人基座平面上,得到基坐标系的原点和X轴上一点。
(5)利用获得原点、X轴上一点和Z轴建立机器人基坐标系。
根据机器人理论运动学模型确定法兰盘坐标系相对于基坐标系的坐标转换关系,在基坐标系基础上建立法兰盘坐标系。设置工具坐标系的原点为图7中靶球的中心点,为直观地确定目标点的位姿,设置其姿态与基坐标系姿态相同。
本试验在机器人运动范围内规划了一个尺寸为600mm×1200mm×800mm 且目标点姿态角(a、b、c)均在±10°范围内的区域作为试验空间,且此范围为机器人的极限工作空间。依据拉丁超立方采样方法随机生成2000个目标点的理论位姿和100个验证点的理论位姿。将上述理论点和验证点输入至机器人控制系统中,控制机器人运行至相应点位,同时利用激光跟踪仪测量得到相应点的实际位置坐标,将实际和理论位置坐标代入式(2),即可获取上述目标点和验证点的实际定位误差。
将目标点的理论位姿作为模型输入,目标点的实际定位误差作为模型输出,任意取1900个目标点作为训练样本,剩下100个目标点作为测试样本。其中模型最大训练次数为500,学习率为0.01,训练目标最小误差为10-3。
图7 试验平台Fig.7 Experimental platform
经过多次模型训练调试确定模型最佳预测精度的网络结构和参数,其中模型的隐层节点数为[15,10,5],种群规模20,进化代数50,学习因子c1=c2=1.4962,个体速度和位置范围皆为[-1,1],交叉因子p=0.2,网络的训练结果如图8所示。使用训练好的模型对100个验证点进行误差预测,获得其定位误差预测量,与实际定位误差对比计算得到的模型预测偏差在0.25mm 以内,如图9所示。
将验证点的定位误差预测量迭加到验证点的理论位置坐标上,其姿态保持不变,将修正后的验证点坐标输给机器人控制器,用激光跟踪仪测量机器人实际到达位置,根据式(3)计算得到模型补偿后的绝对定位误差。
为体现本文模型的准确性和优越性,选择3种模型:极限学习机(ELM)[15]、参数辨识[25]和传统深度神经网络(DNN)与其进行对比,图10为4种模型补偿前后的绝对定位误差对比图,对其结果进一步分析得到表2。
图8 网络训练结果Fig.8 Thetraining results of DNN
图9 模型预测误差Fig.9 Prediction deviation of the model
对图10和表2的试验结果分析可知:(1)经过补偿后的验证点绝对定位误差都明显小于未补偿前的,且GPSO-DNN的补偿精度高于其他3种模型;(2)经过GPSO-DNN模型的补偿后,100个验证点的最大绝对定位误差由补偿前的1.529mm减小为0.343mm,平均值由补偿前的0.754mm减小至0.223mm。机器人的最大和平均绝对定位误差分别降低了77.57%和70.42%,且标准差只有0.06mm,误差波动范围很小。试验结果表明,本文的误差补偿方法能够有效提高机器人的绝对定位精度。
进一步分析ELM、参数辨识和传统DNN模型的算法本质可以发现,ELM模型中只考虑了采样点位置而忽略了采样点姿态对实际定位误差的影响;参数辨识模型是基于运动学模型标定方法,只考虑了几何误差因素,未考虑非几何误差因素;传统的DNN模型采用简单的参数随机初始化方法,导致模型收敛性能较差。由于分别存在上述问题,ELM、参数辨识和传统DNN模型的补偿精度受限。
图10 4种模型补偿前后的绝对定位误差对比图Fig.10 Absolute positioning errors before and after compensation by four models
表2 4种模型补偿结果数据对比Table2 Data comparison of compensation results of four models
为提高机器人本体的绝对定位精度,本文采用拉丁超立方采样方法对机器人工作空间进行采样规划,并在传统神经网络基础上提出了基于遗传粒子群优化深度神经网络(GPSO-DNN)的机器人定位误差补偿方法,并与ELM、参数辨识和传统DNN 等模型的试验补偿结果进行对比。试验验证结果表明,本文提出的基于GPSO-DNN的定位误差补偿方法补偿精度较高,由补偿前的1.529mm减小到0.343mm,使机器人的定位精度大幅提高了77.57%,验证了该方法的准确性和实用性。