賈士偉等
摘要針對一款自主研發(fā)的輪式農(nóng)業(yè)移動機器人,提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的輪式農(nóng)業(yè)移動機器人定位估計方法。該機器人為前驅(qū)模式,依靠差速完成轉(zhuǎn)向。定位方法是在前期的神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,以左輪、右輪的驅(qū)動脈沖數(shù)為輸入,以左右輪行進長度為輸出,訓(xùn)練函數(shù)采用Bayesian規(guī)則;在后期的定位推算中,則假設(shè)機器人左右輪行進軌跡為兩段同心圓弧,進而計算機器人幾何中心位移。在與最小二乘定位估計方法的實驗對比中,基于BP神經(jīng)網(wǎng)絡(luò)的定位估計方法具有更高的定位精度和更小的估計方差。
關(guān)鍵詞移動機器人;BP神經(jīng)網(wǎng)絡(luò);最小二乘法;定位
中圖分類號S126;TP242.3文獻標識碼
A文章編號0517-6611(2015)21-364-04
移動機器人定位是機器人實現(xiàn)自主導(dǎo)航的關(guān)鍵。現(xiàn)有的定位方法大致可分為絕對定位和相對定位2類[1-3]。絕對定位要求機器人在不指定初始位置的情況下確定自己的位置,主要是為了解決機器人的“綁架”問題[4],其主要定位方法包括導(dǎo)航信標定位[5-8]、主動或被動標識定位[9-11]、基于多傳感器融合信息的定位[12-13]、GPS定位[14]和概率定位[15]等;相對定位是指機器人在給定初始位置的條件下確定自己的位置。相對定位是機器人定位處理中重要的研究方向。
相對定位主要包括慣性導(dǎo)航定位和測程法定位。在慣性導(dǎo)航定位方法中,通常使用的傳感器有加速度計、電磁羅盤、陀螺儀等[16]。加速度計對漂移特別敏感,測量誤差比較大;陀螺儀雖然可以提供較為精確的航向信息,但它的測量值受靜態(tài)偏差漂移的影響很大;電子羅盤能夠直接提供機器人航向信息,但容易受到磁場干擾的影響,特別是在靠近電線和磁鐵物質(zhì)的地方。測程法有廣義和狹義之分。從廣義而言,測程法實現(xiàn)機器人定位的方法就是根據(jù)編碼器的讀數(shù)以及編碼器與機器人搭載的測量設(shè)備(例如視覺系統(tǒng)、激光測距儀、聲吶、紅外等)來推算出機器人的相對位姿的變化。狹義測程法定位則是只利用編碼器測量輪子位移增量推算機器人的位置,這點在文獻[19]中有介紹。
無論是廣義的測程法定位,還是狹義的測程法定位,都面臨一些問題,比如機器人在行走的過程中存在打滑現(xiàn)象、傳感器測量誤差以及機械機構(gòu)導(dǎo)致的運動誤差等影響,因此有研究者提出了一些方法來校核上述因素造成的定位問題[17-19]。他們解決問題的思路都屬于科學(xué)方法論中的還原論。還原論也叫機械還原論,主要是把研究對象盡可能打開,盡量還原到某個邏輯基點,找出系統(tǒng)的構(gòu)成要素及其內(nèi)部機制,以解釋系統(tǒng)的行為和功能[20]。經(jīng)過對測程法產(chǎn)生誤差原因的層層分析,研究者得出了應(yīng)當主要從以下3個方面進行誤差校核的結(jié)論:①機器人系統(tǒng)參數(shù)的校核。由于輪式移動機器人輪子直徑的不相等、輪距的不確定、機械中心的不確定以及驅(qū)動輪實際直徑和名義直徑不相等等因素,需要建立測程法系統(tǒng)誤差模型,計算機器人的系統(tǒng)參數(shù)和對應(yīng)的校核系數(shù)。
②輪子打滑誤差的校核。該項校核是提高機器人定位精度的關(guān)鍵。大體步驟是:首先測得一組實驗數(shù)據(jù);然后根據(jù)實驗數(shù)據(jù),利用統(tǒng)計理論建立機器人直線行走時的輪子打滑模型;之后,利用建立好的打滑校核模型,判斷哪個輪子發(fā)生了打滑并校核其誤差。③測程噪聲誤差的校核。主要考慮編碼器測量精度對定位的影響,從而建立測程法的噪聲模型,然后基于該噪聲模型推導(dǎo)出計算測程法噪聲統(tǒng)計特性的方程,使機器人在運動過程中可以根據(jù)環(huán)境的變化實時地、自適應(yīng)地估計測程法噪聲統(tǒng)計特性。
BP神經(jīng)網(wǎng)絡(luò)移動機器人定位方法是從科學(xué)方法論中的另外一個角度——整體論——去思考定位問題的方法。整體論把研究對象當作一個完整的“黑箱”來看待,它不打開作為“黑箱”的研究對象,不破壞對象的完整性,主要從系統(tǒng)的輸入輸出中猜測“黑箱”內(nèi)部的結(jié)構(gòu)和內(nèi)部機制。BP神經(jīng)網(wǎng)絡(luò)本身就具有以整體論為思維的解決問題的特點,因為BP神經(jīng)網(wǎng)絡(luò)實質(zhì)上實現(xiàn)了一個從輸入到輸出的映射功能,不需要了解輸入與輸出之間的內(nèi)部機制,而數(shù)學(xué)理論已經(jīng)證明它具有實現(xiàn)任何復(fù)雜非線性映射的功能,這使得它特別適合于求解內(nèi)部機制復(fù)雜的問題。筆者基于BP神經(jīng)網(wǎng)絡(luò)的這一特點,避開之前以還原論的思維解決利用測程法定位的思路,通過事先采集到的輸入和輸出數(shù)據(jù)訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),利用訓(xùn)練好的網(wǎng)絡(luò),直接由編碼器的輸出得到小車行走的距離。這樣的定位方法使得人們不必考慮移動機器人測程法定位的具體原因,所以不必解決上面提到的3個產(chǎn)生測程法定位誤差的問題,使復(fù)雜問題簡單化。
1BP神經(jīng)網(wǎng)絡(luò)簡介
BP網(wǎng)絡(luò)(Back Propagation Network)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學(xué)習和存貯大量的輸入-輸出模式映射關(guān)系,而無需事前描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閥值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓撲結(jié)構(gòu)常包括輸入層,隱層(隱層可以有若干層)和輸出層。設(shè)輸入矢量、隱層分別為X=(x1,x2,…,xn)T∈Rn,X′=(x′1,x′2,…,x′k)T∈Rk,計算輸出為Y=(y1,y2,…,ym)T∈Rm,輸入層與隱層間的連接權(quán)值為wij,閥值為θl,隱層與輸出層間的連接權(quán)值為wjl,閥值為θt,其中i=1,…,n;j=1,…,k=1,…,m。則一般的BP神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)見圖1。
n維輸入向量X到m維輸出向量Y之間的映射為:
yl=f2(kj=1wjlx′i+θl),x′j=f1(ki=1wijxi+θj)(1)
式中,f1為輸入層到隱層的傳遞函數(shù);f2為隱層到輸出層的傳遞函數(shù)。
根據(jù)Kosmogorov定理,在合理的結(jié)構(gòu)和恰當?shù)臋?quán)值條件下,3層BP神經(jīng)網(wǎng)絡(luò)能以任意精度逼近任何非線性函數(shù),所以該研究中的BP網(wǎng)絡(luò)使用3層結(jié)構(gòu)即可,即一個輸入層,一個隱含層,一個輸出層;另外,該研究在定位中使用的方法是根據(jù)左輪和右輪的位置推斷機器人幾何中心位置,并且將左輪和右輪分別作為獨立的估計對象處理,所以需要2個BP網(wǎng)絡(luò),且每個BP網(wǎng)絡(luò)的輸入層和輸出層都只有1個神經(jīng)元,則隱含層神經(jīng)元的個數(shù)取3個即可。該研究中使用的BP神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)見圖2。
在圖2所示的神經(jīng)網(wǎng)絡(luò)中,輸入層是發(fā)送給電機的脈沖個數(shù)N,有1個神經(jīng)元;隱層有3個神經(jīng)元;機器人的車輪行走距離值S作為輸出,有1個神經(jīng)元。訓(xùn)練函數(shù)采用Bayesian規(guī)則,輸入層到隱層的傳遞函數(shù)采用雙曲正切“S”形函數(shù):
f1(x)=ex-x-xex+e-x(2)
隱層到輸出層的傳遞函數(shù)為線性函數(shù)為:
f2(x)=x(3)
安徽農(nóng)業(yè)科學(xué)2015年
2BP神經(jīng)網(wǎng)絡(luò)定位原理
當使機器人保持直線運動時,從理論上來講,發(fā)送給電機的脈沖個數(shù)N與機器人的幾何中心行走路程S應(yīng)該成嚴格的正比例關(guān)系,只要找到這個比例系數(shù),就可以由N計算出S的大小。但實際上移動機器人系統(tǒng)比較復(fù)雜,利用測程法會遇到各種問題,比如編碼器存在一定的測量誤差[21],小車在行走的時候存在打滑,各個驅(qū)動輪的直徑不一致以及其他結(jié)構(gòu)方面的影響等,這些問題造成了利用測程法進行定位的困難。該研究利用BP神經(jīng)網(wǎng)絡(luò)定位來解決這些問題。由于BP神經(jīng)網(wǎng)絡(luò)具有很好的數(shù)據(jù)擬合特點,并且不需要明確知道輸入-輸出模式的映射關(guān)系,因此能夠繞開上述問題,直接利用BP神經(jīng)網(wǎng)絡(luò)擬合出N與S的關(guān)系。
此次
實驗中的自主研發(fā)的輪式移動機器人具有左、右2個驅(qū)動輪,1個同軸從動輪,以差速實現(xiàn)轉(zhuǎn)向。當利用上述原理訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),分別得出左輪Nl與Sl、右輪Nr與Sr的關(guān)系后,就可以根據(jù)左、右輪電機脈沖輸出通過求出相應(yīng)的Sl和Sr,再利用幾何關(guān)系計算出機器人中心(該研究以機器人前軸中心點為其幾何中心)的位移Sm(ρ,θ)。該幾何關(guān)系可通過圖3說明。在實驗中,盡管發(fā)給左、右輪的脈沖的個數(shù)相等,但機器人行走一段距離后仍然會出現(xiàn)向左的微小偏斜,并且會越走越偏,因此機器人行走的并非是直線,而是一段曲線,左、右輪行走的軌跡可以近似成2段同心弧。假設(shè)機器人從某一起點行進到某一終點后,對應(yīng)的Sl和Sr已經(jīng)求出,車寬α也已知,則Sm(ρ,θ)可以用下式求出:
ρ=α×Sr+SlSr-Sl×sin(Sr-Sl2×α),θ=π2+Sr-Slα(4)
式中,(ρ,θ)為該段行進的終點在以起點為原點的極坐標系統(tǒng)中的坐標。
3BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練
在曬場上(地面為水泥地)讓機器人直線運動,具體方法是讓控制器持續(xù)向左右輪發(fā)送相同的脈沖數(shù)。在此過程中采集500組數(shù)據(jù),其中包括各500個左、右輪軌跡點到各自起點的長度值(實測時采用的是逐點累加方法獲得弧線長度值,而不是距離值)和機器人幾何中心(車體中點)到其起點的距離值。進行BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練時,以發(fā)送給左右電機的脈沖個數(shù)N作為輸入數(shù)據(jù),以左、右輪軌跡點的實測長度值作為BP網(wǎng)絡(luò)訓(xùn)練時的輸出數(shù)據(jù),從而獲得脈沖個數(shù)與左、右輪實測長度間的對應(yīng)關(guān)系。
BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法有多種,每種方法均有不同的計算和容量要求,沒有普適算法。為找到適合此次實驗的訓(xùn)練算法,筆者在自行研發(fā)的輪式農(nóng)業(yè)機器人平臺上(圖4)進行了多次試驗對比,最終確定使用Bayesian規(guī)則進行訓(xùn)練。Bayesian規(guī)則是LevenbergMarquardt訓(xùn)練算法的改進方法,能使產(chǎn)生的網(wǎng)絡(luò)有更好的擬合效果,并且易于實現(xiàn)[22]。
利用MATLAB現(xiàn)有的Bayesian規(guī)則BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練函數(shù),進行參數(shù)訓(xùn)練。由于實驗中的距離數(shù)值較大(以mm為單位),容易導(dǎo)致訓(xùn)練結(jié)果波動很大,所以需要對Nl與Sl、Nr與Sr等數(shù)據(jù)分別進行歸一化處理:
Gout=Gin-min(Gin)max(Gin)-min(Gin)(5)
式中,Gin是歸一化前的數(shù)據(jù);Gout是歸一化后的數(shù)據(jù)。Nl與Sl、Nr與Sr經(jīng)歸一化處理后,分別變成了GNl與GSl、GNr與GSr。在訓(xùn)練結(jié)束后,使用訓(xùn)練好的參數(shù),就可以同Nl、Nr一起,分別計算出GS′l、GS′r。
以某一個輪為例,由某一時刻發(fā)送給相應(yīng)電機的脈沖的個數(shù)ni計算小車行走的距離si的過程如下:
(1)從輸入層到輸出層,經(jīng)過傳遞函數(shù)f1,可得到以下3個輸出:
y1=ni×w1×θ1
y2=ni×w2×θ2
y3=ni×w3×θ3(6)
(2)從隱層到輸出層,經(jīng)過傳遞函數(shù)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定位估計實驗結(jié)果的分析及對比
為了證明BP神經(jīng)網(wǎng)絡(luò)定位方法的實用性和準確性,該研究將其與最小二乘法定位進行了實驗對比。其中最小二乘定位方法是將機器人左右輪的行走軌跡分別擬合為一條與脈沖數(shù)成正比的直線(擬合采用的數(shù)據(jù)與訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)所用的500組數(shù)據(jù)相同),然后也采用圖3的計算方法估計機器人幾何中心的位移。
實驗中,讓控制器持續(xù)向左右輪發(fā)送相同的脈沖數(shù),從而使機器人做出接近直線運動的動作,期間共測得100組數(shù)據(jù),每組數(shù)據(jù)包括脈沖數(shù)N,左右輪行走長度數(shù)值S′l和S′r、機器人中心點(車體中點)的移動距離數(shù)值ρ′。
實驗的數(shù)據(jù)處理過程分為2步:第一步,先分別以相同的脈沖數(shù)N為輸入,采用預(yù)測估計定位方法(此次實驗中即為BP神經(jīng)網(wǎng)絡(luò)定位方法和最小二乘定位方法)估計左右輪的行進長度Sl和Sr,同時將估計值與實測值S′l和S′r進行比較,利用差值Errors_l和Errors_r觀察定位估計誤差情況;第二步,運用公式(4)計算機器人幾何中心的移動距離ρ,并將估計值與實測值ρ′進行比較,利用差值Errorρ觀察定位估計誤差情況。
2種定位方法的估計誤差情況見圖5。圖5的左邊一列是BP神經(jīng)網(wǎng)絡(luò)定位方法定位誤差在機器人左右輪行進長度及幾何中心移動距離變化時的分布情況,右邊一列則是最小二乘定位方法的相應(yīng)結(jié)果。
從圖5可以看出,使用BP神經(jīng)網(wǎng)絡(luò)定位方法時,機器人右輪的行進長度估計值與實測值誤差Errors_r的絕對值全部小于5 mm,小于3 mm的個數(shù)有87個(共100個預(yù)測點)。左輪的誤差結(jié)果與右輪相似。而BP神經(jīng)網(wǎng)絡(luò)定位對機器人幾何中心移動距離的估計值與實測值間誤差Errorρ的絕對值總是小于3 mm。該實驗表明,BP神經(jīng)網(wǎng)絡(luò)定位誤差較小,且不會隨行進長度/距離的變化而變化,即該定位方法精度較高且沒有累積誤差。
最小二乘定位方法的定位誤差從尺度上看就明顯比BP神經(jīng)網(wǎng)絡(luò)定位方法大(圖中前者每個刻度為10 mm,后者則僅為1 mm),并且定位誤差隨著行進長度/距離的增大而逐漸減小,在行進長度/距離較短時,誤差能夠達到50 mm,行進長度/距離超過3 m后才逐步穩(wěn)定在5 mm以內(nèi)。這是由于最小二乘法的擬合樣本來自500組數(shù)據(jù)(即數(shù)據(jù)涉及的機器人行進距離較長),所以在處理行進長度/距離較短的定位估計時誤差較大,說明該方法的定位誤差對擬合樣本的依賴性很強,而BP神經(jīng)網(wǎng)絡(luò)定位方法則不存在這樣的問題。
最后,利用100組定位數(shù)據(jù)與實測數(shù)據(jù)計算均方誤差,比較2種定位方法的精度大小,結(jié)果見表1。BP神經(jīng)網(wǎng)絡(luò)定位方法的定位誤差明顯更小。
5結(jié)論與展望
針對輪式農(nóng)業(yè)移動機器人的定位問題,該研究提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的定位方法,該方法繞開了還原論的研究思路,避開了對車輪打滑、機器人機械結(jié)構(gòu)、外界噪聲干擾等問題的逐一討論,直接給出了利用電機脈沖數(shù)推算機器人幾何中心位移的方法。經(jīng)過實驗對比,該方法具有較高的定位精度,而且受樣本數(shù)量影響較小,也不會產(chǎn)生累積誤差,具有良好的實用性。
但是,此次實驗僅僅考慮了機器人在水泥地面上的直線運動,對于農(nóng)業(yè)機器人的曲線運動、在田間行進等復(fù)雜情況尚未進行探討。下一步筆者將針對不同路面條件、不同運動模式展開實驗,并對BP網(wǎng)絡(luò)結(jié)構(gòu)進行相應(yīng)的調(diào)整,使之能夠適應(yīng)新的應(yīng)用場景,從而形成BP神經(jīng)網(wǎng)絡(luò)定位估計方法體系,使其能夠勝任對輪式農(nóng)業(yè)移動機器人在不同場景、不同運動模式條件下的定位估計工作。
注:a.BP神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果與實測值誤差分布圖,包括左輪、右輪以及機器人幾向中心的前進距離3種情況;b.最小二乘法預(yù)測結(jié)果與實測值誤差分布圖,包括左輪、右輪以及機器人幾何中心的前進距離3種情況。
圖5BP神經(jīng)網(wǎng)絡(luò)定位與最小二乘定位誤差對比
參考文獻
[1]
李磊,葉濤,譚民.移動機器人技術(shù)研究現(xiàn)狀與未來[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.