引言
路徑規(guī)劃是機器人運動控制的關(guān)鍵,也是當前人工智能領(lǐng)域的研究熱點。機器人的路徑規(guī)劃是指在有障礙物的環(huán)境中,按照一定的評判標準,找出一條從起點到終點的最優(yōu)無碰撞路徑。
蟻群算法作為仿生智能算法,具有較強的魯棒性、環(huán)境適應(yīng)性以及分布式計算、無中心控制的特征,國內(nèi)外學(xué)者對此做了大量研究并取得了豐碩成果,這些方法在基于靜態(tài)障礙環(huán)境下均能快速獲得最優(yōu)解,但存在路徑中拐點過多、拐彎停頓耗時和產(chǎn)生額外機械損耗等問題。
本文從拐點數(shù)及轉(zhuǎn)彎角度出發(fā),對蟻群算法每次迭代搜索出的最短路徑進行順滑修正,進一步優(yōu)化所尋路徑,避免不必要的轉(zhuǎn)彎,降低機器人機械損耗。
1環(huán)境建模
為便于開展路徑規(guī)劃,需要對機器人的行走環(huán)境做數(shù)字建模處理,將環(huán)境信息轉(zhuǎn)換為機器人可識別的數(shù)學(xué)模型。為不失一般性,采用主流的柵格地圖,按照以下定義對機器人行走環(huán)境進行建模:
1.1柵格定義
以機器人自身尺寸6作為柵格大小,從而可以將機器人理想化為一個質(zhì)點進行處理,確保機器人每次都停留在柵格的中心位置,便于開展無碰撞路徑規(guī)劃。只要柵格內(nèi)有障礙物存在,則視該柵格為障礙柵格,以黑色柵格表示。否則,該柵格為自由柵格,以白色柵格表示。
1.2坐標系定義
以左下角為原點、橫向向右為Ⅹ軸正向、縱向向上為Y軸方向,將運動區(qū)域按柵格的大小劃分為皿和Ⅳ等分,按照從左到右、從下到上順序,將柵格編號為1,2,…,皿×Ⅳ,如圖1所示。
柵格i的中心坐標(λi,yi)與柵格編號i存在以下對應(yīng)關(guān)系:
經(jīng)過上述定義,機器人路徑規(guī)劃問題其實就是在自由柵格集合中遍歷出所有鄰接?xùn)鸥竦淖蛹?并從中搜索出一條最短的鄰接?xùn)鸥衤窂健?
2平滑策略
路徑的平滑程度是度量機器人能量消耗與機械損耗的一個重要參數(shù)。拐彎過程中,機器人需要經(jīng)過減速、提速過程,產(chǎn)生額外的時間消耗、能量消耗和機械損耗,同時急拐彎還容易出現(xiàn)路徑累計誤差。
本文采取通過刪除拐彎點、拉直運動路徑或緩解急拐彎的方式來平滑機器人運動路徑,具體措施為:障礙柵格至平滑路徑起始點連線距離如圖2所示,現(xiàn)有搜索路徑i→j→k,出現(xiàn)拐彎點j。假設(shè)a、b分別為柵格編號i、j、k三者的最小值和最大值,搜索柵格編號子集L=(a,a+1,a+2,…,b}中的障礙柵格p,按照公式(2)計算柵格p到柵格i與柵格k中心連線的距離d,若d≤6,則可以刪除拐彎柵格j,拉直柵格i和柵格k,以此達到平滑運動路徑的目的。
平滑處理的算法流程如圖3所示。
3基于蟻群算法的路徑規(guī)劃步驟
步驟1:采用柵格法構(gòu)建環(huán)境地圖,指定機器人初始位置和終止位置并設(shè)置各種參數(shù),初始化信息素矩陣(信息素濃度均相同)。
步驟2:將螞蟻種群放置于初始位置,并將初始位置加入禁忌表。
步驟3:根據(jù)當前信息素濃度計算第k只螞蟻由柵格i轉(zhuǎn)向柵格j的概率:
公式(3)中,allowdedi為與柵格i鄰接的自由柵格集合,a為柵格i至柵格i路徑上殘留的信息素,α、8分別為信息素濃度啟發(fā)因子和能見度啟發(fā)因子,n為路徑能見度函數(shù),其取值由公式(4)獲得:
公式(4)中,(xi+yi)和(xi+yi)分別表示柵格i和柵格i的中心點坐標。
信息素τ進行更新:
公式(5)、公式(6)中,p為信息素濃度衰減系數(shù),0為信息素強度,Lk為第k只螞蟻在本次迭代搜索中走過的路徑長度。
步驟4:更新路徑以及路徑總長度。
步驟5:重復(fù)步驟3和4,引導(dǎo)螞蟻到達目的地或陷入死循環(huán),對陷入死循環(huán)的螞蟻采取放棄策略。
步驟6:對搜索出的最短路徑做平滑處理,得到本輪迭代最優(yōu)解。
步驟7:重復(fù)步驟3至步驟6,直到迭代搜索結(jié)束,得到最終最優(yōu)解。
4仿真實驗
采用10x10的柵格矩陣模擬機器人運動環(huán)境,使用VC++6.0編程對機器人路徑規(guī)劃進行仿真驗證。
仿真實驗參數(shù)需滿足:種群數(shù)量m=100,迭代次數(shù)N=200,信息素權(quán)重參數(shù)a=1,啟發(fā)因子權(quán)重參數(shù)8=7,信息素強度系數(shù)0=200,信息素揮發(fā)系數(shù)p=0.8,分別對基本蟻群算法和加入平滑處理策略的蟻群算法進行仿真驗證,得到機器人運動規(guī)劃
路徑分別如圖4、圖5所示。
從圖中可以看出,經(jīng)過平滑處理,直角急拐彎由6次降低為1次,拐彎總次數(shù)由6次降低為4次,路徑總長度由18s減少為15.76s。
5結(jié)語
本文研究了基于柵格地圖環(huán)境的蟻群算法機器人路徑規(guī)劃平滑策略。針對蟻群算法在機器人路徑規(guī)劃過程中出現(xiàn)的拐彎過多、運動延時和產(chǎn)生額外機械損耗等缺陷,提出了對迭代搜索出的最短路徑進行平滑優(yōu)化處理的策略,刪除不必要的拐彎點,拉直急拐彎路徑,降低機器人運動停滯概率,從而減少運動耗時,降低機械損耗。仿真結(jié)果表明,采用對每一輪迭代搜索出的最短路徑進行平滑處理的策略能有效提高路徑搜索質(zhì)量,降低機器人運動時間,減少機械磨損。