王領(lǐng) 宮濤 樊慶琢 鄭義
一、引言
人工勢場算法是—種常見的路徑規(guī)劃算法,該算法在數(shù)學(xué)公式的描述上簡潔,計算量較小,并且產(chǎn)生的路徑路線比較平滑。在路徑的生成上系統(tǒng)與環(huán)境實現(xiàn)了閉環(huán),使系統(tǒng)的實用性和避障功能得到了加強(qiáng)。但是,通過研究發(fā)現(xiàn),傳統(tǒng)的人工勢場存在以下問題。
(1)在相近障礙物間不能發(fā)現(xiàn)路徑。
(2)存在陷阱區(qū)域。
(3)在障礙物前振蕩。
(4)在狹窄通道中擺動。
(5)當(dāng)目標(biāo)附近有障礙物時無法達(dá)到目標(biāo)點(GNRON)。
(6)規(guī)劃的路徑只考慮的路徑的安全性,并沒有對路徑進(jìn)行優(yōu)化。
由于以上問題的出現(xiàn),在極個別的實際應(yīng)用場合,規(guī)劃無法完成。通過數(shù)學(xué)分析,得知當(dāng)障礙物與目標(biāo)點十分接近的時候,此時機(jī)器人接近目標(biāo)時,他同時也靠近障礙物,如果此時的排斥力大于吸引力,目標(biāo)位置不能到達(dá)全局最小勢場,因而機(jī)器人停在障礙物附近不可能達(dá)到目標(biāo),即機(jī)器人的不可達(dá)問題(GNRON)。這是由于傳統(tǒng)的人工勢場算法存在缺陷,使該方法在處理具體問題中存在一定的局限性。因此,對傳統(tǒng)的人工勢場算法進(jìn)行改進(jìn),特別對斥力場函數(shù)進(jìn)行修改,使用改進(jìn)后的模型進(jìn)行路徑規(guī)劃,能夠較好的解決傳統(tǒng)模型缺陷帶來的目標(biāo)不可到達(dá)問題。
二、傳統(tǒng)的人工勢場模型
將人工勢場法應(yīng)用于路徑規(guī)劃是由Khatib首先提出的。他把機(jī)械手或者是移動機(jī)器人在環(huán)境中的運(yùn)動視為在一種抽象的人造受力場中運(yùn)動:目標(biāo)點對機(jī)器人產(chǎn)生引力,障礙物對機(jī)器人產(chǎn)生斥力,最后根據(jù)合力來確定機(jī)器人的運(yùn)動。
人工勢場法的基本思想:在目標(biāo)位置構(gòu)造引力勢場,在障礙物周圍構(gòu)造斥力勢場,這兩個勢場共同作用形成復(fù)合人工勢場。機(jī)器人在引力勢場的引力和斥力勢場的斥力的共同作用下向目標(biāo)運(yùn)動。
我們把移動機(jī)器人、障礙物和目標(biāo)點均簡化為一點,機(jī)器人的運(yùn)動空間為二維的。機(jī)器人要到達(dá)目標(biāo)點,需要不斷朝著目標(biāo)點運(yùn)動,因此,可以將目標(biāo)點看作與移動機(jī)器人帶有相反極性的電荷,對機(jī)器人產(chǎn)生吸引力。同時由于機(jī)器人在運(yùn)動過程中需要避開障礙物,因此,可以將障礙物看作與機(jī)器人帶有相同極性的電荷,對機(jī)器人具有排斥力,從而使機(jī)器人避開障礙物。同時,假設(shè)起始點帶有與機(jī)器人極性相同的電荷,從而開始規(guī)劃開始的時候推動機(jī)器人運(yùn)動。
三、改進(jìn)的人工勢場模型
如果機(jī)器人的目標(biāo)點在障礙物的影響范圍之內(nèi),整個環(huán)境勢場的全局最小點就與目標(biāo)點的位置不一致,這樣,當(dāng)機(jī)器人靠近目標(biāo)點的同時,斥力不斷增大,這就造成了不可達(dá)問題。
考慮到不能到達(dá)問題是由于在目標(biāo)點處的勢場斥力函數(shù)過大造成的,考慮將斥力場函數(shù)與機(jī)器人和目標(biāo)點的相對位置考慮在內(nèi),通過這個方式對斥力場函數(shù)進(jìn)行體整,以保證全局勢場在目標(biāo)點處為最小。
四、變形移動機(jī)器人的路徑規(guī)劃
我們把變形移動機(jī)器人看成一個點,如圖1所示,由目標(biāo)點對移動機(jī)器人產(chǎn)生的引力Fatt,它是引力勢場函數(shù)的負(fù)梯度,即為:
五、仿真試驗
在建立的人工勢場模型的基礎(chǔ)上對變形移動機(jī)器人進(jìn)行路徑規(guī)劃,機(jī)器人從起點開始,受到的合力作用下朝目標(biāo)點進(jìn)發(fā),引力隨著機(jī)器人的靠近而減小,在全局范圍內(nèi)為機(jī)器人導(dǎo)航,而障礙物的斥力隨距離的增減變化,但只有一定的作用范圍,因此對于每一個障礙物,其斥力僅在其周邊局部區(qū)域為機(jī)器人導(dǎo)航。具體的路徑規(guī)劃算法步驟如下。
(1)建立人工勢場模型,初始化移動變形機(jī)器人的參數(shù),確定引力場和斥力場的正比例位置增益系數(shù)k和η,障礙物影響距離Po,以及移動步長l,(設(shè)定機(jī)器人勻速前進(jìn))的值。同時確定機(jī)器人起始位置x,按照具體的環(huán)境信息建立勢場模型。
(2)調(diào)用計算模塊,計算斥力和引力與x軸的角度,計算引力、斥力在x,y軸的分量,計算合力,計算合力與x軸的夾角。
(5)判斷機(jī)器人是否到達(dá)目標(biāo)點,如果到達(dá)目標(biāo)點,則終止規(guī)劃過程。
(6)如果機(jī)器人沒有到達(dá)目標(biāo)點,再判斷前進(jìn)步數(shù)是否到達(dá)規(guī)定步數(shù),如果到達(dá)則表明無法找到完整路徑,需要調(diào)整模型參數(shù),否則就返回第三步繼續(xù)執(zhí)行。
下面討論不同的初始參數(shù)下得到仿真結(jié)果。
1、多障礙物情況下的仿真
利用MATLAB軟件進(jìn)行仿真試驗,如圖2所示,起始點為[3,3],障礙物為[2.5,2.5]、[3,4]、[5,4]、[6,6.5]和[7,7],目標(biāo)點為[9,9],引力場的正比例增益系數(shù)k為3,斥力場的正比例增益系數(shù)η為1,障礙物影響距離Po為3,移動步長l設(shè)為0.5,得到如圖2所示的路徑仿真結(jié)果。
2、不同的引力場和斥力場的正比例增益系數(shù)下的仿真
起始點為[3,3],障礙物為[2.5,2.5]、[3,4]、[5,4]、[6,6.5]和[7,7],目標(biāo)點為[9,9],障礙物影響距離Po為3,移動步長,設(shè)為0.2,不同的n和η對仿真結(jié)果有不同的影響,具體如圖3~5所示。
3、不同步長下的仿真
起始點為[3,3],障礙物為[2.5,2.5]、[3,4]、[5,4]、[6,6.5]和[7,7],目標(biāo)點為[9,9],引力場的正比例增益系數(shù)k為6,斥力場的正比例增益系數(shù)η為3,障礙物影響距離po為3,不同的移動步長對仿真結(jié)果有不同的影響,具體如圖6-8所示。
六、結(jié)論
對利用傳統(tǒng)人工勢場模型進(jìn)行移動機(jī)器人路徑規(guī)劃的缺陷進(jìn)行了數(shù)學(xué)分析,由于該缺陷的存在,在特定的環(huán)境中會產(chǎn)生不可到達(dá)問題。通過對斥力函數(shù)的修正,得到了改進(jìn)的人工勢場模型,實驗表明,運(yùn)用改進(jìn)后的勢場模型能夠進(jìn)行準(zhǔn)確的路徑規(guī)劃。