何雅芹
(廊坊市中心血站,河北 廊坊 065000)
六轴机器人一般包括6个回转自由度,可实现其顶端操作装置的全操作空间自由移动。而在其软件编写过程中,如果单纯针对6个回转自由度进行操作,则会形成6个球面坐标系的叠加计算,在编程过程中稍有疏忽,即可造成机器人的误动作[1]。历史上出现过因为六轴机器人编程错误造成其误动作从而导致其周边行走人员被挤伤致死的案例。且因为对6个回转自由度形成的6个球面坐标系控制叠加算法无法实现更高计算精度,导致六轴机器人在焊接、安装、3D打印等操作过程中精度不足或编程量增加的问题[2]。所以,有必要通过坐标转换算法实现高精密控制理念下的六轴机器人坐标转换算法,以提升六轴机器人的工作效能。
当前共有4个六轴机器人核心品牌,包括瑞士ABB(1988)、日本安川(1915)、日本发那科(1976)、德国库卡(1898)。国外相关研究中,重点针对六轴机器人的控制精度、遥控模式、遥控与自主控制的结合点等方向,且其研究方向重点为控制阀和液压杆、液压马达的机械控制模式,涉及到腔体结构、流体力学、材料力学等研究领域。与之相比,国内更倾向于固定硬件条件下的软件控制算法研究[3]。
六轴机器人之前的工作体位不同,导致其在三维直角坐标系下的运动过程需要调动的回转关节有巨大差异。所以,如果单纯使用三角函数驱动的球面坐标系三维转化算法,很容易在多次动作叠加后导致六轴机器人的卡死故障。所以有必要从机器学习理念出发,研究六轴机器人自主选择动作关节且在运行过程中保持其合适体位的机器学习算法[4]。
各公司的机器人布局均分为肩部关节、肘部关节、腕部关节3个全向活动关节,每个关节设计2个回转轴,整个机器人系统共包含6个回转轴,确保腕部关节之前安装的行动部件可以拥有最大的自由度,详见图1。
图1 六轴机器人的一般关节设定
因为绝大部分六轴机器人的上臂(肩部关节至肘部关节之间)长度L1和前臂(肘部关节至腕部关节之间)长度L2长度均为固定,所以在全向自由度条件下,该机器人的肘关节控制点将以肩关节等效回转中心为圆心,在球面移动,腕关节控制点也以肘关节等效回转中心为圆心,在球面移动,所以其最大前探距离为Lmax=L1+L2,其最小前探距离则受到各回转关节机械尺寸限制[5]。
在实际控制中,以肩关节回转控制点为(0,0,0)坐标点,将x、y平面布置为水平面,则其实际控制的三维直角坐标系将在肩关节回转控制点(0,0,0)坐标点周围形成4个控制象限,其中定义肩关节至流水线法向方向的连线为x轴,水平方向垂直于x方向为y轴,垂直于x、y平面为z轴。此时,控制肩关节回转控制点坐标为(x0,y0,z0)=(0,0,0),肘关节回转控制点坐标为(x1,y1,z1),L1即(x0,y0,z0)至(x1,y1,z1)的直线距离,则
(1)
式中:(x0,y0,z0)、(x1,y1,z1)分别为肩关节回转控制点坐标和肘关节回转控制点坐标,且(x0,y0,z0)=(0,0,0)。
设腕关节回转控制点坐标为(x2,y2,z2),那么L2即(x1,y1,z1)至(x2,y2,z2)的直线距离,则
(2)
式(1)与式(2)约束了2个球面,其中球面1的球心固定在(x0,y0,z0)=(0,0,0)位置,球面半径为L1,而球面2的球心在球面1表面自由移动,其球面半径为L2。
如果将腕关节之前到行动部件控制中心点的距离定义为L3,则会形成一个球面3。球面3的叠加模式为其球面球心在球面2表面自由移动,其行动部件中心点位于球面3的表面[6]。
传统程控模式下,即是通过上述球面坐标分别进行三维直角坐标转化的方式获得最终的三维直角坐标。
输入端包括6个三维坐标系控制变量,即当前行动部件控制中心点的三维直角坐标(x0,y0,z0)和行动部件移动目标控制中心点的三维直角坐标(x1,y1,z1)以及6个关节回转机构当前位置变量(∠A、∠B、∠C、∠D、∠E、∠F)。上述12个输入变量均为双精度浮点变量(Double格式)以提升控制精度。
输出变量为6个关节回转机构目标位置变量(∠A、∠B、∠C、∠D、∠E、∠F),该6个输出变量均为双精度浮点变量(Double格式),以提升控制精度。
位置读取控制方面,采用光栅摄影识别模块得到6个关节的回转位置。
图1中A轴位置变量∠A、D轴位置变量∠D、F轴位置变量∠F均为无限回转部件,但B轴位置变量∠B、C轴位置变量∠C、E轴位置变量∠E均为受限回转部件。当受限回转部件在神经网络控制下出现回转限制时,神经网络将收到错误报告,并将标记该方案为不可行方案。经过长期训练,可以标定大部分不可行方案,使神经网络的验证过程得到不断加强。
在输出6个关节回转目标位置变量(∠A、∠B、∠C、∠D、∠E、∠F)时,还需要输出一个逻辑型标定变量Check(Logical格式),该逻辑变量为1时认为该方案不可行,该逻辑变量为0时,认为该方案可行[7]。
综合上述分析,该神经网络共有12个双精度浮点变量(Double格式)输入,6个双精度浮点变量(Double格式)和1个逻辑型变量(Logical格式)输出,其数据流结构见图2。
图2 神经网络模块数据流图
图2中,该神经网络计算模块的本质是一个由外围变量控制的6列并行多列神经网络系统,外围控制变量为当前机器人行动部件控制中心点坐标及其目标坐标。6列并行多列神经网络的目标是从6个回转部件回转角度计算目标回转角度,而判断模块数据取自干预变量的降维模块输出量和6列并行分列神经网络模块的输出量,最终输出一个二值化的Logical变量Check。
图2中神经网络模块共有3个表达形式,其中降维模块的统计学意义是将6个三维直角坐标系数据信息充分保留,即其需要有足够丰富的待回归变量用于保存数据信息,在不发生信息损失的前提下实现数据降维,将6个Double型变量降维为1个Double型变量且无数据损失。即其应采用待回归变量较为丰富且回归曲线细节较为丰富的多项式变量进行控制。其基函数如下:
(3)
式中:Xi为输入变量的第i项;Y为节点输出变量;j为多项式阶数;Aj为第j项多项式的待回归系数。该公式采用0-5阶多项式构成6个多项式项叠加的待回归函数。
为增加该模块的信息容纳能力,该模块应设计为5层,分别为6节点、17节点、31节点、13节点、3节点,输出层为1节点。
控制模块共有6个结构相同但数据相互独立的神经网络模块,其统计学意义是确定输入角度信息和输出角度信息的线性关系,且每个模块均有2个Double型变量输入、1个Double型变量输出,所以其应使用线性函数进行节点设计。其基函数应写作式(4):
Y=∑(A·Xi+B)
(4)
式中A、B为待回归系数.
因为该模块的信息处理任务并不重,且数据损失量也不显著,所以为增加系统运行效率,其隐藏层设计为2层,每层3个节点。
判断模块的统计学意义为判断上述数据处理过程是否合法,即是否有关节运动控制超限的问题,且其输入量为7个Double型变量,输出量为1个Logical型变量,所以其节点函数应采用二值化函数进行节点设计,其基函数应写作式(5):
(5)
式中e为自然常数,此处取近似值e=2.718 281 828。
因为该过程无需考虑数据损失,仅做出数据合法性判断,所以考虑到系统运行效率,其隐藏层也应尽可能简化,考虑到数据降维需求,将7个输入变量降维到1个输出变量,所以其隐藏层设计为2层,分别为7节点和3节点[8]。
采用ABB仿真工具包中提供的仿真环境软件进行仿真测试,采用随机数法生成机器人关节状态和移动坐标,使机器人在ABB自带控制系统和本文开发的革新控制系统两种环境下运行,考察二者的控制精度。
首先测试本文革新控制系统的神经网络收敛时间,见图3。
图3 神经网络收敛时间示意图
图3中,当训练次数为95次时,控制超限事故的发生率下降到1.0%以下,当训练次数达到1 300次时,控制超限事故发生率下降到0.1%以下,且随着训练次数的增加,该模型对六轴机器人的控制合理度不断提升。因为在该算法驱动下,机器人在使用过程中可以持续进行自我互搏试验,所以其实际控制效率会在使用过程中持续提升。
测试两种控制算法的操作部件控制中心移动线路,与空间内最短无障碍直线相比,比较其路径长度和曲线标准偏差率。测试过程为相同操作任务下完成1h操作任务。在1 000次训练条件下得到比较结果见表1,在100 000次训练条件下得到比较结果见表2。表中数据是使用SPSS24.0进行比较分析的,使用T校验得到其数据差异性,当T<10.000时认为存在统计学差异;使用P校验得到其数据信度,当P<0.05时认为存在统计学意义,当P<0.01时认为存在显著的统计学差异。
表1 两种控制算法的操作路线特征比较表(1 000次训练)
表2 两种控制算法的操作路线特征比较表(100 000次训练)
表1中,革新控制系统的路线特征和工作效率在1 000次训练条件下已经显著优于自带控制系统。T<10.000,P<0.01,具有显著的统计学差异。
表2中,革新控制系统几乎可以实现沿最短直线控制六轴机器人系统,且其标准偏差率为0.003,表明控制移动线路的微调动作几乎为0,其周期操作次数也显著增加。通过SPSS分析其与自带控制系统的数据差异,发现T=0.000,P=0.000,具有显著的统计学差异。
通过有外部变量干预的多列神经网络控制系统革新六轴机器人自带控制系统,实现系统内球面坐标控制模式向三位直角坐标控制模式的革新,使得六轴机器人的控制精度和控制效率大幅度提升[9]。在机器学习的互搏式训练模式下,机器人的自主学习可以在日常操作中主动积累控制经验,当达到100 000次训练后,基于神经网络的革新控制算法可以实现自主控制机器人操作部件控制中心点几乎沿空间最短直线运动,其控制效率已经远大于机器人自带控制系统。可以认定,该革新控制系统对六轴机器人的自主控制有积极意义,且在未来高精密遥控操作、星际远程作业的全自主程控作业等应用场景,该控制算法有技术推广的必要性。