鮑久圣,張牧野,葛世榮,劉 琴,袁曉明,王茂森,陰 妍,趙 亮
(1.中國礦業大學 機電工程學院,江蘇 徐州 221116;2.中國礦業大學(北京) 機電與信息工程學院 北京 100083;3.中國煤炭科工集團太原研究院有限公司,山西 太原 030006)
近年來,我國開始加快推進煤礦智能化建設,無軌膠輪車作為煤礦井下重要輔助運輸裝備,無人駕駛是其智能化發展的必然方向。無人駕駛技術主要包括感知、定位、規劃、決策等幾大部分,其中路徑規劃是無人駕駛執行過程中尤為重要的環節。由于井下運輸任務存在不確定性,巷道工況也存在未知性,因此需針對無軌膠輪車井下行駛巷道運輸路線,研究科學高效的路徑規劃算法從而實現最優路徑行駛。同時由于井下無軌膠輪車的工作環境中存在岔路口造成的盲區較多、未知突發情況較多、井下照度低、場景單一導致的定位依據少、網絡改造力度不夠等情況,且其研發需要考慮礦區的行業標準和安全生產指標,故其在工作中需要著重考慮路徑選擇和避障工作的先進性和準確性。
路徑規劃包括2種:一種是依據已知環境的前提下尋找從初始位置至目標位置的可通行路徑問題,即全局路徑規劃;另一種是依據部分或全部環境信息未知情況下的障礙物規避問題,即局部路徑規劃。目前,無人駕駛車輛的路徑規劃算法已有較多研究,全局路徑規劃主要有A*算法、蟻群算法、遺傳算法等;局部路徑規劃中常用的有人工勢場算法、神經網絡算法、粒子群算法等。不同算法均存在各自的優缺點,其中A*算法相比于其他全局路徑規劃算法,自身的可移植性和可塑性較強,簡單易實現,計算量小,復雜度低,只要存在起始點至目標點的路徑就一定能找到最優路徑,在全局路徑規劃中應用較為廣泛,但是當障礙物密集、環境復雜時,A*算法效率較低,啟發性信息具有很大的主觀性選擇難度加大,難以搜索出最優路徑。而且,在傳統A*算法中,沒有對路徑進行平滑處理,因此規劃路徑的轉折比較劇烈,不利于移動機器人的路徑跟蹤。人工勢場算法是一種最為常見的局部路徑規劃方法,利用該方法可以實時避開障礙物且能規劃出平滑的軌跡,實時性強、便于底層實時控制、規劃路徑較為平滑,有利于無人車實際控制。但是,人工勢場法僅僅利用局部信息,可能會使得機器人陷入局部極值點或者不能到達目標位置。當不同的勢場綜合作用的效果大小相同、方向相反時,還會出現往復運動的可能。
針對傳統A*算法和人工勢場法的不足,已有不少學者進行了改進研究。例如,汪首坤等提出了A*算法的變步長分段搜索法,解決了應用傳統A*算法搜索數據量大和搜索死循環等問題,提高了運算效率和避障效果;文獻[10]提出跳點搜索策略,減少了遍歷過程中所需訪問的節點數,運行速度很快,但路徑中仍存在轉折點;文獻[11]提出將混沌理論的搜索算法引入人工勢場法的勢場函數中,改變障礙物的斥力系數和目標點的引力系數,該方法解決了傳統人工勢場法的缺陷,如局部最優問題等;丁家如等采用預規劃基于威脅分布的全局性信息的方法,彌補人工勢場法易陷入局部最小而無法找到可行路徑的不足。在井下機器人路徑規劃方面,針對傳統算法的不足,程新景基于A*算法和DWA算法對煤礦救援機器人進行了全局路徑與局部路徑的研究;劉停在機器視覺的基礎上,基于粒子群和蟻群算法的改進融合對井下救援探測機器人的路徑規劃問題進行了研究。但是,目前對于井下無軌膠輪車路徑規劃算法的研究尚鮮有涉及。
煤礦井下巷道空間狹小,在長、寬、高三維空間方向上均受到限制,多數情況下無軌膠輪車井下行駛路徑相對固定,但在行駛途中經常會遭遇往來行人、車輛等動態障礙物,因此可以考慮選擇簡單易實現且計算量小的A*算法用于無軌膠輪車的全局路徑規劃,選擇計算量小、適合底層實時控制、動態避障效果好的的人工勢場算法用于無人駕駛無軌膠輪車局部路徑規劃。筆者將在傳統A*算法和人工勢場算法的基礎上,針對無軌膠輪車井下無人駕駛的路徑規劃需求對其進行算法改進研究。
筆者基于對常用路徑規劃算法的對比分析,選擇簡單易實現的A*算法用于無人駕駛無軌膠輪車全局路徑規劃的基本算法,并針對井下行駛工況對其進行改進處理。
A*算法建立在Dijkstra算法和最佳優先搜索(BFS)基礎之上,是一種啟發式搜索算法。其中,Dijkstra算法由起始點對圖中全部可行點進行遍歷,搜索一條最優路徑,BFS則是從起點向外搜索至目標點。A*算法在BFS算法的基礎上增加目標導引,既保證圖搜索概率的完備性,也提高路徑規劃效率。
..傳統A*算法原理
A*算法是經典的啟發式搜索算法,它是在經典單源路徑算法Dijkstra算法的基礎上改進而來。其最顯著的特點就是,通過在搜索過程中給定啟發函數來減少搜索節點,從而提高路徑搜索效率。A*算法的估價函數()表示為
()=()+()
(1)
式中,()為起始點至目標點的預估消耗;()為起始點至當前節點的實際消耗;()為當前節點至目標點的估計消耗,也稱為啟發函數。
A*算法路徑規劃過程如下:定義初始位置和目標位置后,A*算法有方向有目的的向目標位置搜索,尋找離當前點()最小的節點,尋找到該點后,將該點作為下一個基礎點,繼續尋找距該基礎點()值最小的點,循環上述過程直到尋得目標位置所在點。
..傳統A*算法井下應用存在的問題

圖1 傳統A*算法規劃的路徑Fig.1 Path planning with traditional A* algorithm
A*算法是一種易實現的算法,但將其直接應用于無人駕駛無軌膠輪車的全局路徑規劃是不合適的,原因在于其優化后得到的路徑冗余點較多,且該方法得到的運動路線折線多、轉折次數多、轉折角大,這些缺陷嚴重影響了路徑規劃的效果。這對于無軌膠輪車的控制非常不利。此外,A*算法是一種搜索式算法,搜索過程需要耗費大量時間,如圖1所示,對于無軌膠輪車來說,大部分時間運行在無障礙區域,如果能夠加快A*算法在無障礙物區域的搜索效率,減少在無障礙物區域的搜索量,這無疑將提升路徑規劃的效率。
針對傳統A*算法存在的搜索速度慢、搜索節點多、路徑不平滑的缺點,筆者從以下2個方面進行A*算法改進。
..估價函數優化
A*算法在搜索路徑時,啟發函數值決定了其搜索效率,由于當前節點到目標點所消耗的()總是小于當前點至目標點的實際消耗,所以在搜索過程中需要搜索過多的節點。如果當前節點到目標點的估計消耗等于實際消耗,那只需1次搜索即可到達目標點。如果能夠提升估計消耗()的權重,搜索的節點數將會減少,算法效率將得到提升,基于此方法,趙真明等對啟發函數進行了加權:
()=()+()
(2)
其中,為權重系數。經過加權改進后,算法的搜索效率得到了提升。但在實際搜索過程中,隨著當前節點逐漸接近目標點,預估消耗()會逐漸接近真實消耗,此時權值應逐漸接近于1,使用固定的權重系數顯然無法在接近目標點使預估消耗接近真實消耗。因此,筆者在文獻[20]的方法基礎上進行改進,使用預估消耗的指數函數作為啟發函數的加權系數,優化后的估價函數為
()=()+e()()
(3)

圖2 加權A*算法規劃的路徑Fig.2 Path planning with weighted A* algorithm
在式(3)中,隨著當前節點逐漸接近目標點,預估消耗()逐漸趨近于0,加權系數逐漸趨近于1。圖2為加權后的A*算法搜索節點數,相比圖1規劃的結果大大減少。傳統A*算法搜索節點數為123個,搜索時間為0.875 4 s,改進后算法搜索節點數為66個,搜索時間為0.182 6 s,計算可得加權后的A*算法搜索時間僅為傳統A*算法的20%左右。
..路徑平滑處理
啟發函數加權改進后的A*路徑算法能夠快速搜索出1條從起點至目標點的路徑,不過路徑上存在拐點的情況依然沒有解決,無軌膠輪車跟蹤這樣的路徑時會出現較大且不平穩的轉向,不利于無軌膠輪車的實際控制,需對這樣的路徑進行平滑處理。常用的路徑平滑方式有高階貝塞爾曲線、圓弧處理和三次樣條插值法等。對于三次樣條曲線,只需給定路徑坐標信息和邊界條件即可擬合出1條光滑的曲線,筆者選擇三次樣條插值對改進后A*算法規劃的路徑進行平滑處理。
三次樣條插值定義如下:如果存在這樣的分段函數(),在+1個離散點構成的個不同的任一區間[,+1](=0,1,2,…,-1,遞增)中,()=()都是三次多項式,且在任意點處都滿足()=(=0,1,2,…,),那么可將這樣的函數稱作三次樣條插值函數。()具有二階導數,且其二階導數在區間[,]內是連續的,也可以理解為()曲線是一條光滑曲線,因此使用該函數擬合出的路徑也必然是光滑的。
對于使用指數函數加權后A*算法規劃出的路徑,不需要對全部路徑點進行三次樣條插值,只需對轉折處進行插值擬合即可,使用三次樣條差值平滑處理前后的路徑對比如圖3所示。圖3(a)為使用指數函數加權后A*算法規劃出的路徑,轉折點較多,路徑不平滑,圖3(b)為使用三次樣條插值法處理后的路徑,雖然還有一些微小的轉折,但路線基本平滑。
無軌膠輪車在井下行駛時經常通過聯絡巷變換到其他巷道,如圖4所示。本節使用指數函數加權后A*算法模擬無障礙物情況下無軌膠輪車從當前巷道(圖4中巷道1)通過聯絡巷進入另一條巷道(圖4中巷道2)時的路徑規劃,對規劃出的路徑使用三次樣條插值法進行平滑處理,仿真試驗相關參數設置見表1。
指數加權后A*算法規劃的路徑如圖5(a)所示,使用三次樣條插值處理后的路徑如圖5(b)所示。
由圖5可看出,路徑規劃過程中搜索節點數較少,都在其規劃的路徑上,具體搜索節點數為37個,所用時間為0.075 74 s。同時,也應該看到使用指數加權后的A*算法不能消除路徑上的拐點,因此需要使用三次樣條插值法對指數函數加權后A*算法規

圖3 平滑處理前后路徑對比Fig.3 Path comparison before and after smoothing

圖4 巷道變換示意Fig.4 Schematic diagram of roadway change

表1 A*算法路徑規劃仿真參數設置

圖5 改進后A*算法規劃的路徑Fig.5 Path planned by the improved A* algorithm
劃的路徑進行平滑處理,平滑處理后的路徑無明顯轉折點,且處理后的路徑與處理前差距在一個柵格內,可以保證平滑處理的安全性,比處理前的路徑更符合無軌膠輪車運動學約束。
選擇實時性強的人工勢場算法用于無軌膠輪車井下無人駕駛局部路徑規劃的基本算法,通過改進處理使其滿足需求。
人工勢場算法是一種模擬物理力場的算法,它的基本思想是將機器人在周圍環境中的運動,設計成一種抽象的人造引力場中的運動,目標點對移動機器人產生“引力”,障礙物對移動機器人產生“斥力”,最后通過求合力來控制移動機器人的運動。
..傳統人工勢場算法原理
無人車在行駛途中最大的人工勢場引力源自目標點,當勢力場為0時,2者之間距離為0,表示車輛已到達目標點。無人車只有在障礙物勢場范圍內才會受到斥力勢場的影響,在障礙物勢場范圍內,無人車受到的勢場斥力與無人車和障礙物之間的距離成反比。勢力場函數用于描述運行過程中目標點和障礙物對無人車產生的影響,需要考慮無人車向目標點移動的效率問題來構建專門的函數衡量勢場的大小。
在構建的虛擬人工勢場中,無人車受到的力是障礙物的斥力和目標點的引力的合力,該合力為矢量,合力的方向決定了無人車的行駛方向。障礙物的數量可能不止一個,因此無人車可能會受到多個斥力作用,在使用人工勢場算法做路徑規劃時,要將無人車受到的所有斥力和引力按矢量運算原則相加,在合力的作用下向目標點靠近,如圖6所示。

圖6 人工勢場中車輛受力示意Fig.6 Schematic diagram of vehicle force in artificial potential field
..傳統人工勢場算法井下應用存在的問題
人工勢場算法起初主要應用于機器人局部路徑規劃,隨著無人駕駛技術的發展才逐漸應用于地面車輛的路徑規劃中。機器人在使用人工勢場法進行路徑規劃時很少考慮道路的約束,但是無人車的運動狀態是時變的,障礙物數量、形狀和位置也具有不可預知性,導致無人車在構建的虛擬勢場中會出現局部最優解和目標不可達問題。當無人車在某個引力與斥力大小相等,方向相反的位置時,無人車受力為0,陷入局部最優解。當目標點與障礙物之間的距離較近時,斥力非常大,引力相對較小,導致無人車出現目標不可達。
在地面無人駕駛車輛的路徑規劃過程中,經典的做法是建立車道線勢場,此前也有研究人員將人工勢場算法用于煤礦機器人的路徑規劃,但是沒有考慮巷道的約束,故難以直接用于無軌膠輪車在井下巷道內的無人駕駛。
針對傳統人工勢場算法存在的局部最優解和目標不可達問題,筆者將從2個方面進行改進,并建立移動障礙物相對速度斥力勢場。
..斥力勢場修正因子
為了解決傳統人工勢場算法目標不可達問題,筆者針對巷道壁和障礙物的斥力分別進行修正。根據《煤礦安全規程》相關規定,無軌膠輪車與巷道壁之間的最小距離應≥0.3 m,人行側應保留至少0.8 m,因此將距離巷道壁0.8 m以內的區域設置為高危區域,其余位置為低危區域。根據不同危險程度,建立分段函數來表示巷道空間約束勢場,在離巷道壁距離小于0.8 m的區域使用變化較快的指數函數建立巷道空間約束勢場,在離巷道壁距離大于0.8 m的區域低危險區域使用三角函數來建立巷道空間約束勢場,建立巷道空間約束勢場函數為

(4)
式中,為高危區域斥力勢場強度系數;為低危區域斥力勢場強度系數;為巷道寬度;為無軌膠輪車幾何中心距巷道壁距離;,,為常量系數,由巷道寬度決定。
取=10,=20,=8,=1,=5/22,=9/11,根據式(4)建立的巷道空間約束勢場圖,如圖7所示。

圖7 巷道空間約束勢場Fig.7 Roadway space constrained potential field
由式(4)和圖7可知,在靠近巷道壁0.8 m內(高危區域)斥力勢場較大,且變化趨勢很快,靠近巷道中間位置的區域斥力勢場較小,變化趨勢也相對緩和,在巷道正中間巷道空間約束勢場強度為0。
引入斥力勢場修正因子對障礙物斥力勢場進行修正,修正后的斥力勢場函數為

(5)
式中,為斥力勢場強度(正比例增益因子);為障礙物所在位置(,);為目標點所在位置(,);為斥力勢場的最大作用距離,為常數;-為無人車與障礙物之間的距離;-為無人車與目標點之間的距離;為修正因子系數,>0。
由式(5)可知,無人車到達目標地點時,=,無人車不受斥力勢場影響,因此引入修正因子可使無人車到達終點時處于0勢能點。
與原斥力勢場相比,引入修正因子后的斥力勢場隨著無人車和目標點之間距離的減小呈衰減趨勢,取值不同,衰減趨勢也不同。將起點設置為(0,0)目標點坐標設置為(1,1),可得勢場衰減趨勢如圖8所示,越大,斥力勢場衰減越快,同時,如果取值過大,斥力勢場衰減過于迅速,可能導致無人車避障失敗,因此的取值應當兼顧衰減趨勢和避障效果。

圖8 不同修正因子下的斥力勢場衰減趨勢Fig.8 Attenuation trend of repulsion potential field under different correction factors
當≠時,修正后的障礙物斥力函數為

(6)

(7)

(8)
式中,與為的2個分力,這2個分力指向不同方向,的方向為障礙物到無人車,的方向與相反。
修正因子系數不但影響斥力勢場衰減趨勢,還影響無人車受力情況,具體情況為:
(1) 0<<1時

(9)

(10)
無人車接近目標位置時,→0,→∞,無人車在和的合力作用下駛向目標位置。
(2)=1時

(11)

(12)
無人車接近目標位置時,趨近于0,趨近于一個常量,無人車在和的合力作用下駛向目標位置。
(3)>1時

(13)

(14)
無人車接近目標位置時,趨近于0,也趨近于0,無人車在的作用下駛向目標位置。
取=1,斥力系數設置為100,引力系數設置為10,起點設置為(0,0),終點設置為(80,80),改進后的人工勢場算法仿真實例如圖9所示。由圖9可知,改進后的人工勢場算法可解決目標不可達問題。

圖9 解決目標不可達仿真實例Fig.9 Simulation example of solving target unreachable
..出逃力引入
對斥力函數進行修正后,無人車的目標不可達問題得到解決,但仍無法解決局部極小值問題。為此,筆者引入了出逃力。在無人車陷入局部極小點后,判斷是否到達目標點,如若沒有,由出逃力幫助無人車逃出局部極小值點,出逃力的大小隨機賦值,但其方向需與引力方向或斥力方向垂直。然而,巷道比較特殊,如若在單車道巷道中陷入局部極小值點,代表前方有障礙物不可通行,如圖10所示,此種情況下不用引入出逃力,應立即停車,引入出逃力后程序運行流程如圖11所示。

圖10 單車道巷道內陷入局部極小值示意Fig.10 Schematic diagram of falling into local minimum in single lane roadway

圖11 引入出逃力后路徑規劃流程Fig.11 Path planning process after introducing escape force
斥力系數設置為100,引力系數設置為10,起點設置為(0,0),終點設置為(90,90),出逃力以隨機數的方式給出,仿真實例如圖12所示,在陷入局部極小值后,出逃力將無人車帶離局部極小值點,繼續向前行駛,到達目標點。

圖12 解決局部極小值仿真實例Fig.12 Solve local minimum simulation example
..相對速度勢場建立
無軌膠輪車有時也運行在其他環境,這時障礙物為動態障礙物。傳統人工勢場法在引入斥力衰減系數和出逃力后,可解決目標不可達和局部最優。為了提升人工勢場算法在動態避障中的可靠性,筆者進一步引入無人車與障礙物的相對速度勢場函數:

(15)
無軌膠輪車與動態障礙物相對速度勢場斥力為

(16)
式中,為無軌膠輪車當前速度矢量;為動態障礙物當前速度矢量;為相對速度勢場系數。
無軌膠輪車在巷道內的局部路徑規劃場景需求主要有:單車道遇對向來車、雙車道遇對向來車以及交叉巷道中2個及以上方向有來車時的會車避讓,下面將對上述3種場景進行局部路徑規劃仿真試驗。
..單車道會車路徑規劃仿真試驗
單車道會車時避讓過程如圖13所示,假定A車為運人車輛,B車為運料車輛,根據井下行車規則:A車應減速行駛,B車應進入躲避硐室,待A車通過會車區域后,B車再駛出躲避硐室繼續向前行駛。仿真結果如圖14所示,分析可知,在單車道會車場景下當前車輛B車能規劃出合理安全的行車路徑。

圖13 單車道巷道會車過程示意Fig.13 Schematic diagram of the meeting process of single-lane roadway

圖14 單車道巷道會車路徑規劃仿真Fig.14 Single-lane roadway meeting path planning simulation
..雙車道巷道會車路徑規劃仿真
雙車道會車時避讓過程如圖15所示,假定2輛車在水平巷運行,A車為運人車輛,B車為運料車輛,根據井下行車規則:A車應減速行駛通過會車區域,B車應靠邊停車,待A車通過會車區域后B車再繼續向前行駛。仿真結果如圖16所示,分析可知,在雙車道巷道會車場景下當前車輛A車能規劃出合理安全的行車路徑。

圖15 雙車道巷道會車過程示意Fig.15 Schematic diagram of the two-lane roadway meeting process

圖16 雙車道巷道會車路徑規劃仿真Fig.16 Two-lane roadway meeting path planning simulation
..交叉巷道會車仿真

圖17 交叉巷道會車過程示意Fig.17 Schematic diagram of the crossing roadway meeting process
交叉巷道會車流程復雜,當前《煤礦安全規程》和各大煤礦都沒有針對交叉巷道制定統一的會車規則,筆者參考單、雙車道巷道會車策略和交叉巷道特征,規定交叉巷道發生會車時,只允許一輛車通行,制定如下會車策略:首先根據岔道車輛先行原則進行會車,即只要岔道中有來車,則其他方向車輛進入躲避硐室(單車道巷道)或靠邊停車(雙車道巷道),等待岔道車輛先行通過會車區域,待岔道車輛通過會車區域后,如只剩一輛車即按原規劃路徑繼續行駛即可;若岔道車輛通過會車區域后還剩2輛無軌膠輪車,則判斷兩車后續路徑是否相同,若剩余兩車后續路徑相同,意味著兩車后續都將進入岔道,此時遵循就近原則進行會車,即離岔道口近的車輛先行;若路徑不相同但其中一輛車后續進入岔道,則根據“岔道先行”原則進行會車,待進入岔道的車輛駛離會車區域后,另一輛車才按原路徑繼續行駛;若后續兩車相向行駛,則表示剩余兩車均不進入岔道,此時根據直巷類型分別根據單車道巷道會車策略或雙車道巷道會車策略進行會車。假設為3個巷道均有來車,如圖17所示,當前無軌膠輪車為A車,將另外兩輛車視為靜態障礙物,仿真分析A車的路徑規劃問題。A車路徑規劃問題又可分為2種場景,場景1為出叉巷后左轉,如圖18(a) 所示,場景2為出叉巷后右轉,如圖18(b)所示。交叉巷道路徑規劃仿真結果如圖18所示,分析可知,當前車輛A在出交叉巷后,無論是左轉還是右轉,都能在有車輛的情況下規劃出安全可通行的路徑。

圖18 交叉巷道會車路徑規劃仿真Fig.18 Path planning simulation of crossing lanes
根據《煤礦安全規程》和國家安標中心相關政策,若要在井下開展無軌膠輪車無人駕駛試驗,需要對無人駕駛系統所有電氣設備進行防爆處理并取得國家安標證書,試驗成本高且周期很長。因此,筆者采取模擬試驗的方法對前文建立的改進算法進行驗證,按8∶1縮比搭建交叉巷道模型用做試驗場地,在搭建好的交叉巷道模型中使用基于ROS的微型無人車開展路徑規劃試驗。
煤礦井下交叉巷道處多為單車道巷道與雙車道巷道相交叉,因此建立一個交叉巷道模型即可模擬交叉巷道會車和雙車道巷道會車等多種行車場景??紤]實驗室空間布置和試驗成本問題,按大約8∶1的比例縮放搭建交叉巷道模型。雙車道巷道長度設置為4 m,寬度設置為0.6 m,單車道巷道長度設置為2 m,寬度設置為0.4 m,巷道高度設置為0.6 m,交叉巷道模型設計如圖19所示。

圖19 巷道模型設計Fig.19 Roadway model design
巷道模型搭建完畢后,使用激光雷達掃描巷道模型,基于SLAM構建巷道模型地圖,這是微型無人車進行路徑規劃的前提,基于SLAM構建的巷道模型地圖如圖20所示。

圖20 巷道模型地圖Fig.20 Roadway model map

圖21 基于ROS的微型無人車Fig.21 ROS-based mini driverless vehicle
本文所使用的微型無人車如圖21所示,微型無人車主要包括感知系統、決策系統、執行系統和通信系統等。感知系統中激光雷達將感知到的環境信息通過USB接口傳送到決策系統,九軸陀螺儀感知到的加速度等信息首先發送給底層控制板,驅動板處理后通過串口發送給決策系統,主控制器處理環境、速度等信息后,根據處理結果進行下一步決策,將決策結果以指令的方式通過串口發送給底層控制板,控制板最后將執行指令發送給電機驅動器和舵機驅動器,驅動電機和舵機完成相應動作。上位機通過局域網和無人車決策系統連接,對無人車實施控制。
筆者搭建微型無人車的決策系統使用英偉達Jetson Nano B01開發板作為主控制器,Jetson Nano B01開發板體積小、功耗低、算力強大,可支持多個高精度傳感器同時使用,廣泛應用于圖像處理、人工智能領域,其主要性能參數見表2。
由于局部路徑規劃是在全局路徑規劃的基礎上進行的,所以首先對改進A*算法進行全局路徑規劃試驗,而后在改進A*算法規劃的路徑上進行改進人工勢場算法的局部路徑規劃試驗。

表2 Jetson Nano B01開發板參數
..全局路徑規劃模擬試驗
將路徑起點設置于巷道模型雙車道巷道入口處,終點設置在巷道模型單車道巷道出口處,如圖22所示,分別使用傳統A*算法和本文改進后A*算法進行路徑規劃,路徑規劃結果如圖23所示。

圖22 A*算法路徑規劃試驗起點終點設置Fig.22 Setting of starting point and ending point of A* path planning test

圖23 A*算法改進前后路徑規劃試驗結果Fig.23 Experimental results of path planning before and after A* algorithm improvement
改進前后A*算法規劃路徑對比結果如圖24所示,對比分析2條路徑可知,在雙車道直巷內軸與軸偏差較小,軸偏差控制在±0.02 m之內,最大偏差出現在模型試驗車轉彎時,為-0.031 2 m。該試驗證明,改進前A*算法規劃的路徑拐點多,改進后A*算法規劃的更加平滑,路徑更加合理,更有利于微型無人車的跟蹤。

圖24 改進前后A*算法規劃的路徑對比Fig.24 Comparison of path planning of A* algorithm before and after improvement
..局部路徑規劃模擬試驗
在模擬巷道地圖已知的情況下,指定起點與終點,可使用A*算法規劃出一條由起點至終點的全局路徑,然而當規劃好的全局路徑被未知障礙物干涉或者遇到對向來車時,無人車將無法繼續按照規劃好的全局路徑向前行駛,這時就需要使用人工勢場算法進行局部路徑規劃,待避障或會車結束后再回到全局路徑繼續向前行駛,A*-人工勢場算法聯合路徑規劃具體流程如圖25所示。

圖25 A*-人工勢場算法聯合路徑規劃流程Fig.25 A*-APF combined path planning flowchart
首先,根據建立的地圖以及指定的起點和終點規劃全局路徑,微型無人車首先按照全局路徑行駛,行駛途中遇未知障礙物時使用人工勢場算法進行局部路徑規劃,待避障結束后,再回到全局路徑,重復上述過程直到微型無人車到達終點。
本組試驗使用微型無人車和交叉巷道模型模擬無人駕駛無軌膠輪車巷道內會車和遇未知障礙物時的避障,起點與終點設置如圖26所示,在無障礙物情況下首先使用改進A*算法規劃出全局路徑,規劃的全局路徑如圖27所示。然后在長直雙車道巷道中設置2個障礙物,障礙物1用于模擬對向來車,假定微型無人車為讓車車輛且對向來車車體較大,需借助躲避硐室進行會車;障礙物2為未知障礙物。

圖26 人工勢場法試驗起點與終點設置Fig.26 Setting of test starting point and end point of APF
有障礙物的情況下微型無人車規劃的實際路徑如圖28所示,無障礙物情況下規劃的全局路徑與有障礙物情況下的實際路徑對比如圖29所示。

圖27 無障礙物情況下改進A*算法規劃的全局路徑Fig.27 Global path planning by improved A* algorithm without obstacles

圖28 微型無人車避障過程Fig.28 Mini driverless vehicle obstacle avoidance process

圖29 全局路徑與實際路徑對比Fig.29 Comparison between global path and actual path
微型無人車首先按照規劃好的全局路徑行駛,行駛一段距離后遇到對向來車需進行避讓,此時路徑發生變化,待繞過對向來車后回到全局路徑繼續向前行駛,在遇到未知障礙物時為了安全避開障礙物路徑發生了微小的偏移,隨后回到全局路徑并按全局路徑行駛至終點。對比分析兩條路徑可知,在無障礙物的模擬巷道區域內軸與軸偏差較小,軸偏差控制在±0.01 m之間,最大偏差出現在會車時,為0.035 3 m,誤差較無障礙物區域偏大,這是由于避障時車輛需要轉向所致,避讓障礙物時軸偏差在±0.02 m之間。試驗結果證明了本文所用A*-人工勢場算法規劃的全局路徑和局部路徑是合理的。
(1)通過指數函數優化可減少傳統A*算法的計算量,提高無人駕駛無軌膠輪車的尋路效率;三次樣條插值處理使得處理后的路徑更加平滑,更適用井下巷道環境;改進A*算法的路徑搜索時間縮短為傳統A*算法的20%左右,且更符合井下無軌膠輪車的運動學約束。
(2建立相對速度勢場,引入斥力勢場修正因子和出逃力對傳統人工勢場算法進行改進,可解決其局部最優解和目標不可達問題;改進的人工勢場算法在不同工況下均能規劃出可供無人駕駛無軌膠輪車會車或避障行駛的合理路徑。
(3)通過開展無人駕駛路徑規劃模擬試驗,發現改進后的A*算法規劃的全局路徑誤差在±0.02 m,改進人工勢場算法能夠在有障礙物的工況下優化A*算法規劃出來的全局路徑,控制小車安全行駛避開障礙物,表明本文建立的改進A*-人工勢場聯合算法可滿足無軌膠輪車在煤礦井下巷道內的路徑規劃要求。