曹宇杰,鄧本再,詹一佳
(長沙理工大學(xué) 電氣與信息工程學(xué)院,湖南 長沙 410114)
足球機(jī)器人是目前機(jī)器人研究的熱點(diǎn)領(lǐng)域之一。由于計(jì)算的復(fù)雜性、控制的實(shí)時性要求、環(huán)境的不確定因素,尤其是在包含多個障礙的復(fù)雜環(huán)境中,路徑規(guī)劃一直以來都是機(jī)器人運(yùn)動控制中的難點(diǎn)[1],國內(nèi)外在機(jī)器人動態(tài)路徑規(guī)劃方面已經(jīng)做了大量的研究工作[2-3]。路徑規(guī)劃就是在有障礙物的環(huán)境下找到一條由給定點(diǎn)到達(dá)目標(biāo)點(diǎn)的最優(yōu)路徑,使機(jī)器人能夠繞過障礙物,不與障礙物相碰撞[4]。常用的路徑規(guī)劃方法可分為傳統(tǒng)方法,如柵格法,自由空間法和人工勢場法[5]等,以及智能方法,如遺傳算法,模糊邏輯和神經(jīng)網(wǎng)絡(luò)等[6-7]。針對Robocup比賽中足球機(jī)器人的碰撞情況復(fù)雜,障礙物包括本方和對方的足球機(jī)器人的情況[8],提出了一種針對Robocup中型組比賽中處于持球狀態(tài)機(jī)器人的基于模糊神經(jīng)網(wǎng)絡(luò)的局部路徑規(guī)劃方法。
如圖1所示,機(jī)器人從給定的絕對位置PV以速度VV向給定的目標(biāo)絕對位置Pr移動,而障礙物從絕對位置p(Obs)開始,以V(Obs)速度移動。不斷更新機(jī)器人的直角坐標(biāo)系T中機(jī)器人的位置與目標(biāo)的位置,并將P(Obs)與V(Obs)轉(zhuǎn)換為機(jī)器人極坐標(biāo)系中的相對位置S(Obs)與相對速度U(Obs)。機(jī)器人通過模糊推斷來判斷其與敵方機(jī)器人之間的靜態(tài)危險等級α(Obs)以及動態(tài)危險等級β(Obs)。然后機(jī)器人根據(jù)決策表中的規(guī)則來確定避障方向O(Obs),最終導(dǎo)向矢量M是由矢量O與T組成的。算法的決策框圖如圖2所示。
圖1 機(jī)器人避障模型Fig.1 Robot obstacle avoidance model
圖2 程序決策框圖Fig.2 The decision algorithm block diagram
機(jī)器人通過全景攝像機(jī)獲取周圍環(huán)境數(shù)據(jù),然后對圖像進(jìn)行識別,并將其前方范圍均勻劃分為11個區(qū)域。當(dāng)一個敵方機(jī)器人只出現(xiàn)在單一區(qū)域中時,我們選擇其外殼上相對本方機(jī)器人最近的點(diǎn)為P1,最右側(cè)點(diǎn)為P2,最左側(cè)點(diǎn)為P3,當(dāng)某一敵方機(jī)器人出現(xiàn)在超過一個區(qū)域時,需要將障礙物按照區(qū)域分割,并在每個區(qū)域中都確定3個點(diǎn)。P1,P2,P3這3個點(diǎn)就構(gòu)成了機(jī)器人認(rèn)知中的障礙物,在進(jìn)行避障時只需避免與這3個點(diǎn)發(fā)生碰撞。
靜態(tài)障礙物的危險等級取決于機(jī)器人與障礙物之間的相對位置矢量So(S(Obs)。
其中φ為機(jī)器人直角坐標(biāo)系上的方向角,θS和LS分別為機(jī)器人極坐標(biāo)系上的方向角與距離。將機(jī)器人正前方位置定義為0°,加值為右,減值為左。將對障礙物的探測區(qū)域限定在[-90°,+90°]內(nèi),方向角 θS的隸屬度函數(shù)如圖 3(a)所示,其模糊量分為 4 個等級,分別為左大(LL),左?。↙S),右?。≧S),右大(RL)。
假定機(jī)器人對150 cm范圍內(nèi)的障礙物進(jìn)行探測,距離的隸屬度函數(shù)如圖3(b)所示,其模糊量分為3個等級,分別為近(N),中(M),遠(yuǎn)(F)。
靜態(tài)障礙物危險等級α(Obs)的隸屬度函數(shù)如圖3(c)所示,其模糊量分為8個等級,分別為左側(cè)危險性大(LDL),左側(cè)危險性小(LDS),左側(cè)安全性?。↙SS),左側(cè)安全性大(LSL),右側(cè)危險性大(RDL),右側(cè)危險性小(RDS),右側(cè)安全性小(RSS),右側(cè)安全性大(RSL)。
圖3 隸屬度函數(shù)Fig.3 Membership functions
FNN1采用5層結(jié)構(gòu),如圖4所示,其輸入矢量為XS=。
根據(jù)經(jīng)驗(yàn)和大量的實(shí)驗(yàn)對的判定設(shè)定了以下模糊規(guī)則:
圖4 FNN1結(jié)構(gòu)圖Fig.4 FNN1 structure diagram
第4層具有8個與輸出函數(shù)對應(yīng)的節(jié)點(diǎn),用于執(zhí)行加操作,其輸出函數(shù) f如式(7)所示,α1,α2,α3,α4,α5,α6,α7分別與LDL,LDS,LSS,LSL,RSL,RSS,RDS,RDL 對應(yīng)。
第1層為輸入層,有兩個節(jié)點(diǎn),其將對應(yīng)的隸屬度函數(shù)輸入給下一層。
第2層為隸屬度函數(shù)層,實(shí)現(xiàn)輸入變量的模糊化,節(jié)點(diǎn)的個數(shù)是各個輸入變量的模糊子集的和,每個節(jié)點(diǎn)代表一個語言變量值,其作用是計(jì)算各輸入分量屬于各語言變量模糊集合的隸屬度函數(shù)值,節(jié)點(diǎn)數(shù)為7個。
第3層為模糊推理層,具有12個節(jié)點(diǎn),每個節(jié)點(diǎn)代表一條模糊規(guī)則,它是用來匹配模糊規(guī)則的前件,計(jì)算每條規(guī)則的適用度。節(jié)點(diǎn)由MIN操作激活,輸出函數(shù)f如式(6)所示。
第5層為輸出層,通過MAX操作實(shí)現(xiàn)去模糊化得到α(Obs),輸出權(quán)重為1。
在FNN1的訓(xùn)練過程中,W1jp和W2pk的隨機(jī)初始權(quán)重范圍為[-1,+1],學(xué)習(xí)效率η1=0.40,在經(jīng)過K1=75次訓(xùn)練后能夠收斂到公差Eα1=0.01。
障礙物的動態(tài)危險等級β(Obs)取決于通過式(3)的R矩陣轉(zhuǎn)換得到的機(jī)器人與障礙物之間的相對速度矢量UO:
當(dāng)Y軸方向與障礙物方向相同時,將變換為機(jī)器人直角坐標(biāo)系上的相對速度矢量。
將機(jī)器人極坐標(biāo)系中的速度方向和速度分別定義為ΦU和WU,將障礙物的方向定義為0°,向右加值,向左減值。
ΦU的值域?yàn)閇-180°,+180°],其隸屬度函數(shù)如圖 4(d)所示。ΦU的模糊量分 6個等級,分別為左大(LL),左中(LM),左小(LS),右?。≧S),右中(RM),右大(RL)。的值域?yàn)?,其隸屬度函數(shù)如圖4(e)所示。WU的模糊量分為慢(S)與快(F)2個等級。
根據(jù)經(jīng)驗(yàn)和大量的實(shí)驗(yàn)對的判定設(shè)定了以下模糊規(guī)則:
FNN2的5層結(jié)構(gòu)與FNN1類似,如圖5所示,其中輸入向量為。在FNN2的訓(xùn)練過程中,W1jp和W2pk的隨機(jī)初始權(quán)重范圍為 [-1,+1],學(xué)習(xí)效率η2=0.30,在經(jīng)過K2=55次訓(xùn)練后能夠收斂到公差Eα2=0.01。
圖5 FNN2結(jié)構(gòu)圖Fig.5 FNN2 structure diagram
將機(jī)器人正前方位置定義為0,對應(yīng)0°,右側(cè)依次為+1,+2,+3,+4,+5,分別對應(yīng) 15°,30°,45°,60°,75°,左側(cè)依次為-1,-2,-3,-4,-5,分別對應(yīng)-15°,-30°,-45°,-60°,-75°。控制器根據(jù)決策表圖6通過NN3來確定避障方向O(obs)。
圖6 O(0bs)決策表Fig.6 O(0bs)decision table
將輸入α(Obs)和β(Obs)分別編碼為7位二進(jìn)制代碼α和β:
X0=[Xα1,…,Xα7,Xβ1,…,Xβ7]T
NN3的結(jié)構(gòu)如圖7所示。
圖7 NN3結(jié)構(gòu)圖Fig.7 NN3 structure diagram
第1層為輸入層,具有14個節(jié)點(diǎn) ,用于將輸入值傳遞到下一層。
第2層為隱藏層,具有7個節(jié)點(diǎn),輸出函數(shù)如式(13)所示:
第3層為輸出層,具有11個節(jié)點(diǎn),輸出函數(shù)如式(14)所示:
Oj的極值即 O(Obs)。
在NN3的訓(xùn)練過程中,W1jp和W2pk的隨機(jī)初始權(quán)重范圍為[-1,+1],學(xué)習(xí)效率η3=0.40,經(jīng)過K3=100次訓(xùn)練能夠收斂到公差 Eα3=0.01。
機(jī)器人的避障方向需要排除有障礙物的方向,最終機(jī)器人的避障方向取決于通過NN3獲得的基于機(jī)器人直角坐標(biāo)系的單位向量O。而避障動作完成后機(jī)器人的目標(biāo)點(diǎn)T和轉(zhuǎn)向向量M分別如式(15)和(16)所示:
用MATLAB對本文所述的路徑規(guī)劃算法進(jìn)行了仿真,通過MATLAB的Anfis工具和genfis()函數(shù)對實(shí)驗(yàn)測得的樣本數(shù)據(jù)進(jìn)行計(jì)算產(chǎn)生隸屬度函數(shù)的初值。設(shè)定機(jī)器人初始坐標(biāo)為(0,0),目標(biāo)點(diǎn)坐標(biāo)為(15,13),障礙物 1、2、3 的初始坐標(biāo)分別為(4.5,7)、(11,6)、(9,12),初始速度分別為(-0.3,-0.6)、(-0.7,-0.3)、(0.5,-0.5),仿真結(jié)果如圖8所示,粗實(shí)線為機(jī)器人的運(yùn)動軌跡,細(xì)實(shí)線分別為障礙物1、2、3的運(yùn)動軌跡,黑色圓點(diǎn)為目標(biāo)點(diǎn)。
圖8 仿真結(jié)果Fig.8 Emulation result
本方法的主要特點(diǎn)是定義了障礙物的動態(tài)與靜態(tài)危險等級,并應(yīng)用模糊神經(jīng)網(wǎng)絡(luò)對其進(jìn)行判斷,并以此來確定避障方向。實(shí)驗(yàn)結(jié)果顯示使用本方法在面對多個不同方向、速度的障礙物的情況下,能夠根據(jù)障礙物的不同狀態(tài),做出較為準(zhǔn)確的判斷,并且具有較好的實(shí)時性,能夠?qū)崿F(xiàn)較為合理的局部路徑規(guī)劃。
[1]陳波,楊宜民.關(guān)于足球機(jī)器人避障控制的研究[J].機(jī)器人,2004,26(2):111-113.
[2]Li H,Yang,Siomon X,Biletskiy Y.Neural network based path planning for a multi-robot system with moving obstacles(J).IEEE Transcation on Automation Science and Enginerring,1991,40(3):654-662.
[3]Fierro R,Lewis F L.Control of a nonholonomic mobile robot using neural networks[J].IEEE Tracsation on Neural Networks,1998,9(4):589-600.
[4]霍迎輝,張連明.一種移動機(jī)器人的路徑規(guī)劃算法[J].自動化技術(shù)與應(yīng)用,2003,22(5):8-10.
[5]李 實(shí),徐旭明,葉榛.國際機(jī)器人足球比賽及其相關(guān)技術(shù)[J].機(jī)器人,2000,9(22):420-426.
[6]徐秀娜,賴汝.移動機(jī)器人路徑規(guī)劃技術(shù)的現(xiàn)狀與發(fā)展[J].計(jì)算機(jī)仿真,2006,23(10):1-4.
[7]孟 蕊,蘇維均,連曉峰.基于動態(tài)模糊人工勢場法的移動機(jī)器人路徑規(guī)劃[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(7):1558-1561.
[8]常健,吳成東,李 斌.移動機(jī)器人避障方法綜述[J].儀器儀表學(xué)報,2010,31(8):439-442.