基于BP神经网络的障碍物模式识别

时间:2022-04-23 07:12:23

基于BP神经网络的障碍物模式识别

摘 要:应用BP神经网络理论进行障碍物的模式识别,针对全向移动机器人的特点,构造出一种基于BP算法的神经网络分类器;应用超声波传感器采集的障碍物距离信息作为输入,期望的分类模式作为输出,并通过训练样本库中的数据,对BP神经网络分类器中的参数进行训练;通过matlab软件对训练的过程进行仿真,这种应用BP神经网络对障碍物模式的分类,在训练过程中能够得到很小的分类误差,并且用测试样本对生成的分类器进行测试,得到了正确的结果。从而说明这种BP神经网络分类器能够很好的对移动机器人周围障碍物的模式进行分类。

关键词:避障;模式识别;全向移动机器人;超声波传感器;BP神经网络;样本库;分类误差;仿真

中图分类号:TP242.6 文献标识码:A

Obstacles based on BP neural network pattern recognition

ZHANG Qiuhao,MENG Xianhui,GUO Hongche,SUN Baiqing

(Shenyang University of Technology,Shengyang 110870)

Abstract:Adopted theory of BP neural network to realize pattern identification of obstacle. Constructed a kind of neural network classifier based on BP algorithm, according to the characteristics of omni-directional mobile robot.Taked the distance of obstacle acquired by ultrasound sensor as input,classificaion pattern expected as output, then, trained the parameter of BP neural network classifier through training the data in sample library. Simulated the process of training with Matlab software. During training, this pattern classification could gain less error and gain correct resullt by adopting testing sample to test classifier. Showed that this kind of BP neural network classifier can execute effectively pattern classification to obstacles around mobile robot.

Key words:obstacle avoidance;pattern classification;omni-directional mobile robot;ultrasonic sensors;BP neural network;Sample library;Classification error;computer simulink

移动机器人的智能避障算法已经有许多学者进行了深入的研究,机器人在导航过程中,对障碍物的模式识别是感知当前环境的一种重要方法,适合移动机器人本身特点的障碍物模式识别是好的避障算法的基础。其中应用人工神经网络对障碍物进行模式的分类和识别也有很多[1-2]。在运用模式识别的若干种神经网络模型中,BP模型应用最为广泛。其非线性映射能力是保证其成功实现各种简单或复杂分类的主要原因,而并行结构则加速了运算。更重要的是,它将信息分布式存储于连接权系数中,使网络具有很高的容错性和鲁棒性,有效地解决了模式分类和识别中普遍存在的噪声干扰和输入模式的部分损失问题 [3] 。

1 BP神经网络分类器的结构和机理

1.1 BP神经网络结构

BP神经网络,也称误差后向传播神经网络【4】,它是由非线性变换单元组成的多层前馈网络。一般由输入层、输出层和隐含层三部分组成。隐含层可以为一层或多层。根据Kolmogorov定理(1957)[5],一个三层的BP网络足可以完成任意的m维到q维的映射,即一般只需一个隐含层就够了。同时从简洁实用的角度考虑,也提倡选用一个隐含层,隐含层含有n个神经元。输入层和隐含层之间以及隐含层和输出层之间通过权值来表示连接强度。这就是三层BP神经网络结构(如图3-1)。

输入层输入向量X=[x1,x2,…,xi,…xm]T,隐含层输出向量为Y=[ y1,y2,…,yj,…yn]T,输出层输出向量为Z=[ z1,z2,…,zk,…zq]T,期望输出向量为T=[ t1,t2,…,tk,…tq]T。输入层到隐含层之间的权值矩阵用A表示,A=[ a1,a2,…,aj,…an],其中列向量aj为隐含层第j个神经元对应的权值向量,隐含层到输出层之间的权值矩阵用B表示,B=[ b1,b2,…,bk,…bq],其中列向量bk为输出层第k个神经元对应的权值向量。

1.2 BP算法

BP算法的思想是,学习过程即信号的正向传播与误差的反向传播两个过程组成。

由信号的正向传播,这里定义f(*)为神经元激励函数,对于隐含层有

yj =f(netj) j=1,2,…,n (1)

netj= aijxi j=1,2,…,n (2)

对于输出层有

zk =f(netk) k=1,2,…,q (3)

netk= bjkyj k=1,2,…,q (4)

再来看误差的反向传播和权值的修正,BP算法采用非线性规划中的最速下降法,按误差函数的负梯度方向修改权值系数。

定义误差函数E,取期望输出和实际输出之差的平方和为误差函数,则:

E=12 (T-Z)2=12 (tk-zk)2 k=1,…,q (5)

进一步展开至输入层

E=12 {tk-f[ bjkf( aijyi)]}2 其中k=1,…,n j=1,…,n i=1,…,m (6)

由上式可以看出,网络输入误差是各层权值aij、bjk的函数,因此调整权值可以改变误差E。调整权值的原则是使误差不断的减小,应使权值的调整量与误差的负梯度成正比,即:

aij= i=1,2,…,m j=1,2,…,n (7)

bij= j=1,2,…,n k=1,2,…,q (8)

式中负号表示梯度下降,η∈(0,1)为学习率。

各层权值调整过程是循环进行的。权值不断调整的过程,就是网络的学习训练过程。通过不断的调整权值和新的数据不断加入,可以使误差逐渐的减小。

2 构建BP神经网络分类器结构

模式识别的分类问题归根结底是一个模式特征空间的划分问题,或者说是一种映射问题。而BP网络的输入输出关系可以看成是一种高度非线性的映射关系,其信息处理能力也是来自于一种简单的非线性函数的多次复合。根据BP网络结构定理及有关性质,大家知道,对于任何在闭区间内的一个连续函数都可以用一个隐含层的BP网络来逼近,也就是说一个三层的BP网络可以完成任意的n维到q维的映射。BP网络分类器就是在这个基础上达成对样本分类的,也就是说我们可以应用BP网络分类器完成从环境信息到环境分类的映射。

本课题应用的移动机器人(如图2)采用的是全方位移动机构(如图2-a为俯视图 ),车轮为全向轮(如图2-b),当车轮旋转时,轮心相对于地面的速度 是轮毂速度 与辊子滚动速度 的合成, 与 垂直。这种结构的车轮在驱动力的作用下可以前进或后退,当受到横向的外力时又可以自由的横向移动,因此经过适当的组合后就可以实现机器人的全方向移动和原地转向运动,以及这两种运动的合成[6]。

结合全向移动机器人能够全方位移动和原地转向的特点,对周围障碍物分类比较具体化,更贴近于实际。本次研究把其周围障碍物的模式分为10类 (如图3)。为减小输出层神经元数,我们做一次处理,采用二进制编码来作为输出的目标向量。把10类用4位用二进制编码表示,如0000,0001,…,1010等。故输出层的神经元的个数为4个,即k=4。

移动机器人的工作环境空间是一个二维空间,其只对障碍物的形状和距离车体的远近敏感,所以把机器人和周围环境中的障碍物的距离做为BP神经网络分类器的输入。采用NU40C10T/R-2型超声波传感器和AT89S51单片机组成系统对周围环境中的障碍物进行测距【7】,。NU40C10T/R-2型超声波传感器的方向角为60±15°,标称频率40kHz。AT89S51单片机通过RS232接口电路与PC连接,从而可以把检测的数据传给PC进行处理。

结合全向动机器人的特点和BP神经网络分类器所要的分类结果,要求机器人对周围环境的感知要全面,传感器在机器人上的分布(如图4),并且对传感器进行了编号,为以后研究做准备。从而可以确定输入神经元的个数为15,即m=15。传感器所测定的距离值就做为BP神经网络分类器的输入,并且在程序上把对障碍物检测的距离做了处理,500mm为安全距离,一般机器人不会靠近障碍物500mm。检测距离大于1000mm的赋值1000mm。

隐含层神经元的个数,这里应用了一个经验公式n= +β,其中n为隐含层神经元的个数,m为输入层神经元个数,q为输出层神经元个数,β为1-10之间的任意一个数,取β=6。可得n= +10=16,即n=16。

选择S函数为神经元激励函数[8]。因为输出为二进制编码(0,1),所以在输出层选择S型对数正切函数(式9)。隐含层激励函数我们也选取这个函数。即我们前面1.2节所提到的f(*)有

(9)

3 BP神经网络分类器训练和测试

Fig.5 BP Neural network classifier

构建完了BP神经网络分类器的结构即各层元素个数,我们就通过训练来确定各层元素之间的连接强度即权值系数。从而就得到一个BP神经网络分类器,然后我们再对它评价。这就是BP神经网络分类器训练和测试流程(如图5)。

首先,建立好的训练样本库,网络的性能与训练的样本密切相关,既要有成规模的训练样本,又要样本有很好的全面性和代表性。应用样本数据通过训练来确定BP神经网络分类器中的权值,当权值确定好后,意味着BP神经网络分类器生成。然后我们可以用一些新的实时数据进行进行测验,这样就能够对分类器进行评价。

本次研究对每个期望划分出来的类型进行10次的数据采集,生成训练样本库。由于写作条件的限制,本文只列举出其中每类输出的3次采集数据代表训练样本库。其中输入量为传感器所测量的距离值,输出类为我们所期望的BP神经网络分类器所分类出来的结果。

根据前面1节所述BP神经网络的机理和其训练和测试流程,首先我们通过matlab对训练的过程和结果进行仿真[9-10],其中学习率η=0.05,允许误差为5%,把100个训练样本数据训练100次。

程序如下:

p_test=xlsread('训练样本.xls','sheet1','A103:O105');

t_test=xlsread('训练样本.xls','sheet1','P103:S105');

P=xdata;

T=ydata;

net=newff(minmax(P),[16,4],{'tansig','tansig'},'trainlm');%trainscg; trainlm; trainrp

net.trainParam.show=50;%

net.trainParam.lr=0.1;

net.trainParam.epochs=100;

net.trainParam.goal=5*1e-2;

[net,tr]=train(net,P,T);

执行结果:

TRAINLM, Epoch 0/100, MSE 0.762867/0.05, Gradient 90881.1/1e-010

TRAINLM, Epoch 50/100, MSE 0.0754328/0.05, Gradient 89.035/1e-010

TRAINLM, Epoch 100/100, MSE 0.0723378/0.05, Gradient 107.27/1e-010

TRAINLM, Maximum epoch reached, performance goal was not met.

所得到的分类误差曲线,

从仿真的结果看误差为7%左右,没有达到要求的5%,因为当前的训练样本数据还是比较少的,所以结果也是可以接受的。

然后,我们用一个测试样本(如表2)对我们训练后的BP神经网络分类器进行测试。

程序如下:

BP神经网络分类器对测试样本的数据分类是正确的。

通过以上的matlab中的仿真,我们用从训练样本仿真中得到了BP神经网络分类器固化参数,然后对于这个分类器进行测试也得到了正确的结果。

4 结论

本文介绍了BP神经网络分类器的结构和机理,基于全向移动机器人的运动特点的分类器输入和输出描述,从而构造出一种基于BP算法的神经网络分类器,通过matlab软件的仿真,这种BP神经网络分类器能够很好的对全向移动机器人周围的障碍物模式进行分类,为全向移动机器人智能避障打造了很好的基础。

参考文献 (References):

[1] 张明路,彭商贤等.用于移动机器人避障的人工神经网络和模糊逻辑控制技术[J].中国机械工程:1997,8(2):21~24.

ZHANG Ming-lu,Peng SHANG-xian,et al.For mobile robot obstacle avoidance of artificial neural networks and fuzzy logic control technology[J]. Chinese Mechanical Engineering:1997,8(2):21~24.

[2] 施鸿宝.神经网络及应用[M].西安:西安交通大学出版社,1993.1.

SHI Hong-bao,Neural Networks and applications[M]. Xi'an:Xi'an Jiaotong University,1993.1.

[3] 董聪,刘西拉.广义BP算法及网络容错性和泛化能力研究[J].控制与决策,1998.3;13:120~124.

DONG Cong,LIU Xi-la.Generalized BP algorithm and network fault tolerance and generalization ability of Study[J].Control and Decision,1998.3;13:120~124.

[4] 江虹,曾立波等.优化的BP神经网络分类器的设计与实现[J].计算机工程与应用,2001,(5).:122.

JIANG Hong,ZENG Li-bo,et al. Optimized BP Neural Network Classifier Design and Implementation[J]. Computer Engineering and Applications,2001,(5).:122.

[5] 焦李成.神经网络系统理论[M].西安:西安电子科技大学出版社,1996.

JIAO Li-cheng.Neural network theory[M].Xi'an:Xidian University Press,1996.

[6] 杨俊友,李庆宇等.下肢康复机器人结构设计及动力学仿真[J].沈阳工业大学学报,2010,(5):514~519.

YANG Jun-you,LI Yu-qing,et al.Mechanical structure design and kinetic simulation of lower limbs rehabilitative robot[J].Journal of Shenyang University of Technology,2010,(5):514~519.

[7] 廖一,贺汉根等.远距离超声波传感器在测距系统中的设计与应用[J].传感器与仪器仪表:2009,(25):90~92.

LIAO Yi,HE Han-gen,et al. Distance ranging ultrasonic sensors in the system design and application[J]. Sensors and Instrumentation,2010,(5):514~519.

[8] 史晓霞,陈一民等.神经网络在应用科学和工程中的应用-从基本原理到复杂的模式识别[M].北京:机械工业出版社,2009.7.

SHI Xiao-xia,CHEN Yi-min,et al. Neural networks in applied science and engineering - from basic principles to complex pattern recognition[M].Bei Jing:Machinery Industry Press,2009.7.

[9] 董长虹.MATLAB神经网络与应用[M].北京:北京航空航天大学出版社,2005.

DONG Chang-hong.MATLAB Neural Networks and Applications[M]. Beijing: Aerospace University Press,2005.

[10] 高隽.人工神经网络原理及仿真实例[M].北京:机械工业出版社,2003.

GAO Yong.Artificial neural network and simulation examples[M]. Bei Jing:Machinery Industry Press,2003.

沈阳市皇姑区西江街8号1-4-2

15040250620

上一篇:一种基于排序奖惩的蚁群算法 下一篇:基于多Agent的GIS查询技术研究