国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

高密度場景下基于改進A* 算法的無人機路徑規(guī)劃

2024-09-14 00:00:00趙烈海李大鵬
無線電通信技術(shù) 2024年4期
關(guān)鍵詞:路徑規(guī)劃算法

摘 要:針對無人機在高密度障礙物的城市環(huán)境飛行中路徑規(guī)劃實時性難以滿足的問題,在A* 算法基礎(chǔ)上結(jié)合跳點搜索(Jump Point Search,JPS)策略,提出一種Jump A*(JA* )算法。將A* 算法進行三維擴展,并提出了一種三維對角距離精確表示了實際路徑代價,縮短了搜索時間。在二維JPS 策略的基礎(chǔ)上拓展得到了三維JPS 策略,代替了A* 算法中的幾何鄰居擴展,大大減少了擴展結(jié)點數(shù)。對障礙物密度0. 1 ~ 0. 4 的復(fù)雜三維柵格地圖進行了路徑規(guī)劃仿真。仿真結(jié)果表明,JA* 算法相較于A*算法,在高密度多障礙物的近地城市環(huán)境下,路徑長度幾乎不變,評估節(jié)點數(shù)大幅度減小,搜索速度具有顯著提升。

關(guān)鍵詞:路徑規(guī)劃;跳點搜索;A*算法;三維柵格地圖;高密度障礙物

中圖分類號:TN919. 23 文獻標志碼:A 開放科學(xué)(資源服務(wù))標識碼(OSID):

文章編號:1003-3114(2024)04-0713-07

0 引言

無人機作為先進的飛行器,具有體積小、成本低等優(yōu)勢,已廣泛用于執(zhí)行識別、探測和監(jiān)控等任務(wù)。然而,要在復(fù)雜環(huán)境中成功完成任務(wù),需要解決路徑規(guī)劃問題。

根據(jù)對先驗環(huán)境的已知程度,路徑規(guī)劃可以分為全局與局部路徑規(guī)劃[1-3]。局部路徑規(guī)劃通常采用人工勢場法[4]和動態(tài)窗口法[5]等。本文主要研究了全局路徑規(guī)劃問題,目前常用算法有A* 算法[6]、Dijkstra 算法[7]、RRT 算法[8]、蟻群算法[9]等。而根據(jù)使用方法和地圖的不同,可分為基于柵格地圖的路徑規(guī)劃算法、基于采樣的路徑規(guī)劃算法和智能仿真算法等。

在基于柵格地圖的路徑規(guī)劃算法中,A* 算法被廣泛應(yīng)用。然而,它仍存在一些缺點,例如:由于大量操作優(yōu)先級隊列導(dǎo)致運行速度緩慢,內(nèi)存占用大,以及在對稱路徑的環(huán)境中會耗費更多時間。Harabor等[10]于2011 年提出了跳點搜索(Jump Point Search,JPS)算法,針對A*算法的冗余節(jié)點進行了剪枝,減小了不必要的搜索,實現(xiàn)了節(jié)點間的長距離跳躍,大幅度提升了運行速度。此外,文獻[11]提出一種六邊形柵格JPS 策略,進一步提升了搜索速度。

在啟發(fā)式函數(shù)方面,文獻[12]提出了一種等同真實距離的啟發(fā)式函數(shù),但缺少三維場景的擴展。文獻[13]提出了一種改進A*算法應(yīng)用于二維移動機器人,解決了A算法存在大量冗余節(jié)點的問題,但缺少對應(yīng)的三維JPS 策略。

在軌跡平滑方面,文獻[14]使用Theta*算法在復(fù)雜三維場景中實現(xiàn)了路徑規(guī)劃,獲得了更加平滑的路徑。文獻[15]對JPS 搜索策略進行了優(yōu)化,同時引入了3 次B 樣條插值進行路徑平滑,相較于Theta*算法將規(guī)劃與軌跡平滑進行了步驟分離。

在JPS 搜索策略優(yōu)化方面,文獻[16]用“對角優(yōu)先”方式改進了JPS 搜索策略,使對Openlist 的操作大大減小。文獻[17]采用向量叉積與尺度平衡因子相結(jié)合的方法優(yōu)化傳統(tǒng)JPS 算法的啟發(fā)函數(shù)。

在對Openlist 數(shù)據(jù)結(jié)構(gòu)優(yōu)化上,文獻[18]使用最小堆的數(shù)據(jù)結(jié)構(gòu)對Openlist 進行了改進,使其取最小值的速度大幅度提升。

在實際場景中,文獻[19]將改進A* 算法部署在了農(nóng)業(yè)無人機上,大幅提升了路徑規(guī)劃的速度。文獻[20]利用改進RRT 算法實現(xiàn)了無人機電力桿塔巡檢的路徑規(guī)劃。

針對傳統(tǒng)A*算法在障礙物較多的三維場景中搜索效率較低的問題,本文提出一種Jump A*(JA*)算法,對A* 算法的啟發(fā)式函數(shù)進行了改進,使其等于實際的最佳路徑代價。在二維JPS 策略的基礎(chǔ)上拓展得到了三維JPS 策略,代替了A*算法中的幾何鄰居擴展,大大減小了擴展結(jié)點數(shù)。解決了在路徑對稱時A* 算法造成的冗余問題,提升了算法的運行效率,滿足了無人機路徑規(guī)劃對實時性的要求。

1 問題描述

1. 1 環(huán)境模型建立

在無人機路徑規(guī)劃中,需要建立一個坐標系統(tǒng),通過傳感器信息建立一個能表示環(huán)境的地圖模型。本文使用三維柵格地圖來構(gòu)建環(huán)境地圖模型。為構(gòu)建精確的柵格地圖,將雙目深度相機獲取的三維點云地圖轉(zhuǎn)換為分辨率為0. 2 的三維柵格地圖,將無人機視為一個方格,便于在占用柵格地圖中進行計算。無人機的位置使用柵格地圖中的索引坐標表示,空白地區(qū)為無障礙物地區(qū),柵格為空閑狀態(tài),有灰白色占用柵格的地區(qū)為障礙物地區(qū),柵格為占用狀態(tài),柵格地圖如圖1 所示。

無人機飛行過程中會存在不同的飛行方向,在不考慮障礙物以及地圖邊緣的情況下,可以向三維柵格中的26 個方向移動,如圖2 所示,不同的方向存在不一樣的路徑長度。

1. 2 A*算法及存在的問題

A*算法是一種啟發(fā)式的搜索算法,在Dijkstra算法的基礎(chǔ)上融合了貪心算法的思想,不同于Dijkstra 算法的隨機各方向擴張,A* 算法通過啟發(fā)式的搜索策略,可以更快地得到最優(yōu)路徑。在二維柵格中其搜索方向為4 鄰域或8 鄰域,如圖3 所示。

三維柵格地圖中其擴展方向為26 鄰域或6 鄰域,代價函數(shù)表達式為:

f(n)= g(n)+h(n), (1)

式中:f(n)為由起始節(jié)點到目標節(jié)點的總代價函數(shù),g(n)為由起始節(jié)點到當前節(jié)點n 所產(chǎn)生的實際代價函數(shù),h(n)為當前節(jié)點到目標節(jié)點的預(yù)估代價函數(shù)。

式中:xs、ys、zs 為起始節(jié)點的坐標,xn、yn、zn 為當前節(jié)點的坐標,g(n)為三維空間中起始點s 與當前節(jié)點n 的真實距離。預(yù)估代價函數(shù)h(n)具有多種表達形式,一般有歐氏距離、曼哈頓距離:

式中:預(yù)估代價函數(shù)h(n)的取值決定了A* 算法搜索效率,當h(n)取值為0 時將退化為Dijkstra 算法,而當h(n)遠大于實際路徑損耗時將退化為基于貪心算法思想的廣度優(yōu)先搜索。

傳統(tǒng)A*算法在整個全局路徑規(guī)劃過程中占用了大量內(nèi)存,在搜索過程中,需要維護一個隊列,隊列中可能會存儲大量節(jié)點信息,如果搜索的空間較大,內(nèi)存消耗也會較高。

2 JA*算法設(shè)計

為了解決上述問題,本文針對評估函數(shù)進行了改進,并且融合了三維JPS 策略對A* 算法進行改進。

2. 1 改進啟發(fā)式函數(shù)計算方式

恰當?shù)膯l(fā)式函數(shù)能提高A*算法的搜索效率,傳統(tǒng)A*算法中通常使用歐氏距離與曼哈頓距離作為啟發(fā)式搜索函數(shù),但在柵格地圖中,歐氏距離會小于實際的路徑距離,會導(dǎo)致拓展的節(jié)點數(shù)增加。

因此本文采用三維空間中的對角線距離作為啟發(fā)式搜索函數(shù),對角線距離是指網(wǎng)格地圖中用于計算兩個節(jié)點之間的估價函數(shù),常用于處理斜向移動的情況。在實際最優(yōu)路徑中,沿著45°角方向擴展必然路徑長度小于90°角方向擴展,因此二維空間下的對角線啟發(fā)函數(shù)為:

式中:xg 與yg 為目標點橫縱坐標,xn 與yn 為當前點的橫縱坐標。

二維平面下的啟發(fā)式函數(shù)如圖4 所示,綠色為二維曼哈頓距離,藍色為二維歐氏距離,黑色為二維對角線距離,顯然歐氏距離小于實際最優(yōu)距離,曼哈頓距離大于實際最優(yōu)距離,而對角線距離與實際最優(yōu)距離相等,因此通過對角線距離計算得到的代價值增強了算法啟發(fā)性的同時也能讓算法得到最優(yōu)路徑。

在二維對角線啟發(fā)式函數(shù)的基礎(chǔ)上,本文對其進行拓展得到了三維對角線啟發(fā)式函數(shù),如圖5 所示,圖中分別顯示了點(0,0,-1)到(1,1,1)的距離。紅色為三維歐氏距離,藍色為三維對角線,綠色為距離三維曼哈頓距離,代價值依次為4、根號下6 、根號下3 +1。顯然,對角線距離更符合真實無人機運動的鄰域擴展,在26 鄰域的假設(shè)下,對角線距離與真實代價相等。因此,對角線距離更接近無人機真實運動的路徑代價。

dx= |xg -xn |, (6)

dy= |yg -yn |, (7)

dz= |zg -zn |, (8)

式中:dz、dy、dz 為目標點坐標與當前點坐標的絕對距離,需要對dx、dy、dz 進行大小排序,假設(shè)從大到小依次為Val1、Val2、Val3。

式中:h(n)為26 鄰域下實際的路徑代價。在傳統(tǒng)的啟發(fā)式函數(shù)中,歐氏距離小于實際的路徑代價,因此能獲取更準確的最優(yōu)路徑但同時耗費的時間也會增加;而曼哈頓距離則大于實際的路徑代價,因此其耗時較少但同時不一定會得到最優(yōu)路徑。相對而言對角線距離在速度和最優(yōu)性方面達到了平衡。

2. 2 三維JPS 策略設(shè)計

JPS 算法是在A* 算法的基礎(chǔ)上提出的一種減少鄰域拓展過程中產(chǎn)生大量冗余中繼節(jié)點的優(yōu)化策略。本文拓展了二維JPS 搜索策略,得到了三維空間下的修剪規(guī)則與跳躍規(guī)則,并與三維空間下的A*算法結(jié)合。修剪的基本準則是當拓展至當前節(jié)點n 時,若x 的鄰居節(jié)點可以從父節(jié)點不經(jīng)過x 到達且代價更低時,則不考慮擴展該節(jié)點。不同于A*算法需要將幾何意義上的所有鄰居節(jié)點加入OpenList 中進行評估,JPS 算法在鄰居節(jié)點中進行篩選,選取符合修剪規(guī)則的節(jié)點。符合修剪規(guī)則的節(jié)點,將其稱為自然鄰居節(jié)點,而障礙物不能被修剪的節(jié)點稱為強制鄰居節(jié)點。因此修剪規(guī)則根據(jù)當前節(jié)點的鄰居節(jié)點是否存在障礙物,分兩類情況討論。

在三維場景下,無障礙物的26 鄰域擴展可分為3 種情況:① 平移(代價為1);② 對角線移動(代價為槡2 );③ 斜上對角線移動(代價為槡3 )。將三維空間中的27 個節(jié)點分為3 層,每層9 個節(jié)點。紅色節(jié)點表示當前拓展到的節(jié)點,黃色節(jié)點為其父節(jié)點,綠色節(jié)點為當前節(jié)點下一步考慮的擴展節(jié)點,白色節(jié)點為下一步拓展中不再考慮的劣性節(jié)點,黑色節(jié)點為障礙物。

2. 2. 1 情況1:鄰居節(jié)點無障礙物

當父節(jié)點到當前節(jié)點的移動為平行移動時,如圖6 所示。

當父節(jié)點到當前節(jié)點的移動為對角線移動時,如圖7 所示。

當父節(jié)點到當前節(jié)點的移動為斜對角線移動時,如圖8 所示。

2. 2. 2 情況2:鄰居節(jié)點存在障礙物

當父節(jié)點到當前節(jié)點的移動為平行移動時,考慮中間層與頂層存在障礙物,如圖9 所示。

當父節(jié)點到當前節(jié)點的移動為對角線移動時,考慮中間層與頂層存在障礙物,底層存在障礙物時不會產(chǎn)生強制鄰居節(jié)點,如圖10 所示。

當父節(jié)點到當前節(jié)點的移動為斜對角線移動時,考慮底層存在障礙物,中間層與頂層存在礙物時不會產(chǎn)生強制鄰居節(jié)點,如圖11 所示。

2. 3 算法流程

改進A*算法流程如算法1 所示。

3 算法仿真與分數(shù)據(jù)分析

為了驗證JA*算法的有效性,本文在三維環(huán)境中對Dijkstra 算法、A* 算法和JA* 算法進行了仿真分析。使用Ubuntu 18. 04 操作系統(tǒng)和ROS Melodic 作為設(shè)備軟件配置,并搭配AMD Ryzen 7 5800H 處理器。為了便于部署于真實無人機且用于可視化,本文使用了ros+rviz 作為仿真平臺。在仿真分析中,針對使用不同啟發(fā)式函數(shù)的A*算法與相同地圖大小和不同障礙物密度的環(huán)境對算法進行了比較。

3. 1 不同啟發(fā)式函數(shù)對比

如表1 所示,在障礙物與柵格比例為0. 4 的不同大小地圖中進行A* 算法路徑規(guī)劃時,對角線距離、歐式距離與曼哈頓距離的對比。

以曼哈頓函數(shù)作為啟發(fā)式函數(shù)時,其計算接近于貪心算法,因此其評估節(jié)點數(shù)最少,搜索效率最高,但同時有概率獲取到非最優(yōu)路徑。歐式距離由于其計算復(fù)雜,導(dǎo)致效率較低。而對角線距離在具備遠高于曼哈頓距離的搜索速度的同時,也能兼顧最優(yōu)的搜索路徑長度。

圖12 和圖13 對比了3 種啟發(fā)式函數(shù)下的算法在不同大小地圖上的規(guī)劃速度,可以看出,在規(guī)劃時間上對角線距離與曼哈頓距離接近,均遠快于歐氏距離。

3. 2 不同算法對比實驗

圖14 為3 種算法在不同障礙物密度的10 m×10 m×5 m 隨機柵格地圖中進行10 次仿真實驗,設(shè)定起始點為坐標(0,0,1)m,設(shè)置地圖內(nèi)四角為固定終點。紅色柵格為JA*算法與A*算法有部分重合,藍色柵格為Dijkstra 算法,綠色柵格為A*算法。

在障礙物密度為0. 2 的10 m×10 m×5 m 地圖中進行仿真對比,如圖15 所示,規(guī)劃數(shù)據(jù)如圖16 與表2 所示。

對比A*算法、Dijkstra 算法與JA*算法,JA*算法在大多數(shù)情況下具備最快的運行速度,同時大大減少了拓展節(jié)點與內(nèi)存的占用。在障礙物密度為0.2 時,JA*算法搜索速度較A*算法提升了287. 60%;障礙物密度為0. 4 時,搜索速度提升了578. 23% 。在評估節(jié)點數(shù)量的對比上,JA*算法的評估節(jié)點數(shù)大大減小。仿真結(jié)果表明,在障礙物密度較大的情況下評估節(jié)點數(shù)量與搜索速度方面,JA* 算法遠優(yōu)于傳統(tǒng)A*算法。在障礙物密度較小時,JA*算法搜索速度會略低于A*算法。

4 結(jié)束語

本文針對在密集障礙物環(huán)境無人機進行路徑規(guī)劃中A* 算法速度慢、冗余節(jié)點多的問題,提出了一種JA*搜索算法,對A*算法的啟發(fā)式函數(shù)進行了改進,融合了JPS 算法的思想并進行了三維拓展。通過對不同大小以及不同障礙物密度的地圖進行了仿真分析與對比,證明了JA* 算法的有效性。仿真結(jié)果表明,在障礙物密度較大時,JA* 算法較于A算法在不影響最優(yōu)路徑的情況下能大幅度提升搜索速度,大大減少了對隊列的操作次數(shù)。

本文算法也尚且存在不足之處,例如雖然JA*算法在復(fù)雜場景的搜索速度上具有巨大提升,但路徑不夠平滑??梢酝ㄟ^進一步引入平滑函數(shù)來減小無人機加減速時的耗能。

參考文獻

[1] 霍鳳財,遲金,黃梓健,等. 移動機器人路徑規(guī)劃算法綜述[J]. 吉林大學(xué)學(xué)報(信息科學(xué)版),2018,36(6):639-647.

[2] 朱磊,樊繼壯,趙杰,等. 基于柵格法的礦難搜索機器人全局路徑規(guī)劃與局部避障[J]. 中南大學(xué)學(xué)報(自然科學(xué)版),2011,42(11):3421-3428.

[3] 王春穎,劉平,秦洪政. 移動機器人的智能路徑規(guī)劃算法綜述[J]. 傳感器與微系統(tǒng),2018,37(8):5-8.

[4] 張建英,趙志萍,劉暾. 基于人工勢場法的機器人路徑規(guī)劃[J]. 哈爾濱工業(yè)大學(xué)學(xué)報,2006,38 (8 ):1306-1309.

[5] FOX D,BURGARD W,THRUN S. The Dynamic Window Approach to Collision Avoidance [J]. IEEE Robotics &Automation Magazine,1997,4(1):23-33.

[6] EVERSON L R,SAPATNEKAR S S,KIM C H. A Timebased Intramemory Computing Graph Processor Featuring A Wavefront Expansion and 2D Gradient Control[J].IEEE Journal of Solidstate Circuits,2021,56 (7 ):2281-2290.

[7] PRIM R C. Shortest Connection Networks and Some Generalizations[J]. The Bell System Technical Journal,1957,36(6):1389-1401.

[8] DA SILVA C L,TONIDANDEL F. DVG+ A and RRT Pathplanners:A Comparison in a Highly Dynamic Environment[J]. Journal of Intelligent & Robotic Systems,2021,101:58.

[9] DORIGO M,GAMBARDELLA L M. Ant Colony System:A Cooperative Learning Approach to the Traveling Salesman Problem[J]. IEEE Transactions on Evolutionary Computation,1997,1(1):53-66.

[10]HARABOR D,GRASTIEN A. Online Graph Pruning for Pathfinding on Grid Maps[EB/ OL]. [2024-02-20]. https:∥cdn. aaai. org/ ojs/7994 /7994-13 -11522 -1 -2 -20201228. pdf.

[11]王文明,杜佳璐. 基于正六邊形柵格JPS 算法的智能體路徑規(guī)劃[J]. 系統(tǒng)工程與電子技術(shù),2021,43(12):3635-3642.

[12]張慶,劉旭,彭力,等. 融合JPS 和改進A* 算法的移動機器人路徑規(guī)劃[J]. 計算機科學(xué)與探索,2021,15(11):2233-2240.

[13]趙曉,王錚,黃程侃,等. 基于改進A* 算法的移動機器人路徑規(guī)劃[J]. 機器人,2018,40(6):903-910.

[14]林思偉,席萬強,李青云,等. 復(fù)雜環(huán)境下的無人機三維路徑規(guī)劃[J]. 電光與控制,2023,30(2):31-35.

[15]趙衛(wèi)東,唐顧杰,宋江一. 基于改進JPS 與三次B 樣條插值的路徑規(guī)劃算法[J]. 安徽工業(yè)大學(xué)學(xué)報(自然科學(xué)版),2022,39(2):189-195.

[16]宋曉茹,任怡悅. 面向移動機器人快速全局路徑規(guī)劃的改進跳點搜索算法[J]. 科學(xué)技術(shù)與工程,2020,20(29):11992-11999.

[17]胡士強,武美萍,施健,等. 融合向量叉積與跳點搜索策略的改進A 算法研究[J/ OL]. 機械科學(xué)與技術(shù),2023:1-10(2023-01-06)[2024-03-02]. https:∥doi.org/10. 13433 / j. cnki. 1003-8728. 20230017.

[18]謝春麗,高勝寒,孫學(xué)志. 融合改進A* 算法和貝塞爾曲線優(yōu)化的路徑規(guī)劃算法[J]. 重慶理工大學(xué)學(xué)報(自然科學(xué)),2022,36(7):177-187.

[19]田茹,曹茂永,馬鳳英,等. 基于改進A*算法的農(nóng)用無人機路徑規(guī)劃[J]. 現(xiàn)代電子技術(shù),2022,45(4):182-186.

[20]羅隆福,李冬,鐘杭. 基于改進RRT 的無人機電力桿塔巡檢路徑規(guī)劃[J]. 湖南大學(xué)學(xué)報(自然科學(xué)版),2018,45(10):80-86.

作者簡介:

趙烈海 男,(1999—),碩士研究生。主要研究方向:無人機避障與路徑規(guī)劃。

(*通信作者)李大鵬 男,(1982—),博士,教授,博士生導(dǎo)師。主要研究方向:無人機群體智能、分布式網(wǎng)絡(luò)技術(shù)、無人機集群控制。

猜你喜歡
路徑規(guī)劃算法
基于MapReduce的改進Eclat算法
Travellng thg World Full—time for Rree
進位加法的兩種算法
算法初步兩點追蹤
基于增強隨機搜索的OECI-ELM算法
公鐵聯(lián)程運輸和售票模式的研究和應(yīng)用
基于數(shù)學(xué)運算的機器魚比賽進攻策略
清掃機器人的新型田埂式路徑規(guī)劃方法
自適應(yīng)的智能搬運路徑規(guī)劃算法
科技視界(2016年26期)2016-12-17 15:53:57
基于B樣條曲線的無人車路徑規(guī)劃算法
乳山市| 光山县| 苗栗市| 咸宁市| 炎陵县| 海口市| 苏州市| 启东市| 嵩明县| 武乡县| 昭平县| 乌鲁木齐市| 防城港市| 宣城市| 东源县| 秦安县| 宣汉县| 玉树县| 木兰县| 巴彦县| 方正县| 南通市| 南汇区| 旌德县| 兴隆县| 新巴尔虎左旗| 虎林市| 海原县| 南江县| 贵州省| 城口县| 荆州市| 北川| 石狮市| 舟曲县| 中方县| 博乐市| 木兰县| 仪征市| 顺昌县| 日照市|