余晓兰 万 云 陈靖照
(1. 重庆城市职业学院,重庆 402160; 2. 郑州大学,河南 郑州 450000)
在以分拣机器人应用为核心的食品生产线上,快速识别和定位作业对象是分拣机器人的重要技术之一[1]。随着生产企业的不断发展和机器人技术的进步,对生产线的效率和机器人工作的复杂性要求越来越严格,机器人加装视觉传感器逐渐成为发展的主流[2]。因此,研究食品分拣机器人的视觉伺服控制方法具有重要的现实意义。
滕游等[3]提出了一种将内部点传输和图像反馈相结合用于视觉伺服预测控制,将视觉控制器设计问题转化为控制量和可视性约束问题,得到控制量的迭代解,并验证了该方法的有效性。陶波等[4]从3个方面(目标函数、轨迹规划、控制器)对无标定视觉伺服控制系统进行了分析,针对轨迹规划可能存在的问题,从空间轨迹优化和避障方面探讨了现有的可行解决方案。李光等[5]提出了一种基于残差BP神经网络的6自由度机器人视觉伺服控制方法,使用多个残差网络模块来加深BP神经网络的深度。结果表明残差模块的输入信息可以跨网络层发送,这就解决了网络模型随深度的增加易出现梯度消失的问题且能提高网络的性能。Li等[6]提出了一种混合视觉伺服系统,可同时控制非完整约束的底盘和机械手;基于移动机器人的运动微分方程,推导出了整个机器人的全局雅可比矩阵,结合位置信息和视觉图像信息推导出HVS控制方程;引入了卡尔曼滤波器来校正机械手边缘的位置和方向,以避免观测位置误差;并验证了该方法的优越性。然而,上述研究的实时性较差,且受机器人运动模型的影响,实际使用中准确率不高,需进一步提高适应性。
基于此,文章拟提出一种基于改进粒子群算法(PSO)和BP神经网络的食品分拣机器人视觉伺服控制方法;粒子群算法在迭代过程中使用交叉和变异操作来保持种群多样性,对BP神经网络的初始权值和阈值进行优化,并通过仿真和实验验证该方法的有效性,旨在为机器人视觉伺服控制技术的研究提供一定的参考。
建立SNRB6型关节机器人的运动学模型,如图1所示为一个六轴机器人及其D-H坐标系。其中1~3轴控制位置,4~6轴控制姿态。
图1 六轴机器人及其D-H坐标系
从D-H坐标系和机器人结构出发,推导机器人的D-H 参数。D-H参数和关节参数见表1。
表1 机器人D-H参数
根据变换关系,导出末端与坐标系的关系,即正运动学,如式(1)所示[7]。
(1)
式中:
[n,o,a]——机器人的末端姿势;
[px,py,pz]T——机器人的末端位置。
(2)
式中:
ci=cosθi;
si=sinθi;
s23=sin(θ2+θ3);
c23=cos(θ2+θ3);
U1=px-d6ax;
U2=py-d6ay;
A=(-d6+pz-d1);
B=d6(axc1+ays1)-(pxc1+pys1-a1);
l=a2s3+d4。
因此,可以计算末端和各关节的映射关系。
采用摄像头安装在机器人的末端执行器上跟随机器人运动,采集图像信息提取特征后与期望图像特征进行对比,将误差值转换为各关节的角度值[8]。机器人向目标运动,直到特征误差为零。图2为基于图像的视觉伺服控制系统结构。
图2 视觉伺服控制系统结构
(3)
式中:
KP、KI——比例和积分系数矩阵,对称正定可调;
J+——雅可比矩阵的伪逆矩阵。
BP神经网络在机器人视觉伺服控制方面被广泛应用,但存在收敛慢、过拟合、局部极值等问题[10]。通过粒子群算法在迭代过程中进行交叉和变异保持种群多样性,对BP神经网络的初始权值和阈值进行优化。
BP神经网络由两部分组成:前向和反向传播[11]。通过实际值和期望值进行参数调整,使输出接近期望值,图3 为网络拓扑图。
图3 BP网络拓扑
设置输入层n、隐藏层l、输出层m、输入层输入值Xn、输出层输出值Ym、网络权重ωij和ωjk等。网络是从自变量到因变量的非线性映射,大量样本用于训练,步骤为:
(1) 参数初始化:输入层节点数n、隐藏层节点数l、输出层节点数m、连接权值ωij和ωjk、隐藏阈值a、输出层阈值b等相关参数。
(2) 隐含层Hj输出:按式(4)计算[12]。
(4)
式中:
f——该层的激活功能。
(3) 输出层输出Ok:按式(5)计算[13]。
(5)
(4) 误差计算:按式(6)计算。
ek=Yk-Ok,k=1,2,…,m,
(6)
式中:
O、Y——实际输出和期望输出。
(5) 更新后的权值和阈值计算:按式(7)计算。
(7)
式中:
η——学习率。
(6) 对迭代终止条件进行判断。满足条件则结束,不满足返回步骤(2)。
粒子群优化算法是一种用于解决多用途、多变量等问题的全局优化算法[14]。通过粒子适应度表现优势,每个粒子的适应度取决于目标函数。随着粒子数量的增加,新粒子的位置由飞行速度v决定,大小由计算得到。
通过式(8)和式(9)进行速度和位置更新[15]。
(8)
(9)
式中:
c1、c2——自学习和社会学习因子(c1=c2=2);
r1、r2——[0,1]之间的随机数;
pbest——个体最优解;
gbest——全局最优解;
ω——权重因子。
但是,粒子群优化算法在全局优化过程中会陷入局部极值。虽然在局部优化过程中不易陷入局部优化,但会降低收敛速度[16]。使用遗传算法来优化粒子群算法,粒子群算法在迭代过程中进行交叉和变异保持种群多样性,提高搜索能力。具体步骤为:
(1) 初始化粒子群算法和遗传算法参数。
(2) 计算适应度值,更新种群的个体极值pbest和全局极值gbest。
(3) 对粒子的位置和速度进行更新,适应度值从小到大排序分为3个级别:适应度值较好的种群为U1,适应度一般的种群为U2,适应度状况较差的种群为U3。
(4) 粒子群算法的交叉操作。将U1子群直接遗传到下一代,对U2子群以交叉概率进行粒子交叉运算。通过比较交叉后父子粒子的适应度值,将适应性强的粒子遗传到下一次迭代[17]。
(5) 粒子群算法的变异操作。对子种群U3进行变异操作,并将结果返回粒子群。
(6) 重新计算PSO适应度值并更新pbest和gbest。
(7) 判断是否满足终止条件,满足条件则结束,不满足返回步骤(3)。
将GA-PSO算法输出最优值作为BP神经网络的初始权值和阈值。图4为GA-PSO算法的流程。
图4 GA-PSO算法流程
通过GA-PSO算法对BP神经网络的初始权重和阈值进行优化,达到最小化输出误差的目标。优化前,根据BP神经网络参数对粒子群进行编码,如果网络的输入层、隐藏层和输出层的节点数分别为I、J、K,则BP神经网络有D=(I+1)J+(J+1)K个参数。该算法的具体步骤为:
(1) 对BP神经网络进行参数初始化,包括输入层节点数、隐藏层节点数和输出层节点数等。
(2) 对粒子群种群进行初始化,根据BP神经网络参数对粒子群进行编码,每条编码信息代表一个个体。
(3) 参数优化,通过GA-PSO算法迭代找到全局最优解即BP神经网络的最优参数。
(4) 将全局最优解作为BP神经网络的初始权值和阀值进行训练,直到满足终止条件,输出最终结果。
图5为GA-PSO-BP神经网络算法的流程图。
图5 改进BP神经网络流程
机器人型号为SNRB6,摄像头型号为In-Sight 5705,使用眼在手上方式,摄像头安装在机器人末端执行器上。仿真设备为联想PC,操作系统为Windows7 64位旗舰,Intel i5 2450m CPU,2.5 GHz频率,8 GB内存,MATLAB r2018a为仿真平台。
BP神经网络参数:输入节点8个,输出节点6个,隐藏层10个,选择 Tansig函数和Purelin函数作为传递函数。训练算法使用LM算法,其中最大迭代次数为100、学习率0.4、动量因子0.8和期望误差10-6。
粒子群参数:惯性权重为0.7,两个学习因子均为2。
遗传算法参数:交叉和变异概率分别为0.6,0.1。种群数均为80,最大跌代次数为100。
为了验证文中控制模型的优越性,将GA-PSO-BP神经网络模型与改进前的BP神经网络模型进行对比分析,结果见图6。
由图6可知,PSO-GA-BP神经网络模型收敛速度优于未改进前的BP神经网络模型,PSO-GA-BP神经网络模型在80次迭代后收敛到所需的输出精度8.176 3×10-6,而BP神经网络模在100次迭代后未收敛到所需的输出精度。结果表明,PSO-GA-BP神经网络与改进前的BP神经网络相比收敛速度提升较为明显。
图6 不同模型误差变化曲线对比
对图像进行预处理、边缘检测、特征提取后,选取目标物体上4个孔的中心点作为图像特征点A、B、C、D。在图像空间中对应的特征点为A′、B′、C′、D′。目标是控制分拣机器人的运动,到达特征点坐标重合位置,实际坐标与期望坐标构成一个8维特征向量,神经网络控制器的8个输入。
(1) 期望的图像坐标
(2) 初始关节角度
q0=[1.159 4,1.116 5,0.681 9,-0.387 2,-1.033 8,-1.502 4]T。
(3) 摄像机参数:焦距8 mm,分辨率8万Pixel/m,目标成像深度1.5 m,图像中心点为(338,338),控制器比例系数kp=1.5,采样时间0.2 s。
通过试验对GA-PSO-BP神经网络和复合雅可比矩阵J+两种视觉伺服控制方法进行对比分析。复合雅可比矩阵表示图像特征空间与关节角度、移动平台位姿空间之间的手眼映射关系[18]。图7为不同伺服控制方法机器人各关节的运动轨迹。
由图7可知,PSO-GA-BP神经网络控制优于传统的J+控制,可以更好地逼近图像特征误差值与关节角度之间的非线性关系,极大地提高了关节的跟踪能力,从而实现对分拣机器人的高精度控制。
图7 机器人关节轨迹
为了分析试验误差,采用图像特征误差范围数为指标进行分析,得到的图像特征误差范数变化曲线如图8所示。
图8 图像特征误差范数变化曲线
由图8可知,GA-PSO-BP神经网络的视觉伺服控制图像特征误差范数优于J+控制,运动20 s时GA-PSO-BP神经网络控制特征误差范数为4.762 0,J+控制的特征误差范数为30.128 7。结果表明,基于GA-PSO-BP神经网络的视觉伺服控制方案大大简化了计算复杂度,建立的图像特征与关节角的非线性关系也更为准确,说明GA-PSO-BP神经网络控制器具有训练精度高和收敛速度快等优点。
由图9可知,图像特征最终收敛位置的像素为:
与期望位置相比,像素的平均绝对误差约为2.1 Pixel,位置逼近的相对误差约为0.38%,说明分拣机器人的末端执行器已到达所需位置,系统效率高,实用性能好,该方法可用于食品生产中。
星形为初始值,点为最终收敛值,箭头为变化方向
文中提出了将BP神经网络和改进粒子群优化算法相结合用于视觉伺服控制。结果表明,与传统控制方法相比,该方法可以较快地到达指定位置,且效率较高。考虑到目前的试验设备和数据规模,文中提出的分拣机器人视觉伺服控制方法还处于早期阶段,仅对控制方法进行了分析,未对图像处理过程进行研究,也未考虑障碍物和关节限制等问题。后期应不断完善分拣机器人相关功能,以适应未来不断变化的应用环境。