999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于改進A*算法的煤礦救援機器人路徑規(guī)劃

2023-01-02 13:27:18張偉民
煤田地質(zhì)與勘探 2022年12期

張偉民,張 月,張 輝

(1.中國地質(zhì)大學(xué)(武漢) 機械與電子信息學(xué)院,湖北 武漢 430074;2.武漢重型機床集團有限公司,湖北 武漢 430074)

煤礦救援機器人(簡稱救援機器人)是在礦井災(zāi)后救援活動中進行情報收集和判斷,根據(jù)災(zāi)害情況進行救助的一種機器人。它可以代替救援人員進入礦井實施環(huán)境監(jiān)測、人員搜索等任務(wù)。為了使煤礦救援機器人快速、順利地到達災(zāi)害現(xiàn)場并實施救援,規(guī)劃出一條安全、無碰撞的路徑非常重要[1]。

救援機器人的路徑規(guī)劃是指機器人按照某一種方法在分布有障礙物的地圖中搜索出一條從指定起始點到指定目標點的無碰撞最優(yōu)路徑[2]。救援機器人的路徑規(guī)劃包含全局路徑規(guī)劃以及在移動過程中應(yīng)對局部環(huán)境變化的局部路徑規(guī)劃。為快速地規(guī)劃出效果好的全局路徑,減少救援機器人的整體移動時間,需要采用一個合適的全局規(guī)劃算法。

目前常用的全局規(guī)劃算法有Dijkstra 算法[3]、A*算法[4]、粒子群算法(Particle Swarm Optimizations,PSO)[5]、遺傳算法[6]等。其中A*算法是在靜態(tài)路網(wǎng)中求解最短路最有效的搜索方法,目前使用較為普遍。但傳統(tǒng)A*算法在柵格環(huán)境地圖下最多允許機器人向周圍8 個柵格(稱為“鄰接點”)移動,導(dǎo)致傳統(tǒng)A*算法規(guī)劃的路徑對于可沿任意方向運動的救援機器人來說存在路徑冗余點過多、累計轉(zhuǎn)折角度大等問題,并非是最優(yōu)路徑[7-8]。

目前已有相關(guān)文獻針對傳統(tǒng)A*算法的上述問題進行了改進。陶德俊等[9]提出一種基于改進A*算法的煤礦救援機器人路徑平滑算法,該算法利用Douglas-Peucker 算法剔除路徑中的冗余節(jié)點,并對提取出的關(guān)鍵節(jié)點進行平滑處理;雖然路徑平滑問題有所改善,但還有剩余的路徑冗余點。劉夢杰等[10]提出了一種基于雙向A*算法的礦井水災(zāi)逃生路徑規(guī)劃方法,該算法可獲得節(jié)點更少、轉(zhuǎn)折角度更小的逃生路徑,但路徑仍有較為明顯的平滑問題。郭江等[11]提出了一種將Bezier 曲線與A*算法融合的改進算法,該算法對路徑具有良好的平滑效果,但若改變路徑節(jié)點位置,則會影響整條路徑的平滑效果。單偉等[12]提出一種使用極多項式曲線進行路徑平滑的改進A*算法,這有利于實現(xiàn)機器人的路徑跟蹤,但未對冗余路徑點進行去除。趙曉等[13]提出一種結(jié)合跳點搜索法的改進A*算法,該算法通過減少對某些節(jié)點的搜索可提高搜索效率、降低路徑轉(zhuǎn)折角度,但是由于缺少對某些必要節(jié)點的計算導(dǎo)致路徑代價有所增加。

上述文獻對傳統(tǒng)A*算法進行了部分改進,但是最終路徑仍然存在較為明顯的問題。為能同時對路徑的冗余點及路徑的轉(zhuǎn)折角進行改進,筆者在標準A*算法的基礎(chǔ)上,提出一種改進A*算法。改進A*算法為快速獲得初始路徑,增加救援機器人可能的移動方向,將救援機器人的鄰接點從一層8 個擴展為兩層24 個,即允許機器人最多向周圍24 個柵格移動;通過擴展機器人的移動方向,可以減少算法迭代次數(shù),快速生成初始路徑。獲得初始路徑后,再利用本文采用的去除冗余點方法對路徑去除冗余點,并采用5 次B 樣條曲線對路徑進行平滑處理,以獲得路徑代價更小、累計轉(zhuǎn)折角度更小的優(yōu)化路徑。

1 傳統(tǒng)A*算法

1.1 地圖環(huán)境描述

柵格法由于操作簡單、易于實現(xiàn),被廣泛用來描述機器人環(huán)境地圖[14]。柵格法需要計算機利用傳感器收集環(huán)境信息,創(chuàng)建環(huán)境的二維平面圖M,救援機器人RR看作在M上移動的點狀物體;若M為不規(guī)則圖形,則將M填補為規(guī)則圖形,并將填補的區(qū)域設(shè)為障礙物區(qū)域。經(jīng)過柵格化處理的地圖如圖1 所示,設(shè)圖中左下角為坐標原點,水平方向為x軸,豎直方向為y軸;白色柵格為“可通行柵格(點)”,允許機器人通過;黑色柵格為“不可通行柵格(環(huán)境中的障礙物)”,不允許機器人通過[15]。

圖1 柵格地圖Fig.1 Grid map

記a為M中任意柵格,設(shè)柵格集合A={ai}(i=1,2,···,n)構(gòu)成地圖M,集合Nobs={oj}(j=1,2,···,m)(m<n)?A組成障礙物柵格,?a∈A在M中的對應(yīng)坐標為(x,y)。記左下角第一個柵格坐標為[1,1]。在柵格地圖環(huán)境下進行路徑規(guī)劃是指在M上使得救援機器人RR從指定起始節(jié)點node_S沿著一條安全、無碰撞的最優(yōu)路徑到達指定目標節(jié)點node_G。

為便于后續(xù)內(nèi)容展開,本文采用以下設(shè)定:

(1)障礙物已基于機器人外形尺寸進行擴張,故機器人可作為一個點在柵格地圖范圍內(nèi)移動。

(2)機器人不能穿過障礙物柵格的四角。

(3)機器人允許的移動方向用鄰接矩陣表示。A*算法通常允許機器人向周圍最多8 個柵格移動,其鄰接矩陣如下式所示。矩陣中數(shù)字“2”表示機器人RR當(dāng)前所在位置;“1”表示救援機器人允許前往的位置。

1.2 傳統(tǒng)A*算法

傳統(tǒng)A*算法(以下簡稱A*算法)結(jié)合Dijkstra 算法和最佳優(yōu)先算法(Best First Search,BFS)的思想,在保證可以得到最優(yōu)路徑的基礎(chǔ)上,同時采用啟發(fā)式搜索[16],以提高算法搜索效率。A*算法假設(shè)任意節(jié)點均能通過一個代價估計函數(shù)計算出該節(jié)點的代價值,并在已計算出代價值的節(jié)點中選出代價值最小的節(jié)點作為算法的下一個擴展點,若目標點被選為下一個擴展點,則表示搜索到最優(yōu)路徑。

為便于表述,對以下參數(shù)進行說明(此處的節(jié)點指某一個柵格的中心,其坐標為所在柵格坐標):

O、C分別為存放未擴展節(jié)點、已擴展節(jié)點相關(guān)信息的集合,即開集、閉集;n為當(dāng)前擴展節(jié)點;n’為當(dāng)前擴展節(jié)點n的某一個鄰接點;c(n’,n) 為當(dāng)前擴展節(jié)點n移動到其鄰接點n’的代價;gx、gy分別為點g在x、y方向的坐標;F(n)、f分別為當(dāng)前擴展節(jié)點n的估計代價值函數(shù)(簡稱估價函數(shù))及函數(shù)值;G(n)、g分別為從起始節(jié)點node_S到當(dāng)前節(jié)點n的實際代價計算函數(shù)及函數(shù)值;g’為當(dāng)前擴展節(jié)點n已經(jīng)在O中時的實際代價值;H(n)、h為從當(dāng)前擴展節(jié)點n到目標節(jié)點node_G的估計代價函數(shù)(啟發(fā)式函數(shù))及函數(shù)值;H*(n)、h* 為從當(dāng)前擴展節(jié)點n到目標節(jié)點node_G的實際代價函數(shù)及函數(shù)值;Par() 為某節(jié)點的父節(jié)點在閉集C中的索引;Size() 為獲得某集合行數(shù)的函數(shù)。

A*算法的搜索過程如下:

(1)初始化開集O、閉集C。

(2)將起始節(jié)點node_S加入O,并計算代價F(node_S)。

(3)若O為空集,則表示尋路失敗,算法結(jié)束,輸出結(jié)果;若O不為空集,則取出O中f值最小的節(jié)點n,并把n從O中移到C中。

(4)若n為目標點,則尋路成功,算法結(jié)束,輸出結(jié)果;否則,處理n的鄰接點:若當(dāng)前鄰接點n’已經(jīng)在C中,則直接處理下一個鄰接點;若n’已經(jīng)在O中,則比較n’當(dāng)前的實際代價值g和開集O中已保存的實際代價值g’;若g<g’,則更新O中n’的相關(guān)信息;若g≥g’,則不對n’作處理;若n’不在O和C中,則計算相關(guān)信息,并將n’加入O中;當(dāng)所有鄰接點均處理完畢,返回執(zhí)行第(3)步。

1.3 估價函數(shù)F(n)

合適的估價函數(shù)F(n),會使A*算法保證能找到最優(yōu)路徑。A*算法的估價函數(shù)F(n)表示為:

式中:F(n)為從起始節(jié)點node_S經(jīng)過當(dāng)前節(jié)點n到達目標點node_G的估價函數(shù);G(n)為從起始節(jié)點node_S到當(dāng)前節(jié)點n的實際代價函數(shù);H(n)為從當(dāng)前節(jié)點n到達目標節(jié)點node_G的啟發(fā)式函數(shù)[17]。

H(n)與H*(n)的關(guān)系會對A*算法的搜索速度和搜索結(jié)果產(chǎn)生重要影響,故H(n)的選擇是A*算法的關(guān)鍵內(nèi)容之一。H(n)與H*(n)的關(guān)系通常存在以下情況:

(1)若啟發(fā)式函數(shù)恒為0,則F(n)=G(n),A*算法變?yōu)镈ijkstra 算法。此時算法總能搜索到最優(yōu)路徑,但需擴展大量節(jié)點,算法效率低。

(2)若H(n)≤H*(n),則A*算法總能搜索到一條最優(yōu)路徑。當(dāng)柵格地圖中無障礙物或障礙物對最優(yōu)路徑無影響時,存在H(n)=H*(n),此時A*算法只擴展最優(yōu)路徑點,這時算法搜索效率很高;當(dāng)?shù)貓D中障礙物對最優(yōu)路徑產(chǎn)生影響時,存在H(n)<H*(n),此時A*需要擴展其他節(jié)點以搜索最優(yōu)路徑。

(3)若H(n)>H*(n),A*算法不能保證搜索到最優(yōu)路徑,但算法搜索節(jié)點少、搜索效率高。

(4)若H(n)>>H*(n),此時G(n)對F(n)的影響可忽略,則F(n)=H(n),A*算法變?yōu)锽FS 算法。此時算法不能保證會搜索到最優(yōu)路徑,但搜索節(jié)點少,搜索效率高。

常見的代價計算方式有曼哈頓距離、對角距離和歐幾里得距離[18]。采用歐幾里得距離時有:

由于地圖中障礙物的存在,總是會有H(n)≤H*(n),故A*算法總是可以搜索到最優(yōu)路徑。本文路徑代價計算均采用歐幾里得距離。

2 改進A*算法

對于可沿任意方向運動的救援機器人而言,由于A*算法最多允許機器人向周圍8 個柵格移動,故A*算法在柵格地圖環(huán)境下規(guī)劃的路徑是非最優(yōu)的。以無障礙地圖為例,A*算法規(guī)劃出的路徑如圖2 所示。若機器人最多只能朝周圍8 個柵格移動,則圖2 中的路徑可以稱為“最優(yōu)的”;但若機器人可沿任意方向移動,則其最優(yōu)路徑應(yīng)是起始節(jié)點node_S和目標節(jié)點node_G的連線。故需要對A*算法進行改進,以獲得對可沿任意方向移動的救援機器人而言的“最優(yōu)路徑”。

圖2 傳統(tǒng)A*算法搜索結(jié)果Fig.2 Search result of conventional A* algorithm

2.1 改進A*算法方案

在改進A*算法中,定義了RemovePoint函數(shù)、Spline函數(shù)和SmoothPath函數(shù)。RemovePoint函數(shù)移除路徑點集合中的冗余點;Spline函數(shù)將路徑點按照步長α進行分割;SmoothPath函數(shù)采用5 次B 樣條曲線對路徑進行平滑處理。

改進A*算法總體分為5 步:

(1)設(shè)置A*算法中救援機器人最多可向周圍24個柵格移動,并生成初始路徑點集合Pori。

(2)調(diào)用RemovePoint函數(shù),去除初始路徑點集合Pori中的冗余點,獲得優(yōu)化路徑點集合Pnew。

(3)調(diào)用Spline函數(shù),將路徑點集合Pnew中前后兩路徑點的連線按照一定步長進行分割,獲得分割后的路徑點集合Pdiv。

(4)調(diào)用RemovePoint函數(shù),去除路徑點集合Pdiv中的冗余點,獲得優(yōu)化路徑點集合Pre。

(5)調(diào)用SmoothPath函數(shù),對路徑點集合Pre形成的路徑進行平滑處理,獲得最終路徑點集合Pfinal。

2.2 鄰接點擴展

為使移動機器人在使用改進A*算法進行路徑規(guī)劃時,更快地獲得初始路徑,本文將改進A*算法允許機器人最多可移動的柵格數(shù)量擴展為24 個,此時機器人的鄰接矩陣如下式所示。

采用24 鄰接點的改進A*算法生成的路徑轉(zhuǎn)折角度更小且能減少搜索路徑時擴展的節(jié)點數(shù)量,從而降低內(nèi)存占用,如圖3 所示。

圖3 鄰接點數(shù)量為8 和24 時A*算法規(guī)劃結(jié)果Fig.3 Planning results of A* algorithm with 8 and 24 adjacency points

對比采用8 鄰接點的A*算法和采用24 鄰接點的改進A*算法規(guī)劃出的路徑,可看出改進A*算法規(guī)劃的路徑路徑點數(shù)量更少,路徑轉(zhuǎn)折次數(shù)更少,并且規(guī)劃路徑過程中擴展的節(jié)點數(shù)量(閉集中節(jié)點數(shù)量)也更少。故采用24 鄰接點可以快速獲得效果更好的初始路徑。

2.3 去除路徑冗余點

去除冗余點流程如圖4 所示,其主要原理是重連路徑點。設(shè)重連路徑點時的起始連接點為s、目標連接點為g、新路徑點集合為R(R代表2.1 節(jié)中的Pnew或Pre)。初始時,獲取路徑點集合P(P代表2.1 節(jié)中的Pori或Pdiv),并將P中第一個路徑點設(shè)為s、第二個路徑點設(shè)為g,通過函數(shù)CheckPath檢查兩點連線lsg是否經(jīng)過障礙物,若直線lsg未通過障礙物,則將下一路徑點設(shè)為g;若經(jīng)過障礙物,則將起始連接點s加入新路徑點集合R,并將目標連接點g的前一個連接點設(shè)為起始連接點s;重復(fù)這一過程直到目標連接點為目標節(jié)點node_G。最終輸出新路徑點集合R。

圖4 去除路徑冗余點流程Fig.4 Flow chart of removing redundant points in path

CheckPath函數(shù)是去除冗余點時的關(guān)鍵步驟,其輸入?yún)?shù)分別是δ、σ、s、g、M,δ是距離閾值,限制周圍柵格與直線lsg的最小距離,σ是采樣步長,即從起始連接點開始,按照r×σ(r=0,1,2,···)距離取點n,并判斷l(xiāng)sn是否通過障礙物。

針對不同的運動方向,CheckPath函數(shù)需要檢查的節(jié)點不同:

(1)路徑方向為左上到右下時,需要檢查當(dāng)前節(jié)點所在柵格的左側(cè)NL和上側(cè)NT柵格。

(2)路徑方向為右上到左下時,需要檢查當(dāng)前節(jié)點所在柵格的右側(cè)NR和上側(cè)NT柵格。

(3)路徑方向為右下到左上時,需要檢查當(dāng)前節(jié)點所在柵格的右側(cè)NR和下側(cè)NU柵格。

(4)路徑方向為左下到右上時,需要檢查當(dāng)前節(jié)點所在柵格的左側(cè)NL和下側(cè)NU柵格。

若有一個待檢查柵格為障礙物柵格,則需計算2個距離參數(shù);若2 個待檢查柵格均為障礙物柵格,表示當(dāng)前連接點g和起始連接點s的連線經(jīng)過障礙物,需對g的前一個路徑點進行處理。

路徑方向為左上到右下時CheckPath函數(shù)的偽代碼如圖5 所示。圖5 中dmin為與直線lsg斜率相同且經(jīng)過柵格NT左下角(NL右上角)的直線與柵格NT左上角(NL右下角)的最小距離。

當(dāng)柵格NT為障礙物柵格時,dll為直線lsg到柵格NT左下角的最小距離,dul為直線lsg到柵格NT左上角的最小距離;只有同時滿足dll> δ和dul> dmin兩個條件,才能保證直線沒有經(jīng)過柵格NT且與柵格NT的距離滿足要求(代碼第15—第20 行)。

柵格NL原理相同,dur為直線lsg到柵格NL右上角的最小距離,dlr為直線lsg到柵格NL右下角的最小距離;只有同時滿足dur>δ和dlr>dmin兩個條件,才能保證直線lsg沒有經(jīng)過柵格NL且與柵格NL的距離滿足要求(代碼第21—第26 行)。

以圖6 中路徑為例,此時CheckPath函數(shù)的輸入點為s、g,當(dāng)前檢查節(jié)點為n,當(dāng)前檢查柵格為(2,2)。通過三角形面積公式,計算得:

式中:θ為此時的連接起點和目標點所成直線的斜率。

當(dāng)前柵格的左側(cè)柵格NL為障礙物,則需計算NL右上角及右下角到直線lsn(即直線lsg)的距離dur、dlr。若dur>δ,則能保證直線與柵格右上角點的距離滿足算法要求,但是無法判斷直線lsg是否穿過柵格NL;只有dlr滿足dlr>dmin,才能保證直線lsg不在柵格NL內(nèi)。

采用CheckPath進行去除冗余點后的路徑如圖7所示。與原路徑相比,去除冗余點后的路徑代價和路徑累計轉(zhuǎn)折角度均有所減小。

圖7 去除路徑冗余點后的路徑Fig.7 The path after removing redundant points

2.4 路徑平滑

路徑經(jīng)過兩次去除冗余點后,其平滑問題得到初步改善,但還需對路徑轉(zhuǎn)角進行平滑處理。B 樣條曲線能夠?qū)β窂竭M行布局修改而不影響整條路徑的基本形狀特征,被廣泛應(yīng)用于路徑平滑和軌跡平滑中[18-20]。同時B 樣條曲線可人為調(diào)整曲線階數(shù),通過改變階數(shù)可有效改善曲線的平滑效果。在仿真實驗過程中,將B 樣條曲線的階數(shù)設(shè)置依次設(shè)置為3~7 階,其平滑效果如圖8 所示。從圖8 中可知,采用3 次B 樣條曲線平滑后的路徑有較為明顯的轉(zhuǎn)折;將樣條曲線階數(shù)從三階增加到五階時,其路徑平滑效果有明顯改善;將樣條曲線階數(shù)從五階增加到七階時,雖然路徑平滑效果有所改善,但是效果沒有從三階到五階的改善效果明顯。故本文選用5 次B 樣條曲線進行路徑平滑。

圖8 不同階數(shù)的B 樣條曲線平滑效果Fig.8 Smoothing results of B-spline curves of different orders

B 樣條曲線的總方程為:

式中:Pi為給定的控制點坐標;Fi,k(t)階B 樣條基函數(shù),其表達式為:

將基函數(shù)代入到式(5)中,即可得到5 次B 樣條曲線方程:

3 仿真實驗及結(jié)果分析

3.1 仿真實驗

為了驗證本文提出的改進A*算法的有效性,使用傳統(tǒng)A*算法和本文提出的改進A*算法分別在5 種尺寸的單位大小柵格組成的隨機地圖環(huán)境進行仿真,柵格地圖障礙物密度為20%,實驗環(huán)境為:CPU Intel Core i5-4200U,內(nèi)存12 GB,實驗工具MATLAB 2020a。

圖9 為尺寸為20×20 的隨機柵格地圖環(huán)境下,傳統(tǒng)A*算法和改進A*算法的路徑搜索結(jié)果對比。通過對比,可看出相同環(huán)境下改進A*算法搜索到的路徑相比于傳統(tǒng)A*算法搜索到的路徑代價更小、轉(zhuǎn)折角度更小。

圖9 傳統(tǒng)A*算法和改進A*算法的仿真結(jié)果Fig.9 Simulation result of conventional A* algorithm and improved A* algorithm

仿真實驗在5 種尺寸的隨機地圖分別連續(xù)成功運行100 次(可能存在無可行路徑的情況),并記錄傳統(tǒng)A*算法和改進A*算法運行時的搜索節(jié)點數(shù)量、路徑代價及路徑轉(zhuǎn)折角度等3 個數(shù)據(jù)。

為驗證不同路徑方向的CheckPath函數(shù),不同尺寸地圖的起始點和目標點不同:

(1)地圖尺寸為20×20 時,起始節(jié)點為(2,2),目標節(jié)點為(18,18)。

(2)地圖尺寸為30×30 時,起始節(jié)點為(27,3),目標節(jié)點為(3,27)。

(3)地圖尺寸為50×50 時,起始節(jié)點為(45,45),目標節(jié)點為(5,5)。

(4)地圖尺寸為80×80 時,起始節(jié)點為(8,72),目標節(jié)點為(72,8)。

(5)地圖尺寸為100×100 時,起始節(jié)點為(10,10),目標點節(jié)為(90,90)。

仿真結(jié)果見表1(參數(shù)比值為改進A*算法參數(shù)值/傳統(tǒng)A*算法參數(shù)值)。

表1 改進A*算法和標準A*算法的部分參數(shù)比值Table 1 Partial parameter ratio between improved A*algorithm and standard A* algorithm

表1 給出了傳統(tǒng)A*算法和改進A*算法在不同尺寸柵格地圖中的搜索節(jié)點、路徑代價和路徑轉(zhuǎn)折角度的比值。地圖是以單位大小柵格組成,圖中的值表示改進A*算法計算得到的結(jié)果與傳統(tǒng)A*算法得到的結(jié)果的比值。從表1 可以看出,改進A*算法相比于傳統(tǒng)A*算法,搜索過程擴展的節(jié)點數(shù)量減少20%左右,所得路徑代價減少8%~9%,路徑轉(zhuǎn)折角度減少75%~80%?!案倪MA*/傳統(tǒng)A*”比值均小于1,表明改進A*算法優(yōu)于傳統(tǒng)A*算法。

3.2 結(jié)果分析

經(jīng)過多次仿真實驗得到的結(jié)果,分析可得實現(xiàn)路徑優(yōu)化的主要因素有以下3 點:

(1)擴展鄰接點。通過擴展救援機器人的鄰接點,增加了救援機器人允許的移動方向,導(dǎo)致算法擴展到某一節(jié)點時,加入開集O的鄰接點數(shù)量更多,從而使得開集中的節(jié)點數(shù)量增加得更快,擴大了下一次比較f值的節(jié)點范圍。即若要在開集中加入相同數(shù)量的節(jié)點,改進A*算法所需的迭代次數(shù)要少于傳統(tǒng)A*算法;因此規(guī)劃出相同路徑時,改進A*算法所需的迭代次數(shù)更少,并且加入閉集C中的節(jié)點數(shù)量更少。因此改進A*算法生成初始路徑的速度比傳統(tǒng)A*算法快。理論上可以進一步擴展鄰接點,即再增加鄰接點的層數(shù),但是增加到一定數(shù)量時反而會大幅增加每次迭代消耗的時間,從而降低搜索速度,故本文僅將鄰接點數(shù)量擴展到24 個。

(2)去除路徑冗余點。通過去除冗余點,減少了初始路徑的代價和轉(zhuǎn)折角度。改進A*算法首先對初始路徑上的路徑點進行去除;但由于初始路徑中兩路徑點的間距較大,因此路徑仍有優(yōu)化空間。故在對初始路徑去除冗余點后,再將新的路徑按照一定步長進行分割,獲得間距更小的路徑點集合,并對該路徑點集合去除冗余點。同樣地,理論上來說,可以多次重復(fù)進行路徑分割和去除冗余點操作,可使最終路徑接近“最優(yōu)”;但多次使用路徑分割和去除冗余點反而會增加算法運行時間,并且可能優(yōu)化效果不明顯;故本文中僅使用了一次,在保證算法搜索效率的同時,盡量減小路徑代價及轉(zhuǎn)折角度。

(3)路徑平滑。在去除冗余點后,獲得的路徑雖然轉(zhuǎn)折角度有所減少,但是路徑的轉(zhuǎn)角處并不是平滑的曲線。因此為實現(xiàn)救援機器人的平穩(wěn)運動,本文采用了5 次B 樣條曲線對路徑轉(zhuǎn)角進行進一步平滑。通過5 次B 樣條曲線擬合,可獲得更加平滑的最終路徑,保障救援機器人運動時速度和角度的平穩(wěn)性。

通過仿真實驗可知,救援機器人采用改進A*算法進行路徑規(guī)劃可以獲得代價更小、轉(zhuǎn)折角度更小的路徑。故改進A*算法滿足使用需求,且具有一定的應(yīng)用價值。

4 結(jié)論

a.本文采用的路徑優(yōu)化方法不僅可以用于傳統(tǒng)A*算法,也可用于其他全局路徑規(guī)劃算法,如Dijkstra 算法、RRT 算法等。以上算法均可以在獲得初始路徑后通過重連路徑點、曲線擬合來獲得代價更小、更平滑的路徑。

b.改進A*算法在傳統(tǒng)A*算法的基礎(chǔ)上,擴展機器人的鄰接點,最多允許機器人向周圍24 個柵格移動,增加了機器人可能的移動方向,可以快速獲得初始路徑;并對初始路徑重復(fù)去除冗余點,再利用5 次B 樣條曲線進行路徑平滑,最終獲得路徑代價更小、累計轉(zhuǎn)折角度更小的優(yōu)化路徑。

c.通過仿真結(jié)果分析可知,改進A*算法得到的最終路徑相比于傳統(tǒng)A*算法,路徑代價和路徑轉(zhuǎn)折角度都有明顯降低,并且搜索節(jié)點數(shù)量也有顯著減少(若隨機生成的障礙物柵格集中分布于最優(yōu)路徑附近,則搜索節(jié)點數(shù)量不會有顯著變化)。故該改進A*算法能滿足救援機器人對“最優(yōu)”路徑的需求,可以進行實際應(yīng)用。

d.改進A*算法可以通過多次調(diào)用去除冗余點函數(shù)RemovePoint和路徑分割函數(shù)Spline,不斷處理路徑,獲得近似為“最優(yōu)”的優(yōu)化路徑,但是多次調(diào)用函數(shù)會占用大量計算機內(nèi)存,降低計算機處理速度。故后續(xù)研究應(yīng)針對該問題進行進一步優(yōu)化。同時,為進一步減少生成初始路徑時的擴展節(jié)點數(shù)量,可采用跳點搜索法(Jump Point Search,JPS)等進行預(yù)處理。

主站蜘蛛池模板: 丁香五月亚洲综合在线| 欧美日韩一区二区在线免费观看| 成人日韩欧美| 在线观看欧美国产| 国产色婷婷| 国内精品小视频在线| 国产精品综合久久久| 欧美午夜久久| 欧美97色| 亚洲永久精品ww47国产| 亚洲精品午夜无码电影网| 国产办公室秘书无码精品| 一级香蕉人体视频| 亚洲无码高清视频在线观看 | 亚洲最大福利网站| 免费人成在线观看视频色| 99视频在线观看免费| 在线亚洲小视频| 国产麻豆91网在线看| 四虎影视国产精品| 国产特级毛片aaaaaa| 国产免费怡红院视频| 一级毛片在线免费看| 久久精品这里只有精99品| 国产精选小视频在线观看| 97se亚洲综合| 岛国精品一区免费视频在线观看| 东京热av无码电影一区二区| 手机看片1024久久精品你懂的| 综合色88| 第九色区aⅴ天堂久久香| 久久久波多野结衣av一区二区| 精品国产自在在线在线观看| 欧美久久网| 在线免费观看AV| 国产乱人乱偷精品视频a人人澡| 99热这里只有精品国产99| 日韩免费毛片视频| 97国产在线观看| 国产成人精品一区二区三在线观看| 最新亚洲人成网站在线观看| 国产91透明丝袜美腿在线| av一区二区三区在线观看| 国产日本欧美在线观看| 91精品国产麻豆国产自产在线| 国产高潮视频在线观看| 99re66精品视频在线观看| 亚洲精品中文字幕无乱码| 欧美精品在线免费| 国产一区二区人大臿蕉香蕉| 538国产视频| 中文字幕在线免费看| 啪啪永久免费av| 日本人妻一区二区三区不卡影院| 国产网友愉拍精品| 亚洲日韩精品综合在线一区二区| 777午夜精品电影免费看| 国产高潮流白浆视频| 暴力调教一区二区三区| 国产亚洲美日韩AV中文字幕无码成人 | 一区二区三区成人| 国产综合精品日本亚洲777| 欧美成在线视频| 国产视频 第一页| 欧美色香蕉| 98精品全国免费观看视频| 亚洲欧美一区二区三区图片| 国产精品一区二区久久精品无码| 欧美成人看片一区二区三区| 日本免费福利视频| 精品剧情v国产在线观看| 国产午夜精品鲁丝片| 亚洲清纯自偷自拍另类专区| 夜夜爽免费视频| 欧美午夜视频| 91极品美女高潮叫床在线观看| 欧美www在线观看| 国产91麻豆视频| 亚洲午夜福利在线| 91欧美在线| 国产亚洲视频免费播放| 精品综合久久久久久97超人|