陈高铭, 骆研, 黄碧漪, 刘超, 熊振华*
(1. 上海交通大学机械与动力工程学院, 上海 200240; 2. 中广核研究院有限公司, 深圳 518028)
近年来,随着视觉传感器精度的提高,作为机器人系统通过视觉感知环境的重要策略,视觉伺服控制技术成为机器人控制领域的热点,其与模型预测控制等先进控制策略的结合使工业生产任务更加可靠[1]。视觉伺服控制技术由Hill等[2]首次提出,根据控制方式的不同,主要分为基于位置的视觉伺服、基于图像的视觉伺服以及复合视觉伺服3种类型[3]。传统的视觉伺服控制技术需要相机和机器人的标定,其整体性能受标定精度的影响[4]。具有移动平台的机器人标定过程较为复杂,其精度受外界环境的影响较大,且成本高。因此,机器人无标定视觉伺服控制技术在工业应用中备受瞩目。
Zhu等[5]将无标定视觉伺服控制技术用于全向移动操作机械臂的空间动态目标跟踪,采用卡尔曼滤波算法在线识别复合的雅可比矩阵,进而估计手眼映射关系,通过集中控制策略完成跟踪,但跟踪初期存在较大的超调。Wang等[6]将卡尔曼增益与测量噪声协方差矩阵关联,提出基于自适应卡尔曼滤波方法估计雅可比矩阵,通过协方差递归估计,其中增益矩阵与噪声协方差相关,算法展现了较好的动态跟踪性能。针对空间在轨自动装配的问题,Gu等[7]提出一种改进的基于射影单应性的超冗余机械手未标定视觉伺服策略,通过卡尔曼平滑变结构滤波方法进行总体雅可比矩阵的在线估计,同时采用奇异值滤波避免总雅可比条件数不稳定引起的扰动,实验展示了优良的静态定位和动态跟踪性能。为保证对图像缺陷的控制鲁棒性,Gu等[8]后续采用卡尔曼平滑变结构滤波与径向基函数神经网络相结合的方法,估计基于同形异义的任务函数与机器人关节之间的总雅可比矩阵,其中径向基神经网络起到校正器的作用,以补偿图像特征偏差导致的干扰,实验验证其在准确性和鲁棒性表现良好性能。为减少跟踪特征数量较多时图像雅可比矩阵估计耗时,Gong等[9]提出了基于投射单向的无标定视觉伺服方法,该方法采用射影单向图的元素来构建任务函数,以此控制任务函数的大小,减小矩阵估计的计算负担。王博等[10]将无标定视觉伺服技术用于优傲(universal robots,UR)机械臂的控制,采用动态拟牛顿算法对图像雅可比矩阵进行在线估计,提高了机器人视觉系统的鲁棒性。陈梅等[11]提出一种采用图像特征为反馈的模糊控制策略,该方法能够对平面内运动物体进行跟踪,同时利用图像信息实时纠正系统偏差,该算法对平面内圆周运动的跟踪效果较为出色。纪鹏等[12]提出了移动机械臂无关节状态反馈的伺服方法,采用广义回归神经网络映射虚拟外骨骼的末端与关节角的关系,末端姿态误差在±1°。王腾飞等[13]提出了双目双轴平行视觉配置方法,选取图像特征空间的点特征和线特征设计控制器,并基于卡尔曼滤波算法实时在线估计机械臂的手眼映射关系。岳晓峰等[14]提出了基于遗传算法优化的RBF神经网络,学习图像特征变化速度和机器人关节角变化速度之间的非线性关系,实现了较好的控制效果。
现有方法大部分对图像雅可比矩阵进行了显式在线估计,而随着视觉伺服采用的任务函数特征数量的增加,雅可比矩阵在线估计的计算成本明显升高[15]。本文研究针对图像雅可比矩阵在线计算较为复杂[16],同时单目相机难以准确获取深度信息的问题,提出了结合BP神经网络和模糊控制的无标定视觉伺服控制技术,通过神经网络隐式拟合图像特征与机器人各自由度之间的映射关系。首先利用BP神经网络建立图像特征信息与机器人多自由度运动之间的映射关系,之后采用模糊控制方法根据图像特征偏差进行机器人位姿的精确调整。现首先建立多自由度智能调节系统运动学模型,然后通过图像处理提取特征信息,采用自主构建的数据集训练BP神经网络,最终采用BP神经网络和模糊控制结合的控制策略,通过实验验证算法的有效性和控制性能。
作为核反应堆中热量传输回路系统的主设备,蒸汽发生器在核电系统中发挥了举足轻重的作用。由于工作环境恶劣、材料本身特性、清理不彻底以及操作不规范等原因,蒸汽发生器表面法兰盘人孔螺栓咬死的现象时有发生。人工拆卸咬死螺栓繁琐耗时,同时蒸汽发生器具有高放射性,因此采用视觉传感器采集图像,并根据图像特征引导具有多自由度智能调节系统的机器人进行自主对中,最后利用末端刀具切削咬死螺栓具有重要的应用价值。多自由度智能调节系统的工作流程如图1所示,主要包括机器人根据视觉引导自主对中、法兰盘贴合固定、数控切削3个过程。
为解决人孔螺栓咬死后的自动去除问题,本项目组自主设计了多自由度智能调节系统,该系统的整体结构如图2所示,主要包括移动平台和工作机构两部分,二者通过角铁固定。工作机构主要由两个电动缸J1、J2,一个丝杠滑块X1及一个内齿轮R组成,其末端搭载2D相机获取环境信息。在工作机构和移动平台连接处、工作机构的末端中心分别定义右手坐标系O0-X0Y0Z0、O4-X4Y4Z4。移动平台包括水平面内运动的3个自由度,工作机构为4自由度机械臂,整个系统共有7个自由度。
图2 多自由度智能调节系统结构
图3为多自由度智能调节系统的工作机构简图,其中L1、L2为电动缸J1、J2的长度,θ1、θ2共同构成工作机构的俯仰角,L3,…,L10为工作机构对应的杆长,x1、x2、a2为对应旋转副的偏移量。除L1、L2、θ1、θ24个参数外,图3中其余机构参数均为已知量。L1、L2分别与θ1、θ2耦合。通过视觉引导,最终使得机器人工作机构末端法兰面与蒸汽发生器表面法兰面贴合。将二者固定后,控制末端小型镗床工作,完成人孔螺栓的去除。
图3 工作机构简图
按照串联机械臂建立机器人运动学模型,根据Modified D-H(MDH)参数建立坐标系如图4所示,对应的MDH参数和关节参数如表1所示。
表1 工作机构MDH参数
图4 工作机构MDH坐标系
连杆夹角θ1、θ2可以通过电动缸J1、J2的长度L1、L2,结合工作机构参数计算得到,如式(1)和式(2)所示,除L1、L2外,其他均为已知的机构参数。
(1)
(2)
如图2(b)所示,假设基坐标系建立在移动平台与电动缸J1连接处,工作机构末端坐标系与基坐标系之间的正运动学关系为
(3)
式(3)中:ci=cosθi;si=sinθi;c12=cos(θ1+θ2);s12=sin(θ1+θ2)。
(4)
因此,当d3和θ4自由度固定时,通过调节电动缸J1、J2的长度L1、L2,可以得到唯一对应的角度θ1、θ2,通过逆运动学关系最终得到唯一对应的末端高度z和俯仰角p。即可以通过控制电动缸J1、J2的伸长量控制末端高度和俯仰角。
本系统中,工业相机安装在机械臂末端,即“眼在手上”。相机跟随机械臂进行相应运动,实时采集图像信息。
首先通过手动控制将机械臂末端法兰盘与蒸汽发生器表面法兰盘对中贴合,将丝杠滑块X1后移100 mm作为标准位姿Ps,采集机器人在Ps状态的图像Is,通过图像处理获取法兰盘的人孔特征信息;然后将机器人放置在任意初始位置,将该状态下图像处理获取的特征信息导入训练好的BP神经网络,计算机器人在水平面内的运动量以及末端高度和俯仰角的相对运动量,以此控制机器人运动;当机器人各自由度运动到指定位置的ε领域时,实时采集图像并利用模糊控制进行上述5个自由度的微调,直至特征误差在阈值范围内,此时机器人到达标准位姿Ps;最后进行d3和θ4两个自由度的调整,使机械臂末端法兰面和蒸汽发生器表面法兰面贴合。图5为本文采用的融合BP神经网络和模糊控制的多自由度智能调节系统视觉伺服控制结构框图。图6为多自由度智能调节系统的整体架构。
图5 视觉伺服控制结构
图6 多自由度智能调节系统整体架构
机器人工作过程中相机与蒸汽发生器表面距离近,有效的视野范围较小。采用Blender软件仿真,机器人处于标准位姿Ps时相机获取图像的视野范围如图7中矩形框所示。
图7 仿真相机视野
常用的边缘检测算子有Roberts算子、Prewitt算子、Sobel算子、Canny算子等[17]。由于Canny算子为多阶段优化算子,具有抗干扰能力强、边缘连续性好等优点[18],本文研究采用Canny算子对图像进行边缘检测处理。采用Canny算子进行边缘检测主要包括以下步骤。
(1)采用高斯滤波对原始图像进行卷积操作,即线性平滑图像,以减少图像中的高斯噪声。
(2)采用Sobel算子计算图像沿x、y方向的偏导数,即分别采用式(5)所示的x方向Sobel算子和式(6)所示的y方向Sobel算子对图像进行卷积处理,进而计算梯度的幅值和方向。
(5)
(6)
(3)对梯度的幅值采用非极大值抑制,去除部分假边缘,得到初步的边缘信息。
(4)采用双阈值对二值化图像检测筛选,得到较为精确的边缘特征。
以相机在标准位姿处获取的图像为例,边缘检测的效果如图8所示。
图8 边缘检测效果
为了增强边缘检测的鲁棒性,减少环境对成像质量的影响,本文研究对边缘检测获取的二值化图像采用闭运算,即先膨胀后腐蚀的操作。首先对二值化图像中的边缘进行膨胀处理,使部分邻近有断点的边缘连接为一个整体;然后对图像进行腐蚀处理,将膨胀导致的边缘线变粗的现象消除。采用闭运算使邻近的边缘特征连接在一起,得到准确的封闭边缘信息。
根据先验知识,图像中的有效信息为3个人孔,在处理后的图像中表现为封闭曲线内部。因此,将图像中封闭边缘包括的凸区域置为1,其余部分置为0,得到3个人孔与周围对比明显的二值化图像用于后续特征提取。
Blob特征在二值化图像中代表具有相同像素值的连通区域,即可以从背景中分离出目标信息;Blob分析主要是对目标进行检测和提取,从中得到感兴趣区域,并计算该区域的面积、周长、质心等参数[19]。由于Blob特征代表一个区域,相较于各种角点特征具有优秀的稳定性和抗噪声能力,因此采用Blob提取图像特征信息。
采用Blob特征自动提取图像中的3个人孔特征信息。首先在二值化图像中检索值为1的封闭区域;然后针对各封闭区域采用预设的面积、椭圆度及对应的置信度进行判断,从中筛选出感兴趣区域,即3个人孔外圆在图像中的投影;最后根据中心在图像中的位置对3个人孔外圆按照从左到右进行排序。
计算像素坐标系下Blob特征的中心坐标(uc,vc)为
(7)
式(7)中:n0为目标区域点的个数;Ω为目标区域集合;(u,v)为目标集合内点的像素坐标。
以机器人在标准位姿Ps处相机获取的图像为例,通过处理后提取的Blob特征如图9所示。
图9 Blob特征提取
通过Blob特征的提取,结合对比分析,采用中间人孔对应的像素面积S0,其中心在像素坐标系下的横坐标u0,纵坐标v0,左边和中间人孔中心之间的距离d1,右边和中间人孔中心之间的距离d2,左边和右边人孔中心之间的距离d3,共6个参数进行后续的控制任务。
BP神经网络是单向传播的多层前向网络,主要包括前向计算和反向传播两部分[20],其对应的网络拓扑结构如图10所示,其中输入层节点的个数n对应输入变量的个数,隐藏层的层数及各层节点的个数可以通过训练过程中网络拟合效果实时调整,输出层节点的个数m对应输出变量的个数。
图10 BP神经网络结构
前向计算过程,主要是将各网络层的输入值与对应的权重相乘,然后将对应层的数值相加,一般采用Sigmoid函数激活,然后向下循环,直到输出;反向传播的过程本质上是误差的传播,将误差对各节点变量求偏导,进而反映各权重值的调整方向,结合学习率进行权重值的调整。经过一轮前向计算和反向传播,神经网络中权重值更新。重复上述操作,直至神经网络满足预设的训练目标,结束网络训练。
假设系统由初始位姿Pi运动到标准位姿Ps处,在水平面内X、Y方向分别需移动Δx、Δy,水平面内绕Z轴需转动Δα,机械臂末端在竖直Z方向需移动Δz,末端俯仰角需转动Δp。由于神经网络的目标是通过训练找到输入变量与输出变量之间的函数关系,而本系统的目标为找到图像特征信息与上述5个自由度变化量之间的映射关系,因此可以利用神经网络得到式(8)所示的隐形函数表示。采用S0、u0、v0、d1、d2、d36个参数作为BP神经网络的输入,Δx、Δy、Δα、Δz、Δp5个参数作为BP神经网络的输出,同时中间采用单隐藏层结构,节点个数为8,即设计“6-8-5”的BP神经网络结构。
(8)
模糊控制器与PD控制器的功能类似,主要包括知识库、模糊化机、模糊逻辑推理机和去模糊化机4部分。知识库由数据库和规则库组成,其中数据库中存放隶属度函数或各变量隶属度值,规则库中存放专家经验转化后的模糊规则,通常为“if-then”语句。模糊化机根据隶属度函数将传感器读取的准确数据模糊化。模糊逻辑推理机根据输入的模糊量,经过模糊规则判断,输出对应的模糊控制量。去模糊化机主要将输出的模糊控制量按照规则去模糊化,进而将清晰的控制量输出给机器人。模糊控制器原理图如图11所示。
图11 模糊控制器原理图
由于神经网络的输出值与真实值存在一定的偏差,同时机器人移动平台采用麦克纳姆轮,其移动过程中的精度较差。因此,在神经网络输出控制后,在第二阶段采用模糊控制器对机器人进行精确控制,直到机器人运动到标准位姿Ps。
通过对比分析,采用Δu0控制移动平台在水平面内X方向的运动,采用Δ(d1/d2)控制移动平台在水平面内的旋转,采用ΔS0、Δv0和Δd33个参数综合控制移动平台在水平面内Y方向的移动、机器臂末端的高度z和俯仰角p3个自由度。
为了便于控制,对上述5个变量分别除以对应的比例因子,将其论域转化到[-5,5]中。同时,语言变量均取值[NL,NM,NS,ZO,PS,PM,PL],隶属度函数采用对称三角形,采用面积重心法去模糊化处理,如式(9)所示,最终得到各变量对应的清晰输出。以Δu0为例,输入、输出之间的关系曲面如图12所示。
图12 输入输出关系曲面
(9)
式(9)中:v为模糊变量取值;μv(v)为隶属度函数。
实验自行搭建了1∶1仿真的蒸汽发生器,采用自主设计的多自由度智能调节系统。机器人下位机采用倍福控制器,通过PLC控制电机运动,上位机采用PC机,搭载i5-1135G7处理器。上位机与下位机之间采用ADS协议进行通讯。机器人工作机构的最后一个关节搭载500万像素的工业相机,相机两侧安装条形光源用于打光处理。通过视觉伺服控制完成机械臂末端法兰面和蒸汽发生器表面法兰面的对中贴合。通过螺栓连接使机械臂末端与蒸汽发生器法兰面锁紧固定,进而控制小型镗床完成切削任务,实现咬死的人孔螺栓的去除。系统运行的整体流程如图13所示。
图13 多自由度智能调节系统运行流程
为了实现较高精度的对中目标,首先对相机在初始位置处获取的图像进行处理,将S0、u0、v0、d1、d2、d3导入训练好的神经网络中,得到Δx、Δy、Δα、Δz、Δp共5个输出量,将输出量映射到移动平台和电动缸J1、J2的控制量中。当机器人运动到指定位姿,实时读取相机图像并处理,采用3个人孔的特征信息对机器人进行模糊控制,使其运动到标准位姿。由于法兰面共有16个螺栓孔,相邻螺栓孔之间的圆周角为22.5°。通过编号确定咬死螺栓的位置n,控制内齿轮R转动22.5n°。最后控制丝杠滑块X1向前运动100 mm,完成机械臂末端法兰面和蒸汽发生器法兰面的对中贴合。
数据集采集过程,首先通过手动控制将机器人移动到标准位姿Ps处,然后将机器人在5个自由度分别移动Δxi、Δyi、Δαi、Δzi、Δpi,将图像Ii及上述运动量作为数据集存储。共采集600张图像及对应的运动量构建工业场景数据集,提取其特征信息用于神经网络的训练,其中550张图像的特征信息作为训练集,50张图像的特征信息作为测试集。数据集经过图像处理后部分不同位姿下获取的图像如图14所示。
图14 工业场景数据集
BP神经网络的学习率设置为0.05,训练的误差目标设置为0.000 05,最多迭代1 000轮,采用五自由度实际运动量和神经网络输出量的均方误差作为损失函数。最终,神经网络在训练过程中均方误差变化如图15所示,在测试集上五自由度的相对运动量的预测效果如图16所示。BP神经网络在测试集上预测的五自由度平均误差如表2所示。可以看出,BP神经网络实现了较好的预测效果,仅在Y方向上有较大的误差,但仍为模糊控制提供了良好的初值条件。
表2 五自由度的平均误差
最终采用模糊控制进行五自由度的微调,使机器人运动到标准位姿Ps处。通过转动R和移动X1,实现机器人工作机构末端法兰面与蒸汽发生器法兰面的贴合。
为验证最终的对中定位精度,在机器人工作机构末端固定千分表,千分表探头与蒸汽发生器表面法兰盘内环贴合。将R轴转动360°,取千分表读数的最大值与最小值之差作为最终的对中定位误差。通过实验测得对中定位的平均误差在±1 mm范围内,机器人平均在43 s内完成法兰盘的对中任务,相较于人工手动调节所需的145 s有较大的提高,满足实际应用需求。
提出了结合BP神经网络与模糊控制策略的控制技术,进行机器人无标定视觉伺服控制。BP神经网络能够有效建立图像特征与多自由度运动的映射关系,同时模糊控制能够减小神经网络的预测误差和麦克纳姆轮的运动误差。结果表明,在未进行相机、机器人标定,未采用图像雅可比矩阵在线估计的情况下,该算法能够有效应用于核电站蒸汽发生器法兰面咬死的人孔螺栓去除任务,视觉伺服控制误差在±1 mm范围内,平均耗时43 s,相较于手动控制提速3倍以上,在工程应用中能够快速、准确地完成法兰对中任务。