王建軍,王金鑫,張晨,李翠明
(蘭州理工大學(xué)機(jī)電工程學(xué)院,甘肅 蘭州 730050)
我國(guó)西北地區(qū)擁有豐富的太陽(yáng)能資源,近些年,國(guó)家在西北地區(qū)大力發(fā)展光伏發(fā)電項(xiàng)目[1]。但西北地區(qū)揚(yáng)塵嚴(yán)重,沙塵附著在光伏組件表面造成發(fā)電量減少,進(jìn)而形成“熱島效應(yīng)”破壞光伏組件,嚴(yán)重影響光伏組件的使用壽命,利用自主移動(dòng)清潔機(jī)器人及時(shí)清潔光伏組件表面至關(guān)重要。為降低清潔成本,提高清潔效率,需要在全覆蓋清潔的基礎(chǔ)上優(yōu)先清潔安裝在風(fēng)口位置積灰嚴(yán)重的光伏組件,為此,需要規(guī)劃出一條清潔機(jī)器人從起始位置到風(fēng)口位置光伏組件的最優(yōu)無碰撞路徑;同時(shí)基于地形識(shí)別結(jié)果,機(jī)器人可根據(jù)規(guī)劃出的最優(yōu)無碰撞路徑及時(shí)地重新調(diào)整清潔作業(yè)路線,避免規(guī)劃不當(dāng)?shù)穆肪€導(dǎo)致機(jī)器人浪費(fèi)太多的能量,甚至喪失機(jī)動(dòng)性。
目前,靜態(tài)環(huán)境下常用的路徑規(guī)劃算法包括A* 算法[2],粒子群算法[3],遺傳算法[4],蟻群算法[5]等。其中蟻群算法具有強(qiáng)魯棒性和正反饋機(jī)制的優(yōu)點(diǎn),受到了專家學(xué)者的廣泛關(guān)注。但由于算法本身存在收斂速度慢,易陷入局部最優(yōu)等缺陷[6],針對(duì)不同問題改進(jìn)的蟻群算法被廣泛提出。文獻(xiàn)[7]引入A*算法的估價(jià)函數(shù),對(duì)蟻群算法啟發(fā)函數(shù)進(jìn)行調(diào)整,降低算法陷入局部最優(yōu)解的概率。文獻(xiàn)[8]通過候選點(diǎn)到目標(biāo)點(diǎn)的距離動(dòng)態(tài)調(diào)整啟發(fā)函數(shù),提高算法收斂速度。文獻(xiàn)[9]運(yùn)用A*算法確定蟻群初始信息素的設(shè)置,從而提高算法收斂速度。
光伏電站的全局靜態(tài)環(huán)境先驗(yàn)信息可以通過遙感衛(wèi)星系統(tǒng)等方式獲得[10]。針對(duì)實(shí)際環(huán)境中存在不確定性的障礙物,需要研究更高效實(shí)時(shí)的算法,以降低清潔機(jī)器人與障礙物發(fā)生碰撞的可能性[11,12]。目前,國(guó)內(nèi)外對(duì)于移動(dòng)機(jī)器人在動(dòng)態(tài)環(huán)境下的路徑規(guī)劃方法方面的研究已經(jīng)取得了一定的進(jìn)展。文獻(xiàn)[13]針對(duì)機(jī)器人在動(dòng)態(tài)環(huán)境下的路徑規(guī)劃提出了正面碰撞和側(cè)面碰撞兩種策略。文獻(xiàn)[14]針對(duì)動(dòng)態(tài)障礙物的速度和大小,提出三種不同的避障策略。但由于實(shí)際光伏電站中狹長(zhǎng)地帶較多,上述文獻(xiàn)采取的策略常常會(huì)失效。
針對(duì)清潔機(jī)器人對(duì)風(fēng)口位置光伏組件清潔作業(yè)時(shí)的路徑規(guī)劃問題,本文提出一種基于改進(jìn)A*蟻群系統(tǒng)算法的路徑規(guī)劃新方法。首先,運(yùn)用改進(jìn)估價(jià)函數(shù)的A*算法,通過較小的工作量?jī)?yōu)化生成蟻群初始信息素,以解決蟻群系統(tǒng)(ACS)算法初次搜索的盲目性。其次,設(shè)計(jì)群體返巢搜索策略和分區(qū)懲罰因子,分別用于提高ACS 算法的收斂速度和減小后續(xù)螞蟻死鎖的概率。最后,機(jī)器人沿著靜態(tài)環(huán)境先驗(yàn)信息規(guī)劃出的最優(yōu)路徑移動(dòng)時(shí),結(jié)合自帶傳感器獲取到的動(dòng)態(tài)障礙物信息,實(shí)施不同的防碰撞策略,使機(jī)器人能夠有效躲避障礙直至到達(dá)目標(biāo)位置。
考慮到光伏組件的排列結(jié)構(gòu)(見圖1),本文采用柵格法[15]對(duì)環(huán)境進(jìn)行抽象建模,將可行柵格在柵格地圖上由白色塊表示,障礙柵格由黑色塊表示,柵格長(zhǎng)度l 定義為
圖1 某光伏電站的實(shí)際場(chǎng)景
式中 δ--安全距離
R--機(jī)器人半徑
r--太陽(yáng)能板長(zhǎng)寬的最大值
以柵格地圖右下角為原點(diǎn),柵格長(zhǎng)度l 為單位長(zhǎng)度,從左到右為x 軸正方向,從下到上設(shè)為y軸正方向,建立平面直角坐標(biāo)系。
為了研究的方便,對(duì)清潔機(jī)器人及其工作環(huán)境信息作出如下假設(shè):
(1)光伏電站的全局靜態(tài)信息與清潔機(jī)器人起始點(diǎn)和目標(biāo)點(diǎn)的信息已知。
(2) 環(huán)境中存在動(dòng)態(tài)障礙物做勻速直線運(yùn)動(dòng),但障礙物方向、速度和大小未知。
(3)移動(dòng)機(jī)器人通過自帶的傳感器,能夠感知檢測(cè)范圍內(nèi)動(dòng)態(tài)障礙物的方向、速度和大小。
(4)由于柵格法建模時(shí),柵格長(zhǎng)度l 已考慮了清潔機(jī)器人的大小,因此通過全局靜態(tài)信息規(guī)劃路徑時(shí),移動(dòng)機(jī)器人可以視為質(zhì)點(diǎn);但躲避動(dòng)態(tài)障礙物時(shí),由于障礙物的大小會(huì)對(duì)避開障礙物產(chǎn)生較大影響,此時(shí)需要考慮機(jī)器人自身的大小。
(5)移動(dòng)機(jī)器人能夠計(jì)算在某位置處沿著本文算法規(guī)劃出的路徑到達(dá)目標(biāo)點(diǎn)的距離。
由于初始信息素均勻分布,導(dǎo)致ACS 算法初次搜索的盲目性。文獻(xiàn)[9]提出運(yùn)用A*算法設(shè)置蟻群初始信息素以解決此問題,但其忽視了A*算法啟發(fā)信息的恰當(dāng)控制,導(dǎo)致A*算法搜索較多柵格,加大了算法的工作量。本文采用改進(jìn)估價(jià)函數(shù)的A*算法,根據(jù)不同環(huán)境選取權(quán)重系數(shù),使A*算法搜索工作量減小的同時(shí)獲得較優(yōu)的蟻群初始信息素。
A*算法結(jié)合了BFS 算法和Dijkstra 算法,進(jìn)行啟發(fā)式搜索[16]。本文將A* 算法估價(jià)函數(shù)重新定義為
式中 f(n)--從初始點(diǎn)到目標(biāo)點(diǎn)的估價(jià)函數(shù)
g(n)--初始點(diǎn)到當(dāng)前點(diǎn)的實(shí)際距離
h(n)--當(dāng)前點(diǎn)到目標(biāo)點(diǎn)的估計(jì)距離
x--自變量,x 的取值范圍是[0,+∞)
公式(2)中當(dāng)自變量x 增大,h(n)的權(quán)重比例減小,f(n)的啟發(fā)信息減弱,規(guī)劃的路徑質(zhì)量提高但算法搜索工作量增加;當(dāng)x 減小,h(n)的權(quán)重比例增大,f(n)的啟發(fā)信息增強(qiáng),減少了路徑搜索的工作量但規(guī)劃的路徑質(zhì)量較差。
本文通過調(diào)整自變量x 控制啟發(fā)信息的強(qiáng)度,運(yùn)用較小的A*算法搜索工作量即可獲得較優(yōu)的路徑質(zhì)量。將A*算法得到的路徑記為RA,這條路徑上信息素設(shè)置為
式中 k--信息素放大倍數(shù),且k>1。
螞蟻初始搜索時(shí)信息素τ1=τ0+τ(RA)。
3.2.1 群體返巢搜索策略
為了加大螞蟻的重復(fù)利用率,提高ACS 算法的收斂速度,文獻(xiàn)[17]將單個(gè)螞蟻的一次迭代中增加了從目標(biāo)點(diǎn)返回初始點(diǎn)這一過程。這雖然提高了蟻群算法的收斂速度,但使得在相同的迭代次數(shù)下,算法搜索工作量是原先的兩倍,并且文獻(xiàn)[17]也未考慮螞蟻陷入死鎖后是否能夠返回初始點(diǎn)。
在實(shí)際的覓食過程中,螞蟻到達(dá)目標(biāo)點(diǎn)發(fā)現(xiàn)食物后,攜帶食物返回巢穴并通知其它螞蟻,在食物運(yùn)輸?shù)匠惭ǖ倪^程中會(huì)釋放額外的氣味。本文基于ACS 算法,結(jié)合螞蟻實(shí)際覓食,提出群體返巢搜索策略。螞蟻從初始點(diǎn)出發(fā),搜索目標(biāo)點(diǎn)并沿途進(jìn)行局部信息素更新。當(dāng)螞蟻陷入死鎖或到達(dá)目標(biāo)點(diǎn),則表示該只搜索完成,之后進(jìn)行下一只螞蟻搜索。等到本波次所有螞蟻搜索完成后,進(jìn)行全局信息素更新并記做算法一次迭代完成。只有到達(dá)目標(biāo)點(diǎn)的螞蟻,才可以進(jìn)行目標(biāo)點(diǎn)出發(fā)搜索回初始點(diǎn)的第二次算法迭代。螞蟻沿途進(jìn)行局部信息素更新,當(dāng)所有可行的螞蟻返回初始點(diǎn)后進(jìn)行ACS 算法全局信息素更新,并記為算法的第二次迭代完成。每次從初始點(diǎn)開始搜索時(shí),重新生成螞蟻。螞蟻群體返巢策略示意如圖2 所示。在螞蟻群體返巢過程中,因?yàn)槭澄镌谘赝踞尫艢馕?,所以需要將ACS 算法中局部信息素更新公式改為
圖2 螞蟻群體返巢搜索策略示意圖
式中 Δτf--食物信息素增量
螞蟻在返回巢穴后,判斷搜索和返巢這兩次算法迭代中是否為相同的螞蟻搜索路徑最優(yōu),如果是的話,對(duì)這些螞蟻進(jìn)行一次額外的信息素更新。
式中 ω--額外增量系數(shù)
通過螞蟻搜索波次和返巢波次信息素差異化設(shè)置,防止螞蟻返巢時(shí)沿著搜索波次相同的路徑行走。在算法相同迭代次數(shù)下,采用群體返巢策略后,減少了螞蟻反向搜索增加的算法搜索工作量,增加了螞蟻的重復(fù)利用率并且提高了ACS算法的收斂速度。
3.2.2 自適應(yīng)進(jìn)化機(jī)制
在ACS 算法中螞蟻選擇下一個(gè)點(diǎn)j 時(shí)采用由參數(shù)q0控制的偽隨機(jī)比率規(guī)則。本文改進(jìn)蟻群系統(tǒng)算法,通過參數(shù)q0與隨機(jī)數(shù)q1、q2的比較結(jié)果來選擇不同的比率規(guī)則
設(shè)置停止門限N,當(dāng)最優(yōu)路徑長(zhǎng)度連續(xù)N 波數(shù)不變時(shí),此時(shí)算法極有可能陷入局部最優(yōu),為防止此情況發(fā)生,通過式(7)調(diào)節(jié)q0值。
式中 μ--可調(diào)參數(shù),且μ∈(0,1)
根據(jù)公式(7)可知,參數(shù)q0越小,螞蟻通過隨機(jī)的方式選擇下一個(gè)點(diǎn)j 的可能性增大,以此提高螞蟻對(duì)環(huán)境的搜索力度。
公式(6)中,啟發(fā)函數(shù)ηij(t)表示邊(i,j)的能見度,ACS 算法中啟發(fā)函數(shù)表達(dá)式為
此時(shí)ηij(t)僅考慮點(diǎn)i 到可行點(diǎn)j 的距離,沒有考慮到點(diǎn)j 到目標(biāo)點(diǎn)G 的距離因素。因此造成螞蟻在選擇下一個(gè)點(diǎn)時(shí),容易選擇距離點(diǎn)i 較近的點(diǎn)j,從而忽視了全局最優(yōu)的情況。因此需要對(duì)啟發(fā)函數(shù)ηij(t)進(jìn)行改進(jìn)。首先,由式(9)計(jì)算出可行點(diǎn)j 到目標(biāo)點(diǎn)G 的歐式距離djG
其次,將djG由大到小,以序號(hào)n=1,2,3,4,…的方式依次排列(若djG大小相等時(shí),序號(hào)n 也相同)。由于候選點(diǎn)的選擇最多有8 個(gè),故n 的最大值為8。然后,將得到的n 值帶入公式(10)求出點(diǎn)j 對(duì)應(yīng)的勢(shì)能
由式(10)可知可行點(diǎn)j 到目標(biāo)G 點(diǎn)距離越近(即序號(hào)n 增大),j 對(duì)應(yīng)的勢(shì)能E 減小。并且勢(shì)能E 減小的速度隨著序號(hào)n 的增大而加快,借此擴(kuò)大最優(yōu)點(diǎn)與較優(yōu)點(diǎn)之間的差異。最后,改進(jìn)后的啟發(fā)函數(shù)ηij(t)為
采用自適應(yīng)進(jìn)化機(jī)制后,可以增加全局信息的使用比例,從而提高獲得全局最優(yōu)解的概率。當(dāng)算法陷入停滯時(shí),通過減小q0值,加大算法的隨機(jī)性,提高螞蟻搜索力度防止算法陷入局部最優(yōu)。
3.2.3 分區(qū)懲罰因子
螞蟻算法在搜索過程中,易受到障礙物分布的影響,使得在環(huán)境復(fù)雜時(shí)螞蟻經(jīng)常找不到目標(biāo)點(diǎn)而陷入死鎖。但在ACS 算法中,螞蟻每經(jīng)過邊(i,j)時(shí)都將調(diào)用局部更新策略,這導(dǎo)致了陷入死鎖的螞蟻也會(huì)進(jìn)行正常的局部信息素更新,降低了后續(xù)螞蟻陷入死鎖的概率。現(xiàn)如今,很多改進(jìn)蟻群算法僅僅針對(duì)死鎖螞蟻所在的整條路徑采用懲罰函數(shù)進(jìn)行處理。但在絕大多數(shù)情況下,死鎖的螞蟻?zhàn)哌^的路徑中既包含了較差路段也包含了優(yōu)秀路段。如果僅對(duì)整條路徑進(jìn)行處理,這造成了優(yōu)秀路段的信息素一并減少,嚴(yán)重影響了ACS 算法的收斂速度。
本文提出一種根據(jù)優(yōu)秀路段存在的可能性進(jìn)行分區(qū)懲罰的方式,區(qū)域劃分示意圖如圖3 所示,虛線為運(yùn)用3.2 小節(jié)改進(jìn)A*算法生成的RA。將初始區(qū)域和目標(biāo)區(qū)域設(shè)成核心區(qū)域,離目標(biāo)點(diǎn)和初始點(diǎn)較遠(yuǎn)的兩個(gè)頂角區(qū)域設(shè)為非核心區(qū)域,中間地帶視為重要區(qū)域。地圖區(qū)域劃分后,將螞蟻死鎖時(shí)信息素處理過程分為兩步。首先,將死鎖的螞蟻局部信息素增量消除,同時(shí)保證正常的信息素?fù)]發(fā);其次,引入分區(qū)懲罰因子,對(duì)死鎖螞蟻行走路線的不同區(qū)域路段進(jìn)行信息素懲罰。
圖3 區(qū)域劃分示意圖
式中 λe--分區(qū)懲罰因子
ξ--局部信息素?fù)]發(fā)系數(shù)
核心區(qū)域λe1,非核心區(qū)域λe2=0.5λe1,重要區(qū)域λe3=0.9λe1
由式(12)可知運(yùn)用分區(qū)懲罰因子后,當(dāng)螞蟻死鎖時(shí),將非核心區(qū)域路段的信息素濃度大幅下降,以防止后續(xù)的螞蟻再次陷入此區(qū)域;將重要區(qū)域路段進(jìn)行較小的信息素下降,與此同時(shí)核心區(qū)域路段只進(jìn)行正常的信息素?fù)]發(fā),以此防止懲罰因子造成的優(yōu)秀路段信息素濃度大幅減小。
改進(jìn)A*蟻群算法具體的算法流程如下:
Step1 初始化工作空間以及算法的參數(shù)。
Step2 運(yùn)用改進(jìn)A*算法進(jìn)行蟻群系統(tǒng)算法初始信息素濃度的設(shè)置。
Step3 螞蟻根據(jù)公式(6)選擇下一個(gè)點(diǎn),并進(jìn)行局部信息素更新。重復(fù)此操作,直至螞蟻達(dá)到目標(biāo)點(diǎn)或處于死鎖狀態(tài)。若螞蟻達(dá)到目標(biāo)點(diǎn),則直接進(jìn)入Step4;若螞蟻陷入死鎖狀態(tài),調(diào)用公式(12)進(jìn)行懲罰,之后進(jìn)入Step4。
Step4 判斷是否走完本波次所有螞蟻,如果是,則進(jìn)入Step5,否則繼續(xù)執(zhí)行Step3。
Step5 找到該波次路程最短的螞蟻,之后進(jìn)行全局信息素更新。若最短路徑長(zhǎng)度連續(xù)N 波沒有發(fā)生改變,則調(diào)用公式(7)來加大螞蟻搜索力度,之后進(jìn)入Step6;若未達(dá)到N 次,則直接進(jìn)入Step6。
Step6 判斷蟻群是否已返回初始點(diǎn),若沒有,則將初始點(diǎn)設(shè)為目標(biāo)點(diǎn),執(zhí)行群體返巢策略,之后返回Step3;若蟻群已經(jīng)返回初始點(diǎn),則進(jìn)行額外的全局信息素更新并重新產(chǎn)生螞蟻,之后進(jìn)入Step7。
Step7 判斷是否達(dá)到最大波次,如果是,則輸出最優(yōu)路徑,否則執(zhí)行Step3。
光伏電站中,不僅存在動(dòng)態(tài)障礙物,而且西北地區(qū)氣候惡劣,該地區(qū)光伏電站中多為泥濘的非結(jié)構(gòu)化道路,使得在沙塵暴或暴雨后,道路中常常會(huì)出現(xiàn)水坑、碎石等障礙物。因此,清潔機(jī)器人僅沿著靜態(tài)全局先驗(yàn)信息規(guī)劃出的最優(yōu)路徑行走,而不采取避開障礙物的策略,發(fā)生碰撞事故的概率大大增加,降低了清潔機(jī)器人的實(shí)用性。光伏電站中,機(jī)器人行走的道路多為狹長(zhǎng)地帶,但現(xiàn)如今所提出的避開障礙物的策略少有提及機(jī)器人在陷入狹長(zhǎng)地帶時(shí)如何避開障礙物,且大部分都是在障礙物和機(jī)器人大小相同的基礎(chǔ)上進(jìn)行,鮮有障礙物大小不同時(shí)對(duì)移動(dòng)機(jī)器人避開障礙物造成的影響進(jìn)行討論的。
在本文路徑規(guī)劃方法中,機(jī)器人首先從起始點(diǎn)出發(fā)沿著H 行進(jìn),機(jī)器人路徑坐標(biāo)集合記為P,P={pt1,pt2,pt3,…,ptn}。在傳感器檢測(cè)范圍內(nèi),機(jī)器人能夠預(yù)測(cè)與障礙物相碰撞的點(diǎn)并預(yù)測(cè)障礙物的運(yùn)動(dòng)路徑,障礙物路徑坐標(biāo)集合記為B,B={bti,bti+1,…,bti+m}。當(dāng)集合P 與集合B 中有元素在t 時(shí)刻相同或移動(dòng)機(jī)器人與障礙物的歐氏距離小于規(guī)定距離時(shí),判斷機(jī)器人將受到障礙物影響。針對(duì)光伏電站的場(chǎng)景,根據(jù)障礙物的不同特點(diǎn),設(shè)計(jì)如下幾條防碰撞策略。
策略1:當(dāng)機(jī)器人在感知范圍內(nèi)察覺到障礙物集合B 為定值且繼續(xù)沿著H 會(huì)受其影響時(shí),則將該障礙物暫時(shí)設(shè)置成障礙物柵格,重新規(guī)劃到目標(biāo)點(diǎn)的路徑。
策略2:當(dāng)B 不為定值時(shí),機(jī)器人判斷之后是否可以一直沿著H。若可以,則將集合B 和集合P 中t 時(shí)刻相同的元素錯(cuò)開,即機(jī)器人到達(dá)碰撞點(diǎn)前一格,通過暫時(shí)停止運(yùn)動(dòng)躲避障礙物。并且傳感器實(shí)時(shí)檢測(cè),等到障礙物完全通過碰撞點(diǎn)后,機(jī)器人繼續(xù)沿著H 行走。
策略3:當(dāng)B 不為定值,并且繼續(xù)沿著H 會(huì)受其影響時(shí),機(jī)器人檢測(cè)障礙物大小,若障礙物比機(jī)器人大或速度比機(jī)器人快,則檢測(cè)周圍有哪些可以在碰撞前到達(dá)的安全位置。之后機(jī)器人以各個(gè)安全點(diǎn)到達(dá)目標(biāo)點(diǎn)的路徑距離為依據(jù),進(jìn)行安全點(diǎn)的選擇(距離相同時(shí),優(yōu)先選取與障礙物距離較遠(yuǎn)的安全點(diǎn))。機(jī)器人移動(dòng)到該安全點(diǎn)后重新規(guī)劃路徑。
策略4:當(dāng)B 不為定值,并且繼續(xù)沿著H 會(huì)受其影響,檢測(cè)到障礙物速度和半徑不大于移動(dòng)機(jī)器人時(shí),采用文獻(xiàn)[13]策略,將預(yù)測(cè)的碰撞點(diǎn)視為障礙物柵格,機(jī)器人將碰撞點(diǎn)前一格設(shè)為局部初始點(diǎn),并在H 上確定局部目標(biāo)點(diǎn),為機(jī)器人重新規(guī)劃一條局部無碰撞路徑。機(jī)器人達(dá)到局部目標(biāo)點(diǎn)后,繼續(xù)沿著H 行走。
策略5:當(dāng)機(jī)器人采用上述策,略局部路徑規(guī)劃均不成功時(shí),判斷機(jī)器人已經(jīng)陷入狹長(zhǎng)地帶。機(jī)器人必須根據(jù)走過的路徑集合P 回退,并實(shí)時(shí)判斷是否可以通過策略2~策略4 進(jìn)行避障。當(dāng)機(jī)器人判斷成功時(shí),隨即在后退位置采取相應(yīng)策略。
為了驗(yàn)證本文所提出的路徑規(guī)劃方法的效果,在CPU 賽揚(yáng)N3150,內(nèi)存4G 的Win8.1 操作平臺(tái)上,使用MATLAB 2016a 軟件從以下兩方面進(jìn)行仿真實(shí)驗(yàn):
(1)驗(yàn)證改進(jìn)A*蟻群系統(tǒng)算法的性能。
(2)驗(yàn)證本文所提方法的可行性。
本文算法實(shí)驗(yàn)參數(shù)如下:螞蟻數(shù)目m=20,信息素啟發(fā)因子α=1,能見度啟發(fā)因子β=8,局部揮發(fā)系數(shù)ξ=0.1,全局揮發(fā)系數(shù)ρ=0.1,最大迭代次數(shù)NCmax=200,信息素放大倍數(shù)k=4,核心區(qū)域懲罰因子λe1=1。
5.1.1 與ACS 算法的比較
環(huán)境1 是一張模擬實(shí)際光伏電站的20×20柵格地圖。本文提出的改進(jìn)A*蟻群系統(tǒng)算法中估價(jià)函數(shù)自變量x=0.2。ACS 算法與本文算法搜索最優(yōu)路徑長(zhǎng)度對(duì)比和算法收斂曲線對(duì)比分別如圖4、圖5 所示(用最短路徑為100 來表示算法某次迭代中所有螞蟻均沒有找到目標(biāo)點(diǎn)),運(yùn)行20 次的結(jié)果見表1 環(huán)境1。
表1 算法仿真結(jié)果表
圖4 環(huán)境1 中算法全局路徑對(duì)比圖
圖5 環(huán)境1 中算法收斂曲線對(duì)比圖
從圖4 可以看出,本文算法和ACS 算法相比,在遇到凹型障礙物時(shí),算法不易陷入局部最優(yōu)。由圖5 可以看出,ACS 算法初次搜索的盲目搜索性導(dǎo)致了在前兩次算法迭代中兩波螞蟻均沒有找到目標(biāo)點(diǎn) (即圖5 中ACS 算法前兩次最小路徑長(zhǎng)度為100)。本文算法運(yùn)用改進(jìn)A* 算法調(diào)整ACS 算法初始信息素的分布后,有效地解決了ACS 算法初次搜索的盲目性問題。
由表1 環(huán)境1 對(duì)比可知,本文算法得到的最優(yōu)路徑長(zhǎng)度和平均路徑長(zhǎng)度都明顯優(yōu)于ACS 算法,分別減少了1.6566 和4.782。環(huán)境1 實(shí)驗(yàn)表明,環(huán)境1 實(shí)驗(yàn)表明,本文算法和ACS 算法相比,在最優(yōu)路徑的質(zhì)量、算法收斂性和穩(wěn)定性上都具有明顯的優(yōu)勢(shì)。
5.1.2 與其他改進(jìn)ACS 算法的比較
為了進(jìn)一步驗(yàn)證本文算法的性能,將本文算法與文獻(xiàn)[8]中基于啟發(fā)式機(jī)制的改進(jìn)ACS 算法進(jìn)行比較。環(huán)境2 是文獻(xiàn)[8]中一張?jiān)谄鹗键c(diǎn)和終止點(diǎn)處存在凹型陷阱的20×20 柵格地圖。文獻(xiàn)[8]與本文算法在環(huán)境2 下的全局最優(yōu)路徑對(duì)比和算法收斂曲線對(duì)比分別如圖6、圖7 所示,運(yùn)行50 次的結(jié)果如表1 環(huán)境2 所示。本文算法自變量x=0.2。
圖6 環(huán)境2 中算法全局路徑對(duì)比圖
圖7 環(huán)境2 中算法收斂曲線對(duì)比圖
由表1 環(huán)境2 可知,兩種算法都可以找到最短路徑,但本文算法平均路徑較文獻(xiàn)[8]算法減少了0.3649。文獻(xiàn)[8]算法需要38 代達(dá)到收斂,本文算法僅需要11 代達(dá)到收斂,較文獻(xiàn)[8]算法減少了71%;文獻(xiàn)[8] 算法最優(yōu)路徑總轉(zhuǎn)折角度為720°,本文算法最優(yōu)路徑總轉(zhuǎn)折角度為585°,本文算法轉(zhuǎn)折角度相對(duì)減少了19%。
和環(huán)境2 相比,環(huán)境3 是文獻(xiàn)[8]中一張地圖更大且障礙物較多的50×50 柵格地圖。由于環(huán)境3 地圖較大障礙物較多,本文算法選取自變量x=0.4。文獻(xiàn)[8]算法和本文算法最優(yōu)全局路徑對(duì)比如圖8 所示,仿真結(jié)果如表1 環(huán)境3 所示。由表1環(huán)境3 可知,本文算法與文獻(xiàn)[8]算法最優(yōu)全局路徑長(zhǎng)度均為73.9828,但本文算法收斂代數(shù)和路徑轉(zhuǎn)折角度較文獻(xiàn)[8]算法分別減少了78%和50%。
圖8 環(huán)境3 中算法全局路徑對(duì)比圖
結(jié)合環(huán)境2 和環(huán)境3 實(shí)驗(yàn)結(jié)果可得,在保證最優(yōu)路徑長(zhǎng)度相等的同時(shí),本文算法的收斂速度、穩(wěn)定性以及最優(yōu)路徑轉(zhuǎn)折角度都優(yōu)于文獻(xiàn)[8]算法,進(jìn)一步說明了本文改進(jìn)算法的有效性。
為了驗(yàn)證本文光伏電站中機(jī)器人清潔風(fēng)口處太陽(yáng)能板時(shí)路徑規(guī)劃方法的可行性,下面通過仿真實(shí)例進(jìn)行說明。首先,機(jī)器人根據(jù)光伏電站全局靜態(tài)先驗(yàn)信息規(guī)劃出一條靜態(tài)環(huán)境下的全局最優(yōu)路徑H,隨后機(jī)器人沿著H 行走,每移動(dòng)一個(gè)格柵后通過傳感器檢測(cè)周圍的環(huán)境信息,并根據(jù)不同的情況采取相應(yīng)的策略。設(shè)機(jī)器人速度為1 單位長(zhǎng)度/min。
如圖9 所示,環(huán)境4 是一張20×20 大小的柵格地圖,起始點(diǎn)和終止點(diǎn)分別為 (0.5,19.5)和(19.5,0.5)。當(dāng)機(jī)器人(* 號(hào)表示)沿著H(虛線表示)行進(jìn)。經(jīng)過圖9(a)所示位置時(shí),檢測(cè)到一動(dòng)態(tài)障礙物以2 單位長(zhǎng)度/min 向左上方運(yùn)動(dòng),且大小是機(jī)器人四倍。機(jī)器人判斷障礙物比自身大且H 會(huì)受其影響,符合策略3 執(zhí)行條件。機(jī)器人根據(jù)障礙物的速度和方向檢測(cè)到{(5.5,14.5),(4.5,14.5),…,(8.5,17.5)}是周圍符合條件的安全點(diǎn),判斷(8.5,17.5)到達(dá)目標(biāo)點(diǎn)的距離較短并向該點(diǎn)移動(dòng)。如圖9(c)所示,清潔機(jī)器人到達(dá)該安全點(diǎn)后,根據(jù)障礙物信息重新規(guī)劃到目標(biāo)點(diǎn)的路徑 (加粗虛線表示),之后沿著該路徑行走至目標(biāo)點(diǎn)。
圖9 環(huán)境4 中機(jī)器人避障過程圖
圖10 為在仿真環(huán)境4 下,本文所提出的路徑規(guī)劃方法指引清潔機(jī)器人獲得的全局無碰撞路徑。
圖10 環(huán)境4 中機(jī)器人避障過程圖
針對(duì)清潔機(jī)器人對(duì)風(fēng)口位置光伏組件進(jìn)行作業(yè)時(shí)的路徑規(guī)劃問題,基于光伏電站全局靜態(tài)環(huán)境先驗(yàn)信息,提出了一種基于改進(jìn)A*蟻群系統(tǒng)算法的路徑規(guī)劃方法。
首先,運(yùn)用改進(jìn)估價(jià)函數(shù)的A*算法,根據(jù)環(huán)境采用不同的權(quán)重系數(shù),降低算法搜索工作量并且解決ACS 算法初次搜索的盲目性。提出群體返巢搜索策略和分區(qū)懲罰因子,分別用于提高ACS 算法的收斂速度和降低螞蟻陷入死鎖的概率。運(yùn)用自適應(yīng)進(jìn)化機(jī)制,以增加全局信息的使用比例,提高算法獲得全局最優(yōu)解的概率。當(dāng)算法陷入停滯時(shí),通過調(diào)節(jié)q0值,防止算法陷入局部最優(yōu)。最后,機(jī)器人沿著改進(jìn)A*蟻群系統(tǒng)算法根據(jù)已知靜態(tài)環(huán)境信息規(guī)劃出的全局最優(yōu)路徑移動(dòng),并根據(jù)障礙物不同的特點(diǎn)采用不同策略進(jìn)行避障。
仿真結(jié)果表明,本文所提方法能夠在光伏電站的環(huán)境下實(shí)時(shí)地為清潔機(jī)器人規(guī)劃出一條到風(fēng)口位置光伏組件處安全且較短的路徑,同時(shí)也可為清潔機(jī)器人在光伏電站地形識(shí)別提供后續(xù)理論保障。