APP下载

基于BP神经网络的移动机器人循迹控制

2013-09-17雷双江肖世德熊鹰查峰

机床与液压 2013年3期
关键词:循迹微控制器移动机器人

雷双江,肖世德,熊鹰,查峰

(西南交通大学机械工程学院智能机电技术研究所,四川成都610031)

自主移动机器人是指在没有人的干预且无需对环境做任何规定和改变的条件下,能够有目的地移动和完成相应的任务。在自主式移动机器人相关技术的研究中,导航技术是移动机器人实现智能化和完全自主的关键技术[1]。移动机器人具有识别、推理、规划等智能机制,能够把感知和智能控制结合起来,能在非特定环境下工作,实现探测、救生等功能,具有广阔的应有前景。自主移动机器人多采用光电检测技术实现定位,机器人按照预先编制好的程序循迹,设计简单、实用,运行速度快,可以较好地实现实时控制,但光电传感器对光线十分敏感,受环境影响较大,在循迹过程中易出现错误,如转向错误、出轨和静止等现象,系统的智能化较低,仅适用于一些要求不高的场合[2]。

基于多传感器信息的融合 (MSDF)技术在移动机器人上的应用已经取得了巨大的进步,冗余性和互补型的数据合成和融合提高了控制系统的可靠性和稳定性[1]。基于多传感器的信息融合有多种不同的方法,其中BP神经网络是一种多输入多输出的非线性并行信息融合处理映射器,用于多传感器的信息融合是非常有效的。

作者提出了一种基于BP神经网络 (BPNN)的移动机器人循迹控制系统,能对环境和前进状况自动做出判断,并根据实际情况控制前进方向,它利用传感器技术、微处理器技术、电子电路技术和PWM技术等实现感测和判断,应用人工智能技术来辨别环境,自动选择适宜的运动模式,实现移动机器人自动沿黑色指导线前进。该移动机器人能够模仿人的思维,实现在特定环境中的自主探测,为自主移动机器人探测技术的发展提供了一种新的方向。

1 移动机器人循迹控制系统

1.1 控制系统的工作原理

控制系统通过车底的红外光电传感器感测外界黑色指导线的实时变化情况,把感测到的光信号转化为电压信号,作为BPNN的输入。由BPNN按照事先对测得数据已经划分好的类进行分析归类,判断出移动机器人所处的环境,在与内置的特征参数进行对比后发送电机控制指令给电机驱动模块。电机驱动模块驱动左右轮的电机从而实现移动机器人运动时的各种状态。控制系统结构如图1所示。

图1 移动机器人控制系统结构框图

1.2 控制系统的基本功能

(1)自动循迹功能。控制系统采用中断方式,根据外界黑色指导线的变化情况,自动选择适宜的运动模式。当红外传感器均检测到黑色指导线时,移动机器人后退;当红外传感器均未检测到黑色指导线时,移动机器人原地打转;当只有右边传感器检测到黑色指导线时,移动机器人左大转……由此实现移动机器人的各种状态。

(2)自动和手动兼容。控制系统安装了NRF24L01无线通讯模块,可以通过遥控器实现小车的手动控制,满足所需的运动状态。

2 控制系统硬件设计

控制系统的硬件主要由循迹模块、微控制器模块、电机驱动模块组成。循迹模块主要是用于感测黑色指导线的实时变化情况,把测得的数据以电压的形式传输到微控制器模块进行处理;位于车底的光电传感器采用TCRT5000红外光电传感器,分别安装在小车底盘的左中右3个位置,当没有检测到黑色指导线时,输出电平为高电平,检测到黑色指导线时,输出电平为低电平。微控制器模块主要是用于接收循迹模块输出的电压信号,将信号与BPNN划分的类别进行比较,判断出所处的环境状况,并通过微控制器送出控制信息;微控制器采用STM32F103V8芯片,采用最小系统,通过接口与各功能板相连。电机驱动模块主要是用于接收微控制器模块发出的PWM脉冲控制信号,从而实现电机的运动;电机驱动模块采用L298N电机驱动芯片,通过微控制器模块上的接口接收PWM脉冲信号,从而驱动电机运动。

控制系统硬件控制电路图如图2所示。

图2 移动机器人控制系统结构框图

3 控制系统软件设计

控制系统要实现移动机器人的循迹控制,首先要对移动机器人所处的黑色指导线环境做出判断,因此控制系统需要对黑色指导线的有无做出判断,区分出何时左转、右转、前进等。这部分工作需要进行试验,对数据进行采集,划分成不同的类,然后在自主循迹过程中对传感器输出的电压信号进行识别,判断出它所属的类,进而对电机进行控制。文中选用红外传感器对环境进行检测,采用了基于多传感器信息融合的BPNN算法对输入信号进行分类,进而对移动机器人的电机驱动模块进行控制。

3.1 BPNN设计

BPNN的产生来源于BP算法,BP算法由两部分组成:信息的正向传播和误差的反向传播。通过输入信号的正向传播和误差的反向传播来不断调整各神经元之间的权值,以减小期望输出和实际输出之间的误差,达到训练样本的目的,最后得到传感器检测值与运动环境之间的映射关系[3]。

在控制系统工作前经过多次试验,采用的训练输出样本如表1所示。

表1 训练输出样本

为了获取移动机器人运动过程中的环境信息,在移动机器人车底安装了3个红外光电传感器,则输入层具有3个神经元,输出层输出的是移动机器人对环境判断的类别。理论已经证明:对任意给定的函数f(x1,…,xn)和误差精度ε>0,总存在一个三层前馈神经网络,其隐含层神经元的作用函数为δ(x),输入-输出层均为线性神经元,使得网络的输入-输出关系Y=NNf(x1,…,xn)总能以给定的精度逼近给定的函数 f(x1,…,xn)[4]。

该控制系统选择一个隐含层,其神经元数由公式(1)确定:

式中:l为隐含层节点数,n为输入层节点数,m为输出层节点数,b为1~10之间的常数。通过实验法确定隐含层神经元数为5。选取S型函数 (Tansig)和线性输出函数 (Purelin)为激活函数。

定义输出层的误差函数为:

式中:E表示输出层的误差平方和,tk和ak分别表示输出层第k个神经元的输出样本和实际输出,s2表示输出层的神经元数。

由于BP算法在实际运用中存在收敛速度慢、完全不能训练和可能陷入局部极小点的情况,为此选取Levenberg-Marquardt优化方法为网络的主要训练算法,以达到提高网络的泛化能力和收敛速度之目的。LM算法可以描述为:

其中:X(k)为网络所有权值和偏置值组成的向量;S(X(k))为由X的各分向量组成的向量空间中的搜索方向,起始时,λ取一个很大的数,其实相当于步长很小的梯度下降法,随着最优点的接近,λ减小到零,则S(X(k))从负梯度方向转向牛顿法的方向;H可通过雅克比矩阵近似运算:

3.2 MATLAB程序设计

把左、中、右红外光电传感器输出的电压值作为BPNN的输入,把所处的运动环境类别作为期望输出,把运动过程中测得的足够多的、具有代表性的电压值作为训练样本进行学习。只要输入电压数值,根据这种对应关系,就可以得到输出样本应属的类,即可以得到移动机器人所处的行车环境,进而知道应该对电机驱动模块输出哪种脉冲,实现对电机的自动控制。

用MATLAB进行训练的主要代码如下:

其中:p为输入向量,t为输出向量,Epochs为训练的最大次数,lr为学习速率 (通常取为 0.01~0.7),net为神经网络对象。初始样本经过MATLAB训练结果如图3所示,经过4次训练,误差达到规定要求。

图3 网络的训练误差

3.3 程序实现

微控制器分类完成后,采用C语言在Keil uV-sion4中进行编程来实现电机状态的实时转换,其中包括电机的前进、后退、原地打转等功能。只有当它们各自满足所需条件时,才能进行电机状态的转换。

控制系统软件完成的主要功能有:控制系统的初始化;采集红外光电传感器输出的电压值;主程序循环判断环境所属类别并输出PWM信号驱动电机;控制系统出错时的自动复位。主程序流程图如图4所示。

图4 主程序流程图

4 结论

BPNN对于信息的处理过程具有并行、自组织、自学习及分布式存储信息等特点,为移动机器人的智能化提供了一个有力的手段,尤其是在模式识别、分类等领域。文中提出一种基于BPNN的移动机器人循迹系统,采用Levenberg-Marquardt为训练算法。实验结果表明:经过BPNN对输入样本的训练使分类的正确率达到99%,系统能够对外界环境变化做出快速、准确的反映;在室内寻找黑色指导线的环境中,有效抑制了移动机器人在循迹过程中的出轨和静止现象。由于该系统采用模块联系方式,在实际使用中,具有可靠性高、调试方便等优点。

构建了基于BPNN的移动机器人循迹控制系统,系统的不足在于:(1)BPNN是通过训练样本集来逼近期望输出,在实际操作中很可能由于系统的复杂性导致训练样本难以覆盖系统可能具有的全部特性,因此系统的泛化能力和适应性较差,并且数据量大也将导致训练时间较长;(2)控制系统通过MATLAB来对训练样本进行分类,在设计过程中,作者曾尝试直接在主程序中导入BP算法实现,然而这将导致系统运行速度变慢和调试非常复杂,因此如何在控制程序中加入BP算法而不影响系统的性能是以后的研究方向;(3)由于BP算法本身的局限性,使控制系统对于完全未知的环境不具备导航能力,因此选择改进的控制方式如神经网络自适应学习鲁棒自适应跟踪控制对于移动机器人的导航技术具有较大的价值。

【1】张毅,罗元,郑太雄,等.移动机器人技术及其应用[M].北京:电子工业出版社,2007.

【2】张晓琴.基于改进BP神经网络的移动机器人寻线控制[J].工业控制计算机,2010,23(6):59 -60.

【3】丛爽.面向MATLAB工具箱的神经网络理论与应用[M].合肥:中国科技大学出版社,2009.

【4】何玉彬,李新忠.神经网络控制技术及其应用[M].北京:科学出版社,2000.

【5】方建军,刘仕良.温室移动机器人运动控制器设计与实现[J].机床与液压,2005(3):46-47.

【6】李秀珍,孔纪名,李朝凤.基于Matlab的BP神经网络在你泥石流危险性评价中的应用[J].工程勘察,2010(1):47-50.

【7】周求湛,吴丹娥,王淼石,等.基于微控制器的新型智能车灯控制系统的设计与实现[J].吉林大学学报,2009,39(2):480-483.

【8】XIE Youhui,DAI Wenjun,DAI Yongtao.A Method of Phase Tracking Based on Neural Network[C]//2009 International Joint Conference on Artificial Intelligence,2009:381-384.

猜你喜欢

循迹微控制器移动机器人
基于DFT算法的电力巡检无人机循迹检测系统设计
移动机器人自主动态避障方法
基于单片机的智能循迹小车的设计
物联网技术在微控制器实验教学中的应用
基于Twincat的移动机器人制孔系统
智能差分循迹小车设计
基于MC9S12XS128处理器的智能循迹小车分析研究
Atmel针对新一代物联网应用发布全新32位微控制器
最新STM32设计工具增加对混合信号微控制器的支持
极坐标系下移动机器人的点镇定