论文部分内容阅读
摘要针对一款自主研发的轮式农业移动机器人,提出了一种基于BP神经网络的轮式农业移动机器人定位估计方法。该机器人为前驱模式,依靠差速完成转向。定位方法是在前期的神经网络训练过程中,以左轮、右轮的驱动脉冲数为输入,以左右轮行进长度为输出,训练函数采用Bayesian规则;在后期的定位推算中,则假设机器人左右轮行进轨迹为两段同心圆弧,进而计算机器人几何中心位移。在与最小二乘定位估计方法的实验对比中,基于BP神经网络的定位估计方法具有更高的定位精度和更小的估计方差。
关键词移动机器人;BP神经网络;最小二乘法;定位
中图分类号S126;TP242.3文献标识码
A文章编号0517-6611(2015)21-364-04
移动机器人定位是机器人实现自主导航的关键。现有的定位方法大致可分为绝对定位和相对定位2类[1-3]。绝对定位要求机器人在不指定初始位置的情况下确定自己的位置,主要是为了解决机器人的“绑架”问题[4],其主要定位方法包括导航信标定位[5-8]、主动或被动标识定位[9-11]、基于多传感器融合信息的定位[12-13]、GPS定位[14]和概率定位[15]等;相对定位是指机器人在给定初始位置的条件下确定自己的位置。相对定位是机器人定位处理中重要的研究方向。
相对定位主要包括惯性导航定位和测程法定位。在惯性导航定位方法中,通常使用的传感器有加速度计、电磁罗盘、陀螺仪等[16]。加速度计对漂移特别敏感,测量误差比较大;陀螺仪虽然可以提供较为精确的航向信息,但它的测量值受静态偏差漂移的影响很大;电子罗盘能够直接提供机器人航向信息,但容易受到磁场干扰的影响,特别是在靠近电线和磁铁物质的地方。测程法有广义和狭义之分。从广义而言,测程法实现机器人定位的方法就是根据编码器的读数以及编码器与机器人搭载的测量设备(例如视觉系统、激光测距仪、声呐、红外等)来推算出机器人的相对位姿的变化。狭义测程法定位则是只利用编码器测量轮子位移增量推算机器人的位置,这点在文献[19]中有介绍。
无论是广义的测程法定位,还是狭义的测程法定位,都面临一些问题,比如机器人在行走的过程中存在打滑现象、传感器测量误差以及机械机构导致的运动误差等影响,因此有研究者提出了一些方法来校核上述因素造成的定位问题[17-19]。他们解决问题的思路都属于科学方法论中的还原论。还原论也叫机械还原论,主要是把研究对象尽可能打开,尽量还原到某个逻辑基点,找出系统的构成要素及其内部机制,以解释系统的行为和功能[20]。经过对测程法产生误差原因的层层分析,研究者得出了应当主要从以下3个方面进行误差校核的结论:①机器人系统参数的校核。由于轮式移动机器人轮子直径的不相等、轮距的不确定、机械中心的不确定以及驱动轮实际直径和名义直径不相等等因素,需要建立测程法系统误差模型,计算机器人的系统参数和对应的校核系数。
②轮子打滑误差的校核。该项校核是提高机器人定位精度的关键。大体步骤是:首先测得一组实验数据;然后根据实验数据,利用统计理论建立机器人直线行走时的轮子打滑模型;之后,利用建立好的打滑校核模型,判断哪个轮子发生了打滑并校核其误差。③测程噪声误差的校核。主要考虑编码器测量精度对定位的影响,从而建立测程法的噪声模型,然后基于该噪声模型推导出计算测程法噪声统计特性的方程,使机器人在运动过程中可以根据环境的变化实时地、自适应地估计测程法噪声统计特性。
BP神经网络移动机器人定位方法是从科学方法论中的另外一个角度——整体论——去思考定位问题的方法。整体论把研究对象当作一个完整的“黑箱”来看待,它不打开作为“黑箱”的研究对象,不破坏对象的完整性,主要从系统的输入输出中猜测“黑箱”内部的结构和内部机制。BP神经网络本身就具有以整体论为思维的解决问题的特点,因为BP神经网络实质上实现了一个从输入到输出的映射功能,不需要了解输入与输出之间的内部机制,而数学理论已经证明它具有实现任何复杂非线性映射的功能,这使得它特别适合于求解内部机制复杂的问题。笔者基于BP神经网络的这一特点,避开之前以还原论的思维解决利用测程法定位的思路,通过事先采集到的输入和输出数据训练BP神經网络,利用训练好的网络,直接由编码器的输出得到小车行走的距离。这样的定位方法使得人们不必考虑移动机器人测程法定位的具体原因,所以不必解决上面提到的3个产生测程法定位误差的问题,使复杂问题简单化。
1BP神经网络简介
BP网络(Back Propagation Network)是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阀值,使网络的误差平方和最小。BP神经网络模型拓扑结构常包括输入层,隐层(隐层可以有若干层)和输出层。设输入矢量、隐层分别为X=(x1,x2,…,xn)T∈Rn,X′=(x′1,x′2,…,x′k)T∈Rk,计算输出为Y=(y1,y2,…,ym)T∈Rm,输入层与隐层间的连接权值为wij,阀值为θl,隐层与输出层间的连接权值为wjl,阀值为θt,其中i=1,…,n;j=1,…,k=1,…,m。则一般的BP神经网络拓扑结构见图1。
n维输入向量X到m维输出向量Y之间的映射为:
yl=f2(kj=1wjlx′i+θl),x′j=f1(ki=1wijxi+θj)(1)
式中,f1为输入层到隐层的传递函数;f2为隐层到输出层的传递函数。
根据Kosmogorov定理,在合理的结构和恰当的权值条件下,3层BP神经网络能以任意精度逼近任何非线性函数,所以该研究中的BP网络使用3层结构即可,即一个输入层,一个隐含层,一个输出层;另外,该研究在定位中使用的方法是根据左轮和右轮的位置推断机器人几何中心位置,并且将左轮和右轮分别作为独立的估计对象处理,所以需要2个BP网络,且每个BP网络的输入层和输出层都只有1个神经元,则隐含层神经元的个数取3个即可。该研究中使用的BP神经网络拓扑结构见图2。 在图2所示的神经网络中,输入层是发送给电机的脉冲个数N,有1个神经元;隐层有3个神经元;机器人的车轮行走距离值S作为输出,有1个神经元。训练函数采用Bayesian规则,输入层到隐层的传递函数采用双曲正切“S”形函数:
f1(x)=ex-x-xex+e-x(2)
隐层到输出层的传递函数为线性函数为:
f2(x)=x(3)
安徽农业科学2015年
2BP神经网络定位原理
当使机器人保持直线运动时,从理论上来讲,发送给电机的脉冲个数N与机器人的几何中心行走路程S应该成严格的正比例关系,只要找到这个比例系数,就可以由N计算出S的大小。但实际上移动机器人系统比较复杂,利用测程法会遇到各种问题,比如编码器存在一定的測量误差[21],小车在行走的时候存在打滑,各个驱动轮的直径不一致以及其他结构方面的影响等,这些问题造成了利用测程法进行定位的困难。该研究利用BP神经网络定位来解决这些问题。由于BP神经网络具有很好的数据拟合特点,并且不需要明确知道输入-输出模式的映射关系,因此能够绕开上述问题,直接利用BP神经网络拟合出N与S的关系。
此次
实验中的自主研发的轮式移动机器人具有左、右2个驱动轮,1个同轴从动轮,以差速实现转向。当利用上述原理训练BP神经网络,分别得出左轮Nl与Sl、右轮Nr与Sr的关系后,就可以根据左、右轮电机脉冲输出通过求出相应的Sl和Sr,再利用几何关系计算出机器人中心(该研究以机器人前轴中心点为其几何中心)的位移Sm(ρ,θ)。该几何关系可通过图3说明。在实验中,尽管发给左、右轮的脉冲的个数相等,但机器人行走一段距离后仍然会出现向左的微小偏斜,并且会越走越偏,因此机器人行走的并非是直线,而是一段曲线,左、右轮行走的轨迹可以近似成2段同心弧。假设机器人从某一起点行进到某一终点后,对应的Sl和Sr已经求出,车宽α也已知,则Sm(ρ,θ)可以用下式求出:
ρ=α×Sr+SlSr-Sl×sin(Sr-Sl2×α),θ=π2+Sr-Slα(4)
式中,(ρ,θ)为该段行进的终点在以起点为原点的极坐标系统中的坐标。
3BP神经网络的训练
在晒场上(地面为水泥地)让机器人直线运动,具体方法是让控制器持续向左右轮发送相同的脉冲数。在此过程中采集500组数据,其中包括各500个左、右轮轨迹点到各自起点的长度值(实测时采用的是逐点累加方法获得弧线长度值,而不是距离值)和机器人几何中心(车体中点)到其起点的距离值。进行BP神经网络训练时,以发送给左右电机的脉冲个数N作为输入数据,以左、右轮轨迹点的实测长度值作为BP网络训练时的输出数据,从而获得脉冲个数与左、右轮实测长度间的对应关系。
BP神经网络的训练方法有多种,每种方法均有不同的计算和容量要求,没有普适算法。为找到适合此次实验的训练算法,笔者在自行研发的轮式农业机器人平台上(图4)进行了多次试验对比,最终确定使用Bayesian规则进行训练。Bayesian规则是LevenbergMarquardt训练算法的改进方法,能使产生的网络有更好的拟合效果,并且易于实现[22]。
利用MATLAB现有的Bayesian规则BP神经网络训练函数,进行参数训练。由于实验中的距离数值较大(以mm为单位),容易导致训练结果波动很大,所以需要对Nl与Sl、Nr与Sr等数据分别进行归一化处理:
Gout=Gin-min(Gin)max(Gin)-min(Gin)(5)
式中,Gin是归一化前的数据;Gout是归一化后的数据。Nl与Sl、Nr与Sr经归一化处理后,分别变成了GNl与GSl、GNr与GSr。在训练结束后,使用训练好的参数,就可以同Nl、Nr一起,分别计算出GS′l、GS′r。
以某一个轮为例,由某一时刻发送给相应电机的脉冲的个数ni计算小车行走的距离si的过程如下:
(1)从输入层到输出层,经过传递函数f1,可得到以下3个输出:
y1=ni×w1×θ1
y2=ni×w2×θ2
y3=ni×w3×θ3(6)
(2)从隐层到输出层,经过传递函数f2,可得出1个输出:
y′i=f2(y1×w′1+y2×w′2+y3×w′3+θ′)(7)
(3)然后进行反归一化处理,得到:
si=y′i×(max(Y′)-min(Y′))+min(Y′)
Y′={y′1,y′2,y′3,…,y′n}(8)
4定位估计实验结果的分析及对比
为了证明BP神经网络定位方法的实用性和准确性,该研究将其与最小二乘法定位进行了实验对比。其中最小二乘定位方法是将机器人左右轮的行走轨迹分别拟合为一条与脉冲数成正比的直线(拟合采用的数据与训练BP神经网络所用的500组数据相同),然后也采用图3的计算方法估计机器人几何中心的位移。
实验中,让控制器持续向左右轮发送相同的脉冲数,从而使机器人做出接近直线运动的动作,期间共测得100组数据,每组数据包括脉冲数N,左右轮行走长度数值S′l和S′r、机器人中心点(车体中点)的移动距离数值ρ′。
实验的数据处理过程分为2步:第一步,先分别以相同的脉冲数N为输入,采用预测估计定位方法(此次实验中即为BP神经网络定位方法和最小二乘定位方法)估计左右轮的行进长度Sl和Sr,同时将估计值与实测值S′l和S′r进行比较,利用差值Errors_l和Errors_r观察定位估计误差情况;第二步,运用公式(4)计算机器人几何中心的移动距离ρ,并将估计值与实测值ρ′进行比较,利用差值Errorρ观察定位估计误差情况。 2種定位方法的估计误差情况见图5。图5的左边一列是BP神经网络定位方法定位误差在机器人左右轮行进长度及几何中心移动距离变化时的分布情况,右边一列则是最小二乘定位方法的相应结果。
从图5可以看出,使用BP神经网络定位方法时,机器人右轮的行进长度估计值与实测值误差Errors_r的绝对值全部小于5 mm,小于3 mm的个数有87个(共100个预测点)。左轮的误差结果与右轮相似。而BP神经网络定位对机器人几何中心移动距离的估计值与实测值间误差Errorρ的绝对值总是小于3 mm。该实验表明,BP神经网络定位误差较小,且不会随行进长度/距离的变化而变化,即该定位方法精度较高且没有累积误差。
最小二乘定位方法的定位误差从尺度上看就明显比BP神经网络定位方法大(图中前者每个刻度为10 mm,后者则仅为1 mm),并且定位误差随着行进长度/距离的增大而逐渐减小,在行进长度/距离较短时,误差能够达到50 mm,行进长度/距离超过3 m后才逐步稳定在5 mm以内。这是由于最小二乘法的拟合样本来自500组数据(即数据涉及的机器人行进距离较长),所以在处理行进长度/距离较短的定位估计时误差较大,说明该方法的定位误差对拟合样本的依赖性很强,而BP神经网络定位方法则不存在这样的问题。
最后,利用100组定位数据与实测数据计算均方误差,比较2种定位方法的精度大小,结果见表1。BP神经网络定位方法的定位误差明显更小。
5结论与展望
针对轮式农业移动机器人的定位问题,该研究提出了一种基于BP神经网络的定位方法,该方法绕开了还原论的研究思路,避开了对车轮打滑、机器人机械结构、外界噪声干扰等问题的逐一讨论,直接给出了利用电机脉冲数推算机器人几何中心位移的方法。经过实验对比,该方法具有较高的定位精度,而且受样本数量影响较小,也不会产生累积误差,具有良好的实用性。
但是,此次实验仅仅考虑了机器人在水泥地面上的直线运动,对于农业机器人的曲线运动、在田间行进等复杂情况尚未进行探讨。下一步笔者将针对不同路面条件、不同运动模式展开实验,并对BP网络结构进行相应的调整,使之能够适应新的应用场景,从而形成BP神经网络定位估计方法体系,使其能够胜任对轮式农业移动机器人在不同场景、不同运动模式条件下的定位估计工作。
注:a.BP神经网络预测结果与实测值误差分布图,包括左轮、右轮以及机器人几向中心的前进距离3种情况;b.最小二乘法预测结果与实测值误差分布图,包括左轮、右轮以及机器人几何中心的前进距离3种情况。
图5BP神经网络定位与最小二乘定位误差对比
参考文献
[1]
李磊,叶涛,谭民.移动机器人技术研究现状与未来[J]. 机器人,2002,24(5):475-480.
[2] ACTIV MEDIA RESEARCH.Mobile robotics:The next revolution[R].2001.
[3] SALICHS M A,MORENO L. Navigation of mobile robots: Open questions[J]. Robotica, 2000,18:227-234.
[4] FOX D, BURGARD W,THRUNS. Markov localization for mobile robots in dynamic environments[J]. Journal of Artificial Intelligence Research, 1999,11:391-427.
[5] KLEEMAN L.Optimal estimation of position and heading for mobile robots using ultrasonic beacons and dead reckoning[C]/Proc.IEEE Int.Conf.Robotics and Automation,1992:2582-2587.
[6] COLLE E,JALLOULI M,CHAVAND F.Absolute localization of an autonomous vehicle with beacons[J].Int Journal of Robotics and Automation,1992,8(1):30-38.
[7] WATANABE Y,YUTA S.Position estimation of mobile robots with internal and external sensors using uncertainty evoluation technique[C]//Proc.of IEEE Int.Conf.on Robotics and Automation,1990:2011-2016.
关键词移动机器人;BP神经网络;最小二乘法;定位
中图分类号S126;TP242.3文献标识码
A文章编号0517-6611(2015)21-364-04
移动机器人定位是机器人实现自主导航的关键。现有的定位方法大致可分为绝对定位和相对定位2类[1-3]。绝对定位要求机器人在不指定初始位置的情况下确定自己的位置,主要是为了解决机器人的“绑架”问题[4],其主要定位方法包括导航信标定位[5-8]、主动或被动标识定位[9-11]、基于多传感器融合信息的定位[12-13]、GPS定位[14]和概率定位[15]等;相对定位是指机器人在给定初始位置的条件下确定自己的位置。相对定位是机器人定位处理中重要的研究方向。
相对定位主要包括惯性导航定位和测程法定位。在惯性导航定位方法中,通常使用的传感器有加速度计、电磁罗盘、陀螺仪等[16]。加速度计对漂移特别敏感,测量误差比较大;陀螺仪虽然可以提供较为精确的航向信息,但它的测量值受静态偏差漂移的影响很大;电子罗盘能够直接提供机器人航向信息,但容易受到磁场干扰的影响,特别是在靠近电线和磁铁物质的地方。测程法有广义和狭义之分。从广义而言,测程法实现机器人定位的方法就是根据编码器的读数以及编码器与机器人搭载的测量设备(例如视觉系统、激光测距仪、声呐、红外等)来推算出机器人的相对位姿的变化。狭义测程法定位则是只利用编码器测量轮子位移增量推算机器人的位置,这点在文献[19]中有介绍。
无论是广义的测程法定位,还是狭义的测程法定位,都面临一些问题,比如机器人在行走的过程中存在打滑现象、传感器测量误差以及机械机构导致的运动误差等影响,因此有研究者提出了一些方法来校核上述因素造成的定位问题[17-19]。他们解决问题的思路都属于科学方法论中的还原论。还原论也叫机械还原论,主要是把研究对象尽可能打开,尽量还原到某个逻辑基点,找出系统的构成要素及其内部机制,以解释系统的行为和功能[20]。经过对测程法产生误差原因的层层分析,研究者得出了应当主要从以下3个方面进行误差校核的结论:①机器人系统参数的校核。由于轮式移动机器人轮子直径的不相等、轮距的不确定、机械中心的不确定以及驱动轮实际直径和名义直径不相等等因素,需要建立测程法系统误差模型,计算机器人的系统参数和对应的校核系数。
②轮子打滑误差的校核。该项校核是提高机器人定位精度的关键。大体步骤是:首先测得一组实验数据;然后根据实验数据,利用统计理论建立机器人直线行走时的轮子打滑模型;之后,利用建立好的打滑校核模型,判断哪个轮子发生了打滑并校核其误差。③测程噪声误差的校核。主要考虑编码器测量精度对定位的影响,从而建立测程法的噪声模型,然后基于该噪声模型推导出计算测程法噪声统计特性的方程,使机器人在运动过程中可以根据环境的变化实时地、自适应地估计测程法噪声统计特性。
BP神经网络移动机器人定位方法是从科学方法论中的另外一个角度——整体论——去思考定位问题的方法。整体论把研究对象当作一个完整的“黑箱”来看待,它不打开作为“黑箱”的研究对象,不破坏对象的完整性,主要从系统的输入输出中猜测“黑箱”内部的结构和内部机制。BP神经网络本身就具有以整体论为思维的解决问题的特点,因为BP神经网络实质上实现了一个从输入到输出的映射功能,不需要了解输入与输出之间的内部机制,而数学理论已经证明它具有实现任何复杂非线性映射的功能,这使得它特别适合于求解内部机制复杂的问题。笔者基于BP神经网络的这一特点,避开之前以还原论的思维解决利用测程法定位的思路,通过事先采集到的输入和输出数据训练BP神經网络,利用训练好的网络,直接由编码器的输出得到小车行走的距离。这样的定位方法使得人们不必考虑移动机器人测程法定位的具体原因,所以不必解决上面提到的3个产生测程法定位误差的问题,使复杂问题简单化。
1BP神经网络简介
BP网络(Back Propagation Network)是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阀值,使网络的误差平方和最小。BP神经网络模型拓扑结构常包括输入层,隐层(隐层可以有若干层)和输出层。设输入矢量、隐层分别为X=(x1,x2,…,xn)T∈Rn,X′=(x′1,x′2,…,x′k)T∈Rk,计算输出为Y=(y1,y2,…,ym)T∈Rm,输入层与隐层间的连接权值为wij,阀值为θl,隐层与输出层间的连接权值为wjl,阀值为θt,其中i=1,…,n;j=1,…,k=1,…,m。则一般的BP神经网络拓扑结构见图1。
n维输入向量X到m维输出向量Y之间的映射为:
yl=f2(kj=1wjlx′i+θl),x′j=f1(ki=1wijxi+θj)(1)
式中,f1为输入层到隐层的传递函数;f2为隐层到输出层的传递函数。
根据Kosmogorov定理,在合理的结构和恰当的权值条件下,3层BP神经网络能以任意精度逼近任何非线性函数,所以该研究中的BP网络使用3层结构即可,即一个输入层,一个隐含层,一个输出层;另外,该研究在定位中使用的方法是根据左轮和右轮的位置推断机器人几何中心位置,并且将左轮和右轮分别作为独立的估计对象处理,所以需要2个BP网络,且每个BP网络的输入层和输出层都只有1个神经元,则隐含层神经元的个数取3个即可。该研究中使用的BP神经网络拓扑结构见图2。 在图2所示的神经网络中,输入层是发送给电机的脉冲个数N,有1个神经元;隐层有3个神经元;机器人的车轮行走距离值S作为输出,有1个神经元。训练函数采用Bayesian规则,输入层到隐层的传递函数采用双曲正切“S”形函数:
f1(x)=ex-x-xex+e-x(2)
隐层到输出层的传递函数为线性函数为:
f2(x)=x(3)
安徽农业科学2015年
2BP神经网络定位原理
当使机器人保持直线运动时,从理论上来讲,发送给电机的脉冲个数N与机器人的几何中心行走路程S应该成严格的正比例关系,只要找到这个比例系数,就可以由N计算出S的大小。但实际上移动机器人系统比较复杂,利用测程法会遇到各种问题,比如编码器存在一定的測量误差[21],小车在行走的时候存在打滑,各个驱动轮的直径不一致以及其他结构方面的影响等,这些问题造成了利用测程法进行定位的困难。该研究利用BP神经网络定位来解决这些问题。由于BP神经网络具有很好的数据拟合特点,并且不需要明确知道输入-输出模式的映射关系,因此能够绕开上述问题,直接利用BP神经网络拟合出N与S的关系。
此次
实验中的自主研发的轮式移动机器人具有左、右2个驱动轮,1个同轴从动轮,以差速实现转向。当利用上述原理训练BP神经网络,分别得出左轮Nl与Sl、右轮Nr与Sr的关系后,就可以根据左、右轮电机脉冲输出通过求出相应的Sl和Sr,再利用几何关系计算出机器人中心(该研究以机器人前轴中心点为其几何中心)的位移Sm(ρ,θ)。该几何关系可通过图3说明。在实验中,尽管发给左、右轮的脉冲的个数相等,但机器人行走一段距离后仍然会出现向左的微小偏斜,并且会越走越偏,因此机器人行走的并非是直线,而是一段曲线,左、右轮行走的轨迹可以近似成2段同心弧。假设机器人从某一起点行进到某一终点后,对应的Sl和Sr已经求出,车宽α也已知,则Sm(ρ,θ)可以用下式求出:
ρ=α×Sr+SlSr-Sl×sin(Sr-Sl2×α),θ=π2+Sr-Slα(4)
式中,(ρ,θ)为该段行进的终点在以起点为原点的极坐标系统中的坐标。
3BP神经网络的训练
在晒场上(地面为水泥地)让机器人直线运动,具体方法是让控制器持续向左右轮发送相同的脉冲数。在此过程中采集500组数据,其中包括各500个左、右轮轨迹点到各自起点的长度值(实测时采用的是逐点累加方法获得弧线长度值,而不是距离值)和机器人几何中心(车体中点)到其起点的距离值。进行BP神经网络训练时,以发送给左右电机的脉冲个数N作为输入数据,以左、右轮轨迹点的实测长度值作为BP网络训练时的输出数据,从而获得脉冲个数与左、右轮实测长度间的对应关系。
BP神经网络的训练方法有多种,每种方法均有不同的计算和容量要求,没有普适算法。为找到适合此次实验的训练算法,笔者在自行研发的轮式农业机器人平台上(图4)进行了多次试验对比,最终确定使用Bayesian规则进行训练。Bayesian规则是LevenbergMarquardt训练算法的改进方法,能使产生的网络有更好的拟合效果,并且易于实现[22]。
利用MATLAB现有的Bayesian规则BP神经网络训练函数,进行参数训练。由于实验中的距离数值较大(以mm为单位),容易导致训练结果波动很大,所以需要对Nl与Sl、Nr与Sr等数据分别进行归一化处理:
Gout=Gin-min(Gin)max(Gin)-min(Gin)(5)
式中,Gin是归一化前的数据;Gout是归一化后的数据。Nl与Sl、Nr与Sr经归一化处理后,分别变成了GNl与GSl、GNr与GSr。在训练结束后,使用训练好的参数,就可以同Nl、Nr一起,分别计算出GS′l、GS′r。
以某一个轮为例,由某一时刻发送给相应电机的脉冲的个数ni计算小车行走的距离si的过程如下:
(1)从输入层到输出层,经过传递函数f1,可得到以下3个输出:
y1=ni×w1×θ1
y2=ni×w2×θ2
y3=ni×w3×θ3(6)
(2)从隐层到输出层,经过传递函数f2,可得出1个输出:
y′i=f2(y1×w′1+y2×w′2+y3×w′3+θ′)(7)
(3)然后进行反归一化处理,得到:
si=y′i×(max(Y′)-min(Y′))+min(Y′)
Y′={y′1,y′2,y′3,…,y′n}(8)
4定位估计实验结果的分析及对比
为了证明BP神经网络定位方法的实用性和准确性,该研究将其与最小二乘法定位进行了实验对比。其中最小二乘定位方法是将机器人左右轮的行走轨迹分别拟合为一条与脉冲数成正比的直线(拟合采用的数据与训练BP神经网络所用的500组数据相同),然后也采用图3的计算方法估计机器人几何中心的位移。
实验中,让控制器持续向左右轮发送相同的脉冲数,从而使机器人做出接近直线运动的动作,期间共测得100组数据,每组数据包括脉冲数N,左右轮行走长度数值S′l和S′r、机器人中心点(车体中点)的移动距离数值ρ′。
实验的数据处理过程分为2步:第一步,先分别以相同的脉冲数N为输入,采用预测估计定位方法(此次实验中即为BP神经网络定位方法和最小二乘定位方法)估计左右轮的行进长度Sl和Sr,同时将估计值与实测值S′l和S′r进行比较,利用差值Errors_l和Errors_r观察定位估计误差情况;第二步,运用公式(4)计算机器人几何中心的移动距离ρ,并将估计值与实测值ρ′进行比较,利用差值Errorρ观察定位估计误差情况。 2種定位方法的估计误差情况见图5。图5的左边一列是BP神经网络定位方法定位误差在机器人左右轮行进长度及几何中心移动距离变化时的分布情况,右边一列则是最小二乘定位方法的相应结果。
从图5可以看出,使用BP神经网络定位方法时,机器人右轮的行进长度估计值与实测值误差Errors_r的绝对值全部小于5 mm,小于3 mm的个数有87个(共100个预测点)。左轮的误差结果与右轮相似。而BP神经网络定位对机器人几何中心移动距离的估计值与实测值间误差Errorρ的绝对值总是小于3 mm。该实验表明,BP神经网络定位误差较小,且不会随行进长度/距离的变化而变化,即该定位方法精度较高且没有累积误差。
最小二乘定位方法的定位误差从尺度上看就明显比BP神经网络定位方法大(图中前者每个刻度为10 mm,后者则仅为1 mm),并且定位误差随着行进长度/距离的增大而逐渐减小,在行进长度/距离较短时,误差能够达到50 mm,行进长度/距离超过3 m后才逐步稳定在5 mm以内。这是由于最小二乘法的拟合样本来自500组数据(即数据涉及的机器人行进距离较长),所以在处理行进长度/距离较短的定位估计时误差较大,说明该方法的定位误差对拟合样本的依赖性很强,而BP神经网络定位方法则不存在这样的问题。
最后,利用100组定位数据与实测数据计算均方误差,比较2种定位方法的精度大小,结果见表1。BP神经网络定位方法的定位误差明显更小。
5结论与展望
针对轮式农业移动机器人的定位问题,该研究提出了一种基于BP神经网络的定位方法,该方法绕开了还原论的研究思路,避开了对车轮打滑、机器人机械结构、外界噪声干扰等问题的逐一讨论,直接给出了利用电机脉冲数推算机器人几何中心位移的方法。经过实验对比,该方法具有较高的定位精度,而且受样本数量影响较小,也不会产生累积误差,具有良好的实用性。
但是,此次实验仅仅考虑了机器人在水泥地面上的直线运动,对于农业机器人的曲线运动、在田间行进等复杂情况尚未进行探讨。下一步笔者将针对不同路面条件、不同运动模式展开实验,并对BP网络结构进行相应的调整,使之能够适应新的应用场景,从而形成BP神经网络定位估计方法体系,使其能够胜任对轮式农业移动机器人在不同场景、不同运动模式条件下的定位估计工作。
注:a.BP神经网络预测结果与实测值误差分布图,包括左轮、右轮以及机器人几向中心的前进距离3种情况;b.最小二乘法预测结果与实测值误差分布图,包括左轮、右轮以及机器人几何中心的前进距离3种情况。
图5BP神经网络定位与最小二乘定位误差对比
参考文献
[1]
李磊,叶涛,谭民.移动机器人技术研究现状与未来[J]. 机器人,2002,24(5):475-480.
[2] ACTIV MEDIA RESEARCH.Mobile robotics:The next revolution[R].2001.
[3] SALICHS M A,MORENO L. Navigation of mobile robots: Open questions[J]. Robotica, 2000,18:227-234.
[4] FOX D, BURGARD W,THRUNS. Markov localization for mobile robots in dynamic environments[J]. Journal of Artificial Intelligence Research, 1999,11:391-427.
[5] KLEEMAN L.Optimal estimation of position and heading for mobile robots using ultrasonic beacons and dead reckoning[C]/Proc.IEEE Int.Conf.Robotics and Automation,1992:2582-2587.
[6] COLLE E,JALLOULI M,CHAVAND F.Absolute localization of an autonomous vehicle with beacons[J].Int Journal of Robotics and Automation,1992,8(1):30-38.
[7] WATANABE Y,YUTA S.Position estimation of mobile robots with internal and external sensors using uncertainty evoluation technique[C]//Proc.of IEEE Int.Conf.on Robotics and Automation,1990:2011-2016.