基于ReLU神经网络的移动目标视觉伺服研究

2018-08-24 07:49
计算机测量与控制 2018年8期
关键词:伺服系统控制器神经网络

(浙江工业大学 信息工程学院,杭州 310023)

0 引言

机器人视觉伺服系统是将视觉传感器技术与机器人控制相结合以提高系统的性能与灵活性,从而使得机器人能够更好地完成所交予的任务[1]。一般可将该系统分为3个方面:视觉系统、控制策略以及实现策略[2]。其中,视觉系统主要任务是采集目标所处环境图像,经由图像处理算法和模型计算得出目标的位置信息。而控制策略则是需要结合视觉系统提供的信息对末端执行器进行闭环控制,驱动其运动至期望位姿。这种视觉伺服系统增强了机器人与外界的交互能力,使得它能够应用在许多领域如:工业分拣机器人、农业采摘机器人等等[3]。

为了使机器人视觉伺服系统能够具有更好地完成对运动的跟踪以及抓取任务,就需要设计性能良好的视觉系统以及控制策略以解决移动目标检测和机器人实时控制的问题。需要视觉系统能够完成对移动目标进行检测并估计其状态的任务。控制策略则需要满足机器人实时控制的要求,结合视觉系统提供的信息完成任务。在基于位置的视觉伺服控制中,控制策略就是找出关节空间增量到笛卡儿空间增量的非线性映射。目前,这种映射关系多用高维非线性矩阵表示,这种方法存在着两点不足:其一,各个关节之间存在着复杂的耦合关节,使得解耦过程过于复杂并且可能存在增根,此时就需要依据结果特点来确定位姿,不适用于实时控制;其二,可能存在多解,传统方法难以得到单一优化解。对此,已有一些研究是利用神经网络通过学习能够表达任意非线性连续函数的特性来解决该问题[4]。其原理就是利用人工神经网络对视觉伺服系统中不确定的模型进行辨识,并将辨识后得到模型用于伺服控制。主要成果集中于在先验知识较少的情况下,利用神经网络逼近视觉反馈中非线性的模型完成视觉伺服任务,如Ker R[5]通过设计BP(Back Propagation)神经网络来辨识各关节角度与末端位姿的关系,并将训练后的神经网络用于对机械臂的控制并完成避障任务,通过实验结果证明神经网络控制机械臂可以很好地完成任务并避免奇异问题。也有将RBF(Radial Basis Function)神经网络与模糊控制结合,Spyros N[6]采用多个径向基函数网络模型与专家系统相结合,大大减少了训练时间,降低了系统误差,并成功应用于机器人逆运动学控制中。

本文利用ViBe算法构建视觉系统来完成检测运动目标任务,并将神经网络应用于机器人运动控制中,从而解决机器人实时控制的问题。同时选择修正线性单元(Rectified Linear Unit)[7]作为神经网络的神经元,通过设计架构以及学习算法,以提高网络模型的逼近精度以及泛化性能。之后结合机器人逆运动学构建神经网络控制器并通过实验结果验证方法的有效性。实验主要是在NAO机器人平台上建立视觉伺服系统,完成对于给定的移动目标物体抓取任务。利用视觉系统提供的位姿信息,确定抓取路径,控制机器人手臂完成对目标物体进行跟踪、抓取操作。最后依据实验结果验证上述方法的有效性和可行性。

1 视觉系统设计

在机器人视觉伺服系统中,视觉系统主要负责感知目标所处环境信息以及提取目标信息。由于采集的图像中包含许多的冗余信息,如何从中提取出有效的信息就是图像处理算法所需要做的工作。另外,当目标处于运动状态,如何快速地检测与估计目标状态也是设计视觉系统时需要考虑的问题。

1.1 单目定位模型

一般可将视觉系统分为图像信息采集和视觉处理两部分,图像信息采集就是依据相机模型将三维空间投影到二维图像空间的过程,视觉处理则是处理已经获取到的图像信息从而得到视觉反馈的过程。NAO机器人一般利用本身配置的两个相机模型为针孔模型的摄像头感知其所处环境。摄像机可随着头部的关节运动而改变视角,从而获取更大的视角。

利用NAO的单个摄像头对目标进行定位,主要原理是依据小孔透视模型建立起像平面坐标与实际空间中的三维坐标之间的映射关系,从而完成视觉定位任务,依据已知信息计算得出目标在机器人坐标系下的三维坐标。其中最重要的就是如何从采集的图像中有效地提取出目标特征,以及利用目标特征结合已知模型对当前位置状态进行估计,模型如图1所示[8]。

图1 NAO机器人单目定位模型

图中oc为图像空间坐标系,ow为机器人坐标系,(u0,v0)为图像中心坐标,h1为目标高度。基于视觉的定位的有以下步骤:建立机器人坐标系,构建模型并推导出像平面坐标与实际空间中的三维坐标两者之间的运算关系,从而计算得出目标在机器人坐标系下的空间位置。若目标中心在像平面上的坐标为(u,v),则其在像平面上的坐标为图像中心的物理尺寸为像素差与尺度因子的乘积,如公式(1)所示:

(1)

其中:dx,dy为相机尺度因子。依据三角函数关系结合摄像头焦距f,则有

(2)

根据上述公式可得

(3)

依据三角形相似原理可求得目标物体的空间坐标为(xt,yt,h1)。

(4)

上述这种基于NAO机器人的机械机构的单目视觉定位模型,结构较为简单、便于实现具有广泛的应用性。但是其精度主要却决于摄像头标定的精度,需要确定精准的内外参数,并且测量范围较为狭小。要想准确地获取目标在图像空间的特征坐标(u,v),就必须要对采集到的数字图像进行处理,从而剔除无效信息。

1.2 移动目标检测算法设计

由于需要对运动目标进行操作,所以需要对采集到图像进行运动检测以便于区分前景与背景。依据NAO机器人计算能力以及内存,本文选用ViBe算法作为运动检测算法[9]。这种算法具有初始化速度快、内存消耗和占用资源较少等优势,较为适合用于机器人视觉伺服系统中。其原理以及算法步骤可总结如下:

1)初始化建模,依据采集的单图像中每个像素点的空间分布特性进行背景模型,如公式(5)所示:

(5)

2)对t=k时刻之后采集到图像序列基于阈值采取前景背景分割操作,通过设定阈值来检测运动目标,如公式(6)所示:

(6)

3) 背景模型更新,每个像素点在依据公式(5)建立背景模型后,都有一定概率更新模型,通过结合步骤(2)来检测运动目标。

将上述算法用于NAO机器人视觉伺服系统中,其结果如图2(a)、(c)所示。将原图像转换为灰度图,依据上述算法进行前景与背景的分割。

图2 运动目标检测结果

期望通过运动检测算法可以得到当前处于运动状态的目标,并提取它的特征,也就是计算出目标质心在像平面中的坐标(u,v)。在图像处理中,常常用几何不变矩[10]来作为目标的重要特征。这类特征可以客观地区域形状目标的几何特征,其具有旋转、平移、尺度等特性的不变特征,其形式如公式(7)所示。

(7)

可通过零阶矩M00和一阶矩M10、M01来求取目标质心。这种方法对噪声不敏感,抗干扰能力比较强,并且精度也有保证,如公式(8)所示。

(8)

上述图像处理方法得到目标特征在图像空间中的位置,再结合公式(3)、(4)可有效地对目标的空间位置进行提取,其结果如图3(d)。为了完成对目标抓取的操作,就需要估测目标在下一时刻的位置。将目标运动视为空间中匀加速的质点,建立位移和速度的模型,如公式(9)所示:

vt=vt-1+aΔt

(9)

式中,t代表当前时刻,xt、vt、a分别代表目标的位移、速度、加速度。依据公式(9)得到系统的状态方程和观测方程为:

(10)

式中,W(t) 、V(t) 分别为系统噪声和观测噪声。依据公式(10)以及卡尔曼滤波[11]来预测目标在下一周期的状态。将上述视觉系统用于基于位置的视觉伺服中,可以获取运动目标当前所处位置以及预测下一周期的状态。这样可以为机器人闭环控制系统提供控制目标,方便后续的末端执行器的操作,从而完成任务。

2 机器人控制策略设计

由于神经网络具有如下特点:能够学习和适应严重不确定性系统的动态特性,同时通过修正连接强度来充分逼近任意复杂的非线性系统。它的研究和应用己经广泛渗透到智能控制、非线性优化、机器人等各个领域。尤其是在机器人逆运动学中,利用神经网络可以解决机器人逆雅可比矩阵实时求解的问题,从而避免计算量大、系统结构复杂等缺陷。

2.1 神经网络控制器

在机器人视觉伺服系统的控制策略中,控制器依据当前系统状态和期望输出从而进行控制策略计算,输出除了单一的控制量,也可以指一串动作或一个决策。利用神经网络构建控制器就是模拟上述过程。比较典型的应用就是利用神经网络直接逆控制,其基本原理就是将神经网络模型被直接用作误差闭环系统的反馈控制器。但是直接逆模型控制法没有考虑系统本身的状态,为了改善控制性能,通常在输入端引入了系统当前的状态。这种控制方法具有两个优势[12]:网络只是在感兴趣的工作范围内训练,因而所有信号皆由期望输出派生;直接最小化网络输出的误差,算法较为简单。在这种控制方法中,常用的Sigmoid系激活函数作为神经网络的神经元,其形式如公式(11)所示:

(11)

式中,u为节点输入,y为节点输出。这类激活函数具备很好特性可以将模拟信号的特征空间上的映射。但是在学习时需要将误差从输出层反向传播,在各层要乘当前层的输入神经元值以及其一阶导数,如公式(12)所示:

(12)

由于y′∈(0,1),导致每经过一个隐含层,其误差都是成倍的衰减。如若加深神经网络结构,就会使得梯度不断的衰减,甚至于消失,导致网络难以学习。这就使这类神经网络在逼近精度以及泛化性能上都有所限制,利用其构建的控制器性能较差。为了提高神经网络的刻画能力,本文选用ReLU来替代传统的Sigmoid作为神经网络的激活函数。因为ReLU是一个分段线性的函数,其结构如公式(13):

f(u)=max(0,u)

(13)

其优势在于:梯度不饱和,因此在反向传播过程中,减轻了梯度弥散的问题,神经网络前几层的参数也可以很快的更新。计算速度快;在学习过程中,Sigmoid函数计算激活值时需要计算指数,而ReLU函数仅需要设置阈值。加快了传播的速度。因此,可以极大地加快收敛速度。所以构建深层ReLU神经网络可以获得更好的拟合精度和收敛速度,从而取得较好的控制效果。其结构如图3所示,输入层以及隐含层节点皆选用ReLU,再在输出层添加一个较为平滑的激活函数,最终就会得到一个平滑的函数近似。

图3 ReLU神经网络结构

利用ReLU神经网络模型逼近机器人关节状态、期望末端执行器的位姿增量与机器人关节增量之间的关系,如公式14所示:

Δqt+1=F(qt,Δxt+1)

(14)

并将准则函数定义为:

(15)

公式中m代表样本数量,Δqt+1期望的关节增量,F(qt,Δxt+1)为当前网络的输出。通过不断地训练,可获得ReLU神经网络控制器。

2.2 基于神经网络的视觉伺服系统

机器人视觉伺服控制系统由两个闭环构成,外环为笛卡儿空间的位置环,内环为各个关节的速度环。视觉位置反馈由图像采集、特征提取、笛卡儿空间三维坐标求取等部分构成。由视觉系统获取期望的位置和姿态与机器人末端执行器的位姿进行比较得到位姿偏差,根据位姿偏差设计机器人位姿调整策略,也就是在笛卡儿空间规划一条可行的路线完成任务。得期望的机器人末端执行器在笛卡儿空间的运动速度,利用ReLU神经网络控制器计算出各个关节空间的速度。由关节控制器,根据各个关节的期望运动速度,对机器人运动进行控制,其具体结构如图4所示。

图4 神经网络基于位置的视觉伺服控制系统框图

上述控制结构与传统的基于位置的视觉伺服相比,利用ReLU神经网络代替逆雅可比控制,以获得更好动态性能。

3 实验结果及分析

实验主要在NAO机器人平台上进行,这是一种结构与人体相似的类人型机器人,具有多个自由度并且搭载多种传感器,能够进行机器人控制、视觉伺服、人机交互等多种实验[13]。本文实验的主要步骤是利用视觉系统对运动目标进行快事识别以及定位,并基于控制策略驱动机器人末端执行器对目标进行抓取,从而完成任务。

首先控制机械臂在空间内做2 000次的随机运动,将记录下的数据作为训练集,用于离线训练神经网络。利用图3结构的ReLU网络模型进行学习,并应用于机器人视觉伺服系统中,作为闭环控制的控制器。之后构建如图4结构的视觉伺服系统,利用其视觉系统对运动目标进行检测,之后结合定位模型得到当前的位置。通过卡尔曼滤波预测目标在下一周期的位置,将结果与当前机械臂末端执行器空间位置的偏差以及各个关节当前状态作为神经网络控制器的输入量,从而得到各个关节增量。再由关节控制器,控制关节运动。运动过程中,NAO机器人右臂各关节角变化,如图5所示,图中各曲线代表关节在执行任务期间速度的变化。

图5 关节角度变化图

末端执行器在空间中的位姿以及目标的运动轨迹,如图6所示,图中NAO机器人右臂的末端执行器在神经网络控制器的驱动下,向目标靠近。

图6 末端执行器与目标空间轨迹

在机械臂运动期间,其误差变化如图6所示。从图中可以看出两者误差在不断缩小,最终可完成抓取任务。依据上述实验结果可以证明所提方法能够有效地完成对运动目标的跟踪以及抓取任务。同时也验证将ReLU神经网络用于构建视觉伺服系统控制器的可行性。

4 结论

神经网络能够逼近非线性函数并且不依赖于系统的模型的能力,使得可以将其作为机器人控制的基础。本文提出基于ReLU神经网络构建机械臂运动学控制器,并结合ViBe运动检测算法设计视觉系统以完成对移动目标跟踪抓取的任务。通过实验结果,证明上述方法能够有效地解决了视觉系统对运动目标检测和定位的问题和机器人实时控制的问题以及算法的可行性。神经网络控制器是解决非线性的机器人控制问题的较为有效的方法,所以随着神经网络结构和训练算法的发展,其在机器人控制中将得到更好的应用。

猜你喜欢
伺服系统控制器神经网络
浅谈支撑轴力伺服系统在深基坑中的应用
基于ESO的电液位置伺服系统反步滑模控制
基于递归模糊神经网络的风电平滑控制策略
工商业IC卡控制器改造为物联网控制器实践
液压伺服系统产品测试生产流程优化
PLC可编程控制器相关外置的选择计算研究
神经网络抑制无线通信干扰探究
基于神经网络的中小学生情感分析
基于Q-Learning算法和神经网络的飞艇控制
模糊PID控制器设计及MATLAB仿真