陳 勇,范平清,袁 濤
(上海工程技術(shù)大學(xué) 機械與汽車工程學(xué)院,上海 201620)
在移動機器人領(lǐng)域,自引導(dǎo)小車(Automated Guided Vehicle,AGV)的路徑規(guī)劃[1]問題是一個十分重要的研究方向,路徑規(guī)劃是指在兩節(jié)點之間規(guī)劃出一條綜合指數(shù)最優(yōu)的路徑.由于機器人在各個領(lǐng)域的應(yīng)用越來越廣泛,機器人逐漸被應(yīng)用在野外等路況較差的場景中[2],路徑的平緩度決定了機器人在尋路過程中是否會造成側(cè)翻,這一指標成了路徑規(guī)劃中必須考慮的重要因素[3-5].現(xiàn)在的算法通常只考慮了路徑是否最優(yōu),如經(jīng)典的Dijkstra 算法[6]、人工勢場法[7]、A-star 算法[8]、RRT 算法[9]以及智能遺傳算法[10]、粒子群算法[11]等.
蟻群算法[12]在20 世紀90 年代末被提出,因算法相對簡單,應(yīng)用范圍較廣.但蟻群算法易出現(xiàn)局部最優(yōu),對目標點的可見度較低.文獻[13]提出改進勢場蟻群算法,利用人工勢場法中的勢場力構(gòu)造出新的啟發(fā)函數(shù),減少了搜索的盲目性,提高了對終點的可見度,但算法缺乏全局搜索能力.文獻[14]利用人工勢場構(gòu)造啟發(fā)函數(shù),借鑒了最大最小螞蟻系統(tǒng)限制信息素范圍以避免陷入局部最優(yōu),并在勢場蟻群算法中引入三次B 樣條曲線優(yōu)化了路徑,使得路徑更加平滑.隨后,文獻[15]改進了勢場蟻群算法,引入啟發(fā)信息遞減系數(shù)避免算法的局部最優(yōu)問題,提出了自適應(yīng)調(diào)節(jié)信息素揮發(fā)系數(shù),提高了勢場蟻群算法的全局搜索能力,避免出現(xiàn)停滯現(xiàn)象.文獻[16]針對勢場蟻群算法路徑轉(zhuǎn)折點較多的問題,提出了基于勢場跳點的蟻群算法,算法提高了前期的搜索效率,使規(guī)劃出的路徑更加平滑.但上述路徑搜索算法均只考慮了路徑長度,因素較為單一.
后來一些學(xué)者提出利用3D 柵格建立地圖模型以考慮地形因素,但此方法會增加計算機的運算時間,因此現(xiàn)多采用2D 柵格地圖的高程圖法[17-19]以提高算法效率.文獻[20]在蟻群算法中結(jié)合多種因素,重新構(gòu)造啟發(fā)函數(shù),引導(dǎo)螞蟻走向最優(yōu)路徑.文獻[21]在改進蟻群算法中引入多目標性能指標,將路徑規(guī)劃問題轉(zhuǎn)化為一個多目標優(yōu)化問題,在前人的基礎(chǔ)上提出能耗[22-23]、安全度和路徑長度這3 個評價指數(shù),將這3 個帶權(quán)值的評價指標作為多目標函數(shù)的約束條件,實現(xiàn)了路徑規(guī)劃的全局綜合優(yōu)化.文獻[24]提出信息素階梯分配原則,綜合構(gòu)建了路徑安全性、顛簸性、平滑性以及路程最短性的多因子啟發(fā)式函數(shù),并運用動態(tài)切點法將多因素生成的路徑平滑處理,提高了路徑的綜合質(zhì)量.但其中的信息素階梯分配原則考慮情況過于單一,在目標點變化時,搜索時盲目性仍舊較大.
基于上述研究,本文提出了一種多因素改進勢場蟻群算法.首先,利用RGB-2D 柵格法模擬機器人尋路過程中顛簸的路面情況.該算法結(jié)合人工勢場法,優(yōu)化了蟻群算法中距離啟發(fā)因子,克服了蟻群算法早期搜索的盲目性,并綜合考慮了路徑平緩性以及平滑性多因子啟發(fā)式函數(shù),在保證路徑最短的同時,減少了最優(yōu)路徑中的轉(zhuǎn)彎次數(shù)及平均高度.然后,引入啟發(fā)信息遞減系數(shù),避免了蟻群陷入局部最優(yōu)解,并運用最大最小螞蟻策略提高了全局搜索能力.最后,利用動態(tài)切點法對生成的路徑進行二次平滑,縮短了路徑距離,提高了路線質(zhì)量.
1.1 多因素評價指標在傳統(tǒng)的蟻群算法中,啟發(fā)函數(shù)多是距離的倒數(shù),這樣雖然可以找出一條距離最優(yōu)的路徑,但在實際工作環(huán)境之中,其忽略了地面多種路況的不安全性以及機器人多次轉(zhuǎn)彎的能耗時間問題,所以本文將路面平坦度和路徑轉(zhuǎn)彎次數(shù)同時作為路徑最優(yōu)的評價標準.由于這些因素指標會引起路徑優(yōu)化沖突,導(dǎo)致機器人在多種指標下不知如何選擇,為了平衡各個因素指標,本文將啟發(fā)函數(shù)定義為路徑長度、平緩度(顛簸程度)和平滑度(轉(zhuǎn)彎次數(shù))的加權(quán)值,如下所示:
式中,Q為啟發(fā)式函數(shù),p為路徑編號,a,b,c分別為路徑長度L(p),平緩度H(p)和平滑度T(p)的權(quán)重系數(shù).其中,平緩度由機器人所經(jīng)過的路徑高度均方差表示,平滑度由路徑的轉(zhuǎn)彎次數(shù)表示.
1.2 多路況柵格地圖建立地圖建模的方法大體有柵格法、可視圖法、拓撲法、自由空間法等.由于柵格法具有很好的魯棒性,且能將實際地圖按一定的比例切割成若干個面積相等的柵格,所以運用較為廣泛.經(jīng)典柵格地圖之中,通常只用0 和1 兩種數(shù)字來分別構(gòu)造自由柵格和障礙物,本文添加hi值以表示不同地形柵格地圖,則地圖中柵格i的地形G(i)計算公式如下:
式中,當hi>0 時,表示該柵格為隆起柵格,反之,hi<0 時,該柵格表示沉陷柵格,hi的范圍為(-1,1),hi絕對值越大,表示該柵格沉陷或隆起的程度越大.利用綠色表示隆起地形的柵格,藍色表示沉陷地形的柵格,如圖1 所示.
圖1 多地形柵格圖Fig.1 The diagram of multi-terrain raster
2.1 傳統(tǒng)蟻群算法傳統(tǒng)蟻群算法主要是依靠概率選擇和信息素更新進行路徑規(guī)劃,螞蟻初期會根據(jù)概率選擇不同的路徑,并在尋路的過程中釋放信息素,剩下的螞蟻傾向于選擇信息素濃度較大的路徑行走,逐漸地,最優(yōu)路徑上的信息素濃度越積越多.所以針對概率選擇和信息素更新這兩點,本文分別進行了改進.
2.1.1 概率選擇 螞蟻k在t時刻對下一個節(jié)點的選擇是由節(jié)點i到節(jié)點j的信息素濃度τij(t)、距離啟發(fā)因子ηij(t)的大小進行判定的,它是一種偽隨機原則,如下所示:
式中,集合A中 是路徑節(jié)點,α為信息素啟發(fā)式因子,β為期望啟發(fā)因子.當隨機生成概率q≤q0時,則選擇當前所有可移動節(jié)點中最大值的節(jié)點;否則,依據(jù)概率pijk(t)選擇下一個節(jié)點,pijk(t)計算公式如下:
式中,dij是節(jié)點i和節(jié)點j之間的歐氏距離.
2.1.2 信息素更新 蟻量模型和蟻密模型多采用局部更新方式[25-26],本文采用蟻周模型進行更新:任意時刻,螞蟻經(jīng)由節(jié)點i移動到節(jié)點j后會留下一定信息素,這就需要對信息素實時更新,信息素濃度的更新會使下一次迭代的螞蟻傾向于走全局最優(yōu)路徑.更新信息素濃度公式如下所示:
式中,Δτi j(t,t+1)為螞蟻在(t,t+1)時刻留在路徑(i,j)上的信息素量,ρ (ρ <1)為信息素揮發(fā)系數(shù),Lk為節(jié)點(i,j)的歐氏距離,Q為常數(shù).設(shè)τi j(0)=C,C為常數(shù),
2.2 人工勢場法人工勢場法通過引力和斥力解決避障問題,假設(shè)機器人當前節(jié)點為X=(x,y),目標位置為Xg=(xg,yg),則引力勢場函數(shù)為:
式中,k為引力場常數(shù),X為機器人節(jié)點量,Xg為目標節(jié)點量.引力公式為:
式中,-g(Ua)表示引力市場的頁梯度.斥力勢場函數(shù)定義為:
式中,m為 大于零的斥力場常數(shù),d為機器人到障礙物的距離,d0為設(shè)定的安全距離.斥力公式為:
通過合力Fs的共同作用,機器人完成尋路并順利避障.
在傳統(tǒng)的蟻群算法中,通常以當前節(jié)點i與下一節(jié)點j的距離的倒數(shù)作為啟發(fā)函數(shù),該距離啟發(fā)函數(shù)對終點的可見度較低,且并沒有考慮實際多路況的情形.針對上述情況,本文首先引入人工勢場法重新構(gòu)造距離啟發(fā)函數(shù),克服了蟻群算法早期搜索的盲目性,然后綜合考慮了路徑長度,路徑平緩性以及平滑性3 種因素,構(gòu)建新的多因子啟發(fā)式函數(shù)
式中,a、b、c為權(quán)重系數(shù),Lij(t)為引入勢場法的距離啟發(fā)函數(shù)[27-28],Hij(t)為平緩性啟發(fā)函數(shù),Tij(t)為平滑性啟發(fā)函數(shù),該啟發(fā)式函數(shù)克服了傳統(tǒng)路徑規(guī)劃中單以距離為指標的局限性.
3.1 改進啟發(fā)函數(shù)
3.1.1 距離啟發(fā)函數(shù) 蟻群算法中,傳統(tǒng)的距離啟發(fā)函數(shù)如式(4)~(5)所示,現(xiàn)利用人工勢場法構(gòu)造的合力Fs構(gòu)造新的距離啟發(fā)函數(shù)Lij(t),由于人工勢場對機器人有引導(dǎo)的作用,蟻群的收斂速度雖然更快,但是更容易得到局部最優(yōu)解.針對蟻群算法易陷入局部最小,本文加入系數(shù)ξ 以改進勢場力,如下所示:
式中,Nk為第k波螞蟻的迭代次數(shù),Nmax為總迭代次數(shù),F(xiàn)A為改進勢場合力.則優(yōu)化后的距離啟發(fā)函數(shù)為
式中,di j為節(jié)點i到節(jié)點j的距離,djg為節(jié)點j到目標點g的距離.當勢場合力變?yōu)? 時,則依靠距離啟發(fā)函數(shù)進行搜索,避免算法陷入“死鎖”.
3.1.2 平緩性啟發(fā)函數(shù) 在機器人實際工作環(huán)境中,過于顛簸的路面易造成機器人的側(cè)翻,并且會影響機器人的移動速度和能耗.所以本文在啟發(fā)式函數(shù)中加入平緩性啟發(fā)因子Hi j(t),引導(dǎo)機器人選擇更為平緩的路徑,從而提高路徑的平緩性能,得到質(zhì)量更高的路徑.
式中,ai表示節(jié)點i附近所有可到達節(jié)點的集合,hmax表示當前節(jié)點i與周圍相鄰節(jié)點高度之差的最大值,hmin表示當前節(jié)點i與周圍節(jié)點高度之差的最小值.h(i)-h(j)表示節(jié)點i到節(jié)點j的高度之差,Nmax為迭代最大次數(shù),防止當hmax=hmin時分母為0 的情況,M和N為穩(wěn)定修正參數(shù).當螞蟻選擇高度差越小的路徑時,平緩性啟發(fā)因子Hi j(t)越大,越能得到更為平緩的路徑.
印尼華語教學(xué)中斷了30余年,實際上已不存在傳統(tǒng)的華文教育。印尼華人的后代已被同化,融入印尼的主流社會。因此,我們必需更新對“華語”的認識,這樣有利于解決印尼華語教學(xué)存在的問題。我們必須清醒地認識到,印尼語是印尼的國家官方語言,而華語或漢語是外語,所以我們應(yīng)著力解決華語作為第二語言教學(xué)的問題。這樣才能夠使印尼華語教學(xué)在政治上確保正確,保證華語教學(xué)在實行單一語言政策的印尼可持續(xù)發(fā)展。
3.1.3 平滑性啟發(fā)函數(shù) 傳統(tǒng)蟻群算法在路徑規(guī)劃過程中會出現(xiàn)過多的拐點,這會導(dǎo)致機器人在拐點處重新調(diào)整位姿且進行不必要的加減速,行駛難度加大,機器人行駛時間變長.所以本文針對這一現(xiàn)象,在啟發(fā)式函數(shù)中加入平滑性因子Tij(t),機器人能夠選擇轉(zhuǎn)彎次數(shù)更少的路徑.
式中,δ(0≤δ ≤1)表示螞蟻直行的重要程度,u表示機器人的靈活程度常量,Nmax為總迭代次數(shù),σ為轉(zhuǎn)彎修正常量,vi表示螞蟻從起點到節(jié)點i的所有經(jīng)過節(jié)點的集合,S(ai)表示集合中所有節(jié)點的個數(shù),e-1表示集合中倒數(shù)第二個元素,即節(jié)點i的上一個節(jié)點m,dmi和di j分別表示螞蟻從節(jié)點m到節(jié)點i和節(jié)點i到節(jié)點j的運動方向,當方向相同,即表示機器人不用轉(zhuǎn)彎時啟發(fā)函數(shù)更大,引導(dǎo)螞蟻走向轉(zhuǎn)彎次數(shù)更少的路徑.
3.2 優(yōu)化信息素更新
3.2.1 初始信息素分配原則 蟻群算法在路徑搜索初期,會因為各個節(jié)點的信息素濃度差異較小使算法的正反饋效果不明顯,導(dǎo)致算法初期搜索盲目性較大,收斂性差,搜索時間長等.為解決此問題,本文提出初始信息素不均勻分配方法,將算法所找到的起始點和目標點之間的所有節(jié)點重新分配初始信息素值,其余節(jié)點信息素值不變,從而提高算法前期的收斂速度和搜索時長.
式中,τi為新分配的初始信息素值,ω(ω >1)為初始信息素濃度增加系數(shù),D為初始信息素濃度,P為起始點和目標點之間的所有節(jié)點集合.因為P中包含最優(yōu)路徑中的節(jié)點,所以有利于提高搜索的搜索速度.
3.2.2 多因子信息素更新 基于多目標的優(yōu)化結(jié)果考慮,信息素的更新由路徑平緩度、平滑度和路徑長度共同決定.多因子信息素更新方式如下所示:
式中,當路徑柵格i的信息素濃度 τi小于設(shè)定的最小信息素濃度τmin時,自動調(diào)整此時的信息素濃度為τmin,當此時信息素濃度大于設(shè)定的最大信息素濃度時τmax時,自動調(diào)整此時信息素濃度為τmax,從而解決路徑搜索局部最優(yōu)問題.
3.3 動態(tài)切點法處理柵格法的路徑往往是從一個柵格的中心指向另一個柵格的中心,因此獲得的路徑并不平滑,為符合機器人對實際環(huán)境的性能要求,需要對規(guī)劃出的路徑進行平滑處理.本文采用動態(tài)切點法[29]對拐點進行平滑優(yōu)化.
如圖2 所示,機器人的起始點為A1,重點為An,算法從A1到An,沿著路徑依次對拐點進行處理,具體步驟為:
圖2 平滑優(yōu)化示意圖Fig.2 The schematic diagram of smoothing optimization
步驟 1比較并選擇Ai-1Ai和AiAi+1兩邊中的較短邊,以短邊的端點P(xp,yp)作垂線與∠Ai-1AiAi+1的角平分線相交于點Oi-1(x0,y0),相切圓的半徑為
式中,k0為角平分線斜率,k01為短邊斜率.相切圓的方程為
步驟 2判斷相切圓是否與長邊之間有交點S,若有,則轉(zhuǎn)至步驟3,反之則轉(zhuǎn)至步驟4.
步驟 3判斷圓弧PS是否經(jīng)過障礙點,若是,則轉(zhuǎn)至步驟4;否則,用圓弧PS替代Ai-1AiAi+1,并轉(zhuǎn)至步驟5.
步驟 4切點p(xp,yp)沿著所在線段移動到p2(xp2,yp2),xp2為:
其中,λ根據(jù)實際情況設(shè)置,同時設(shè)置p2為初始切點,返回步驟1.
步驟 5判斷機器人是否已遍歷路徑中的所有節(jié)點,若是,則返回步驟1,否則結(jié)束.
3.4 算法實現(xiàn)流程本文算法流程圖如圖3 所示.
圖3 多因素勢場蟻群算法流程圖Fig.3 The flow chart of multi-factor potential field ant colony algorithm
本文算法的執(zhí)行步驟如下:
步驟 1根據(jù)式(2)建立多路況柵格地圖,并初始化算法的參數(shù),將不均勻分配的信息素賦給每個柵格.
步驟 2根據(jù)式(13)計算啟發(fā)式函數(shù),通過概率選擇要轉(zhuǎn)移的網(wǎng)格.
步驟 3按式(22)更新路徑中局部信息素,并按式(31)對信息素進行限制.
步驟 4判斷當前節(jié)點是否為終點,如果是,轉(zhuǎn)到步驟5,如果不是,返回步驟2,繼續(xù)路徑規(guī)劃.
步驟 5計算該次迭代過程中路徑的高度差,整體轉(zhuǎn)彎次數(shù)和路徑長度.
步驟 6尋找并輸出本次迭代中的最優(yōu)路徑,并進行信息素的全局更新.
步驟 7判斷是否達到最大迭代次數(shù),如果是,轉(zhuǎn)到步驟8,如果不是,重回步驟2.
步驟 8輸出算法的最優(yōu)路徑,并通過動態(tài)切點法進行路徑優(yōu)化.
4.1 改進柵格地圖機器人在野外惡劣環(huán)境中工作時,對安全性要求較高,因此提出在柵格地圖中,即便是障礙物頂點也不能觸碰到,從而保證機器人的絕對安全性,以得到一條質(zhì)量更優(yōu)的路徑.現(xiàn)采用改進地圖信息儲存方式更新頂點防撞策略[30],如圖4 所示.
圖4 柵格轉(zhuǎn)向標號Fig.4 Grid steering label
本文規(guī)定偶數(shù)標號為機器人直行標號,奇數(shù)標號為機器人斜向標號,當只有斜向和與該方向垂直的兩個直向柵格均無障礙物時,才可以進行斜向行進.如圖4 中,若轉(zhuǎn)向5 號柵格時,與5 號柵格相垂直的4 號和6 號兩個方向的柵格均無障礙物時,機器人才會進行斜向轉(zhuǎn)移.為了儲存螞蟻可行信息,建立轉(zhuǎn)移距離矩陣D,如下所示:
式中,i1表示直行柵格,mod 為取余函數(shù),i2是斜向柵格,i′和i′′分別表示斜向柵格相垂直的兩方向的柵格,l為柵格的邊長.
4.2 實驗參數(shù)選取本文選擇在Matlab 中進行仿真分析,因需要與文獻[20]進行對比,因此設(shè)定算法參數(shù)與之相同.現(xiàn)設(shè)定算法的參數(shù)數(shù)據(jù)如表1 所示.
表1 實驗參數(shù)數(shù)值表Tab.1 Experimental parameter values
4.3 算法仿真對比
4.3.1 20×20的障礙柵格地圖 為了驗證算法的有效性,在20×20的小柵格地圖中進行仿真實驗分析,并與文獻[20]算法進行對比,仿真實驗結(jié)果如表2 和圖5 所示.為方便比較,本文引入綜合指標S表示路徑的質(zhì)量,S越小,路徑質(zhì)量越高.S的計算公式為:
其中,H(t)表示路徑的高度均方差,L(t)表示路徑長度,L(t)表示路徑的轉(zhuǎn)彎次數(shù),M為穩(wěn)定迭代次數(shù).
由表2 可知,本文算法在轉(zhuǎn)彎次數(shù)、路徑長度以及迭代次數(shù)上均優(yōu)于文獻[20]算法和傳統(tǒng)蟻群算法,在高度均方差上優(yōu)于傳統(tǒng)蟻群算法,能夠取得較好的仿真結(jié)果.由圖5 可知,由于傳統(tǒng)算法并未考慮路徑的顛簸程度和平滑性,只追求了路徑長度是否最短這一特性,所以當路徑中存在坡度時,雖然本文算法的最短路徑長于傳統(tǒng)蟻群算法,但是在路徑的平緩性和平滑性上有較好的效果.
表2 小柵格實驗結(jié)果Tab.2 Experimental results of small grid
圖5 小柵格機器人運動軌跡圖Fig.5 Trajectory diagram of small raster robot
由圖6 可知,相比于文獻[20]中,本文由于加入了人工勢場法和動態(tài)切點法,使得算法收斂速度變快,穩(wěn)定迭代次數(shù)在5 次左右,避免了陷入局部最優(yōu)問題且路徑更為平滑,轉(zhuǎn)彎次數(shù)更少,降低了16.67%的轉(zhuǎn)彎次數(shù),1.6%的路徑長度.與其他兩種算法相比,本文算法的綜合指標更好.
圖6 小柵格實驗迭代圖Fig.6 Iteration diagram of small grid experiment
4.3.2 30×30的障礙柵格地圖 考慮到20×20柵格實驗的局限性,在30×30的柵格地圖中進行再次仿真.仿真結(jié)果如表3 和圖7 所示.
由表3 可知,本文算法在高度均方差、轉(zhuǎn)彎次數(shù)和迭代穩(wěn)定次數(shù)上都優(yōu)于傳統(tǒng)算法和文獻[20]算法,雖然在路徑長度上比傳統(tǒng)蟻群算法略差,但是綜合指標最佳.由圖7 可以看出,在30×30的地圖中,本文算法尋得一條較為平坦的路徑且在保證長度較短的同時,路徑最為平滑.
圖7 大柵格機器人運動軌跡圖Fig.7 Trajectory diagram of large raster robot
表3 大柵格實驗路徑指標Tab.3 Experimental path index of large grid
由圖8 可知,相比于傳統(tǒng)蟻群算法,本文算法的路徑長度雖然較長,但相比于文獻[20]和傳統(tǒng)蟻群算法中的算法,本文算法收斂性最佳,且減少了22.2%的轉(zhuǎn)彎次數(shù),9.2%的高度均方差且比文獻[20]縮短了4.7%的路徑長度.
圖8 大柵格實驗迭代圖Fig.8 Iteration diagram of large grid experiment
4.3.3 多地形無障礙柵格地圖 為驗證本文算法對多地形地圖的適應(yīng)性,在多地形無障礙柵格地圖中通過調(diào)整權(quán)重參數(shù)a、b、c、A、B、C進行實驗對比分析.
實驗1 中,根據(jù)式(1),首先調(diào)整路徑長度因素權(quán)重為a=1,路徑高度權(quán)重和轉(zhuǎn)彎次數(shù)權(quán)重b、c均為0,則式(26)~(28)中信息素更新權(quán)重的A、B、C分別為1、0、0,分析算法在只考慮長度的情況下,機器人尋得路徑是否滿足要求.
實驗2 在綜合考慮3 種因素的前提下,著重考慮路徑長度因素,設(shè)置a、b、c分別為5、2、1,信息素更新權(quán)重的A、B、C均為1,查看在多地形無障礙地圖中算法的適應(yīng)性.
實驗3 在不考慮路徑長度的情況下,只考慮路徑的高度均方差和轉(zhuǎn)彎次數(shù),設(shè)置a、b、c分別為5、2、1,信息素更新權(quán)重的A、B、C為0、1、1,查看算法在多地形地圖中是否能找到一條最為安全的路徑.實驗綜合指數(shù)參考式(38)如表4,實驗結(jié)果如圖9 所示.
表4 實驗綜合指數(shù)表Tab.4 Experimental comprehensive index table
由表4 可知,實驗1 在不考慮路徑高度和轉(zhuǎn)彎次數(shù)因素的情況下綜合指數(shù)最高,根據(jù)式(38)可知,綜合指數(shù)越高,路徑質(zhì)量越差,實驗1 結(jié)果如圖9(a)所示,路徑中只考慮了長度因素,由于路徑中并沒有障礙物.所以此次路徑的轉(zhuǎn)彎次數(shù)也為0,但路徑中的高度均方差較大,得到的路徑綜合指數(shù)較高.由圖9(b)可知,實驗2 較實驗1 可明顯看出雖然路徑的轉(zhuǎn)彎次數(shù)增多,路徑長度增加,但高度均方差減少,所得的綜合指數(shù)也較低.圖9(c)中,實驗3 忽略路徑長度這一因素,可得路徑明顯繞路,得到一條高度均方差較低的路徑.在實際環(huán)境中,可以根據(jù)不同的工況,選擇不同的路徑因素權(quán)值,從而滿足不同的需求.
圖9 多地形無障礙實驗圖Fig.9 Experimental map of accessible multi-Terrain grid
本文針對機器人無法應(yīng)對復(fù)雜多變的路面環(huán)境等問題,綜合考慮了路徑長度因素,路徑平緩因素和平滑因素,并通過引入人工勢場法重新構(gòu)造路徑長度啟發(fā)函數(shù),加入勢場力遞減系數(shù),從而解決蟻群算法迭代時間長且易陷入局部最優(yōu)解的問題.算法提出初始化信息素不均勻分配方法,克服了蟻群算法早期搜索的盲目性.最后,利用動態(tài)切點法對生成的路徑進行平滑處理,提高了路線質(zhì)量.仿真實驗表明,對于20×20柵格地圖,改進算法減少了16.67%的轉(zhuǎn)彎次數(shù),1.6%的路徑長度.對于30×30柵格地圖,改進算法減少了22.2%的轉(zhuǎn)彎次數(shù),降低了9.2%的高度均方差且比文獻[20]縮短了4.7%的路徑長度,綜合指數(shù)最佳.證明了算法具有較好的適應(yīng)力,能夠有效解決機器人路徑規(guī)劃問題.在后續(xù)的研究中,可以依據(jù)動態(tài)窗口法對動態(tài)的障礙物進行避障等.