亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于改進(jìn)A*算法的移動機(jī)器人路徑規(guī)劃

        2021-11-17 12:39:10汪四新譚功全
        計(jì)算機(jī)仿真 2021年9期
        關(guān)鍵詞:柵格障礙物雙向

        汪四新,譚功全,蔣 沁,蘇 暢

        (四川輕化工大學(xué)自動化與信息工程學(xué)院,四川自貢643000)

        1 引言

        移動機(jī)器人首先要解決的問題就是如何有效快速地到達(dá)目標(biāo)點(diǎn),而且能夠避開環(huán)境中的障礙物。路徑規(guī)劃是機(jī)器人導(dǎo)航中最基本的問題[1-2],指的是如何規(guī)劃出一條由出發(fā)位置到目標(biāo)位置的無碰撞適宜軌跡。路徑規(guī)劃分為局部路徑規(guī)劃和全局路徑規(guī)劃[3],局部路徑規(guī)劃指的是環(huán)境未知情況下的避障運(yùn)動規(guī)劃,全局路徑規(guī)劃則是在環(huán)境已知的情況下搜索全局最優(yōu)的路徑規(guī)劃。常用的局部路徑規(guī)劃算法有動態(tài)窗口法DWA[4]、人工勢場法[5]等。常用的全局路徑算法主要有神經(jīng)網(wǎng)絡(luò)[6]、遺傳算法[7]、柵格法[8]、A*算法[9]、RRT[10]以及仿生群搜索算法[11-12]等。

        A*算法作為常用的全局算法中的一種,能夠在靜態(tài)環(huán)境中快速求解最優(yōu)路徑[13]。王淼弛[14]對雙向A*算法采用24領(lǐng)域擴(kuò)展方法,提高了算法單步搜索區(qū)域,但搜索節(jié)點(diǎn)過多且雙向搜索采用異步雙向搜索,導(dǎo)致算法的運(yùn)行時(shí)間過長。王中玉等人[15]針對路徑冗余點(diǎn)和拐點(diǎn)改進(jìn)評價(jià)函數(shù),提高了路徑的平滑性,但采用擴(kuò)展障礙物方法沒有從根本上解決拐點(diǎn)碰撞問題。陳若男等人[16]采用領(lǐng)域矩陣方法搜索障礙物,改善了路徑安全性,但沒有提高路徑搜索效率。

        本文在已知靜態(tài)環(huán)境下,采用A*算法雙向搜索方式,并引入雙向中點(diǎn)虛擬目標(biāo)點(diǎn)引導(dǎo)雙向往點(diǎn)靠攏相遇,減少搜索時(shí)間。其次加入預(yù)估函數(shù)權(quán)重,兼顧搜索效率與路徑距離質(zhì)量。最后考慮安全性,進(jìn)行障礙物拐點(diǎn)領(lǐng)域擴(kuò)展切換。通過仿真,驗(yàn)證了算法改進(jìn)的有效性。

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

        2.1 環(huán)境建模

        移動機(jī)器人進(jìn)行路徑規(guī)劃的首先要對地圖環(huán)境進(jìn)行建模,環(huán)境地圖目前使用較多的大概三類,分別為柵格地圖、拓?fù)涞貓D、可視地圖。柵格地圖具有易編程、結(jié)構(gòu)簡單等特點(diǎn),因此A*算法采用柵格法進(jìn)行環(huán)境建模。建立邊長為k個(gè)柵格單元長度的正方形地圖,即柵格地圖面積為k2。完成柵格地圖的框架建立后,需要對地圖進(jìn)行信息填充,在此之前需要確定出柵格地圖中每個(gè)柵格單元的坐標(biāo)位置。定義全局柵格信息為Φ,柵格地圖每個(gè)柵格單元為nxy可以根據(jù)其行列坐標(biāo)表示為

        nxy=(x,y)(x,y∈[1,n])

        (1)

        式中x,y坐標(biāo)起點(diǎn)為柵格地圖左上頂點(diǎn),起點(diǎn)值為1,x軸方向?yàn)槠瘘c(diǎn)垂直向下,y軸方向?yàn)槠瘘c(diǎn)垂直向右。

        全局柵格信息Φ可表示為

        Φ=∑nxy

        (2)

        為便于對A*路徑算法的理解分析,對普遍使用的黑白柵格地圖彩色化。柵格地圖進(jìn)行彩色化處理,需要知道對應(yīng)每個(gè)柵格單元的線性化坐標(biāo),線性坐標(biāo)是以柵格地圖左上角為坐標(biāo)起點(diǎn),采用自上而下,自左往右的方式排序。因此將容易直觀觀察的行列坐標(biāo)nxy轉(zhuǎn)換為線性坐標(biāo)m

        m=x+(y-1)*k

        (3)

        式中x,y為柵格單元的行列坐標(biāo),k為地圖邊長。

        根據(jù)A*算法需求,對線性坐標(biāo)柵格進(jìn)行相應(yīng)顏色三元素RGB矩陣配置,分別對空地、障礙、起點(diǎn)、目標(biāo)點(diǎn)、已搜索點(diǎn)、待搜索點(diǎn)、路徑進(jìn)行顏色矩陣設(shè)定,如表1所示。

        表1 柵格地圖RGB顏色配置

        2.2 A*算法原理

        A*算法是P.E.Hart、N.J.Nilsson和B.Raphael于1968年提出的一種啟發(fā)式搜索算法。A*算法是結(jié)合Dijkstra搜索算法[17]與最佳優(yōu)先搜索(BFS)算法的優(yōu)點(diǎn)所提出的。Dijkstra算法與BFS算法都是從出發(fā)點(diǎn)開始,向四周發(fā)散擴(kuò)展,直至搜索到目標(biāo)點(diǎn)。區(qū)別在于Dijkstra算法是以擴(kuò)展點(diǎn)與起點(diǎn)距離為代價(jià)進(jìn)行路徑搜索,沒有考慮與目標(biāo)點(diǎn)之間的距離關(guān)系,所以搜索出目標(biāo)點(diǎn)花費(fèi)時(shí)間很長,但搜索出的路徑是最優(yōu)路徑。而BFS算法則相反,考慮了擴(kuò)展點(diǎn)與目標(biāo)點(diǎn)的關(guān)系,搜索出目標(biāo)點(diǎn)花費(fèi)時(shí)間很短,但路徑不一定是最優(yōu)的。A*算法兼顧Dijkstra算法與BFS算法距離代價(jià),建立了新的搜索評價(jià)函數(shù),如下式

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

        (4)

        式中g(shù)(n)為當(dāng)前點(diǎn)n與起點(diǎn)的實(shí)際距離代價(jià),h(n)為當(dāng)前點(diǎn)n與目標(biāo)點(diǎn)的估計(jì)距離代價(jià)。其中代價(jià)距離均采用歐幾里德距離,g(n)函數(shù)與h(n)函數(shù)計(jì)算公式如下

        (5)

        (6)

        式中x、y分別代表當(dāng)前擴(kuò)展點(diǎn)的橫縱坐標(biāo),xs、ys分別代表起始點(diǎn)橫縱坐標(biāo),xg、yg分別代表目標(biāo)點(diǎn)橫縱坐標(biāo)。當(dāng)g(n)取值接近0時(shí),A*算法實(shí)則變成了BFS搜索算法,當(dāng)h(n)取值接近0時(shí),A*算法則相當(dāng)于Dijkstra搜索算法。

        A*算法在當(dāng)前點(diǎn)擴(kuò)展領(lǐng)域節(jié)點(diǎn)時(shí),通常采用四向、八向領(lǐng)域擴(kuò)展,四向擴(kuò)展偏向于倉儲結(jié)構(gòu)化的搜索方式,方向?yàn)楫?dāng)前點(diǎn)的上、下、左、右方向。八向擴(kuò)展方式則是在四向擴(kuò)展基礎(chǔ)上加入了左上、右上、坐下、右下方向,擴(kuò)展節(jié)點(diǎn)如圖1。

        圖1 擴(kuò)展節(jié)點(diǎn)

        3 改進(jìn)A*算法

        3.1 雙向同步搜索

        改進(jìn)的A*算法在傳統(tǒng)A*算法基礎(chǔ)上采用雙向同步搜索的方式,分別將此次路徑搜索的起點(diǎn)、目標(biāo)點(diǎn)作為雙向搜索的起點(diǎn),同時(shí)向各自的目標(biāo)點(diǎn)進(jìn)行擴(kuò)展,最終雙向擴(kuò)展點(diǎn)相交,終止搜索,得到全局路徑。其步驟可總結(jié)如下:

        1)算法運(yùn)行開始時(shí),首先創(chuàng)建雙向OPEN表、CLOSE表、PARENT表,后標(biāo)1表示正向表,后標(biāo)2表示反向標(biāo),將全局路徑的起始點(diǎn)、目標(biāo)點(diǎn)(即雙向搜索的兩端點(diǎn))放入對應(yīng)的OPEN1表和OPEN2表,作為各自的搜索起點(diǎn),準(zhǔn)備擴(kuò)展;

        2)判斷OPEN1表和OPEN2表是否為空。為空跳8),否則執(zhí)行3);

        3)判斷OPEN1表和OPEN2表是否包含各自搜索方向目標(biāo)點(diǎn)。包含跳7),否則執(zhí)行4);

        4)分別選取OPEN1表和OPEN2表中f(n)值最小值點(diǎn)存入對應(yīng)CLOSE表,成為新的擴(kuò)展當(dāng)前點(diǎn);

        5)將新的擴(kuò)展當(dāng)前點(diǎn),擴(kuò)展領(lǐng)域范圍內(nèi)的點(diǎn)存入OPEN1表和OPEN2表中,更新其父指針,存入對應(yīng)正反向PARENT表;跳過障礙物點(diǎn)與CLOSE表中的點(diǎn)擴(kuò)展其它點(diǎn),并跳至2)。若已存在于OPEN表中的點(diǎn),則比較其評價(jià)函數(shù)的當(dāng)前值與過去值,若低于過去值則刷新父指針;

        6)判斷正反向擴(kuò)展點(diǎn)是否存在交集。存在交集則執(zhí)行7),否則跳2);

        7)已找到路徑,連接正向父指針PARENT1與顛倒的反向父指針PARENT2,獲得路徑;

        8)程序運(yùn)行結(jié)束。

        因?yàn)殡p向A*算法,在范圍過大時(shí)往往存在雙向搜索不能再地圖中間區(qū)域相遇,導(dǎo)致搜索所花費(fèi)的時(shí)間加長,甚至?xí)霈F(xiàn)無法相遇的情況,無法得到一條可行路徑。針對以上雙向搜索相遇問題,以人工勢場法[18]牽引力思想,將目標(biāo)點(diǎn)看作對移動機(jī)器人的引力作用,從而引導(dǎo)機(jī)器人往目標(biāo)點(diǎn)啟發(fā)式搜索。建立一個(gè)兩端點(diǎn)歐式距離中點(diǎn)位置的虛擬牽引點(diǎn)如圖2。

        圖2 虛擬牽引

        虛擬點(diǎn)為雙向搜索提供一個(gè)往中間點(diǎn)位置的虛擬牽引力作用,使得二者能在可行路徑條件下,盡可能相遇在中間位置,縮短搜索時(shí)間,提高雙向搜索的效率,如下式(7)、(8)

        (7)

        h′(n)=ln(d(n))*h(n)

        (8)

        式(7)中d(n)為虛擬牽引點(diǎn)與機(jī)器人當(dāng)前點(diǎn)的歐氏距離,式(8)中h′(n)為加入虛擬牽引點(diǎn)牽引后的預(yù)估函數(shù),其中虛擬引力點(diǎn)作用大小隨著與雙向搜索當(dāng)前點(diǎn)距離縮短而減小,加入對數(shù)函數(shù)使得整個(gè)距離衰減過程更加平滑。

        3.2 改進(jìn)預(yù)估函數(shù)

        對評價(jià)函數(shù)中加入虛擬引力點(diǎn)作用后的預(yù)估函數(shù)h′(n)加入權(quán)值函數(shù),從而改變預(yù)估函數(shù)在整個(gè)評價(jià)函數(shù)中的比例,減少了算法搜索中無效搜索區(qū)域,提高算法的搜索效率。權(quán)值函數(shù)采用當(dāng)前點(diǎn)與目標(biāo)點(diǎn)歐幾里德距離的衰減對數(shù)函數(shù),加入權(quán)值函數(shù)的預(yù)估函數(shù)h″(n)如下式(9)

        (9)

        式中加入的對數(shù)權(quán)值函數(shù)隨著機(jī)器人當(dāng)前位置與目標(biāo)點(diǎn)的距離變化而變化,當(dāng)機(jī)器人與目標(biāo)點(diǎn)距離很遠(yuǎn)時(shí),預(yù)估距離要比真實(shí)距離小得多,因此權(quán)重函數(shù)值應(yīng)較大,加快搜索趨近目標(biāo)點(diǎn)速度。接近目標(biāo)點(diǎn)時(shí),預(yù)估距離則接近真實(shí)距離,權(quán)重函數(shù)值接近于1。

        3.3 避障策略

        在障礙物環(huán)境下,以機(jī)器人為柵格單位,會出現(xiàn)在仿真路線可行的情況下,實(shí)際機(jī)器人會與障礙物則會碰撞的安全問題,本文不考慮機(jī)器人與障礙物擦邊的情況如圖3。

        圖3 避障擴(kuò)展

        圖3中灰色柵格為機(jī)器人當(dāng)前位置,黑色為障礙物,綠色為目標(biāo)點(diǎn)位置,此時(shí)采取8向領(lǐng)域擴(kuò)展機(jī)器人的下一位置則是5號柵格,仿真路線可行,但實(shí)際機(jī)器人則會與障礙物發(fā)生碰撞。針對此類障礙物拐角點(diǎn)碰撞問題,采用領(lǐng)域擴(kuò)展切換的方式。在進(jìn)行擴(kuò)展時(shí),判斷是否會出現(xiàn)此類問題,如果會出現(xiàn)則將下一步擴(kuò)展由原來的8向領(lǐng)域擴(kuò)展切換為4向領(lǐng)域擴(kuò)展,待下一步擴(kuò)展完成后在恢復(fù)到原來的四向擴(kuò)展,這樣就可以有效解決機(jī)器人在障礙物拐角碰撞問題。

        4 仿真分析

        為了驗(yàn)證本方法的有效性,在Matlab R2017b仿真平臺下,進(jìn)行了不同環(huán)境的仿真。并且通過彩色地圖進(jìn)行顯示,各顏色表示信息如表1,能夠更直觀表達(dá)出改進(jìn)算法的效果。

        實(shí)驗(yàn)一首先對傳統(tǒng)A*算法進(jìn)行改進(jìn),引入雙向搜索A*算法,分別將起始點(diǎn)和目標(biāo)點(diǎn)作為各自的起點(diǎn)開始搜索,往各自目標(biāo)點(diǎn)搜索,仿真如圖4。

        圖4 實(shí)驗(yàn)一傳統(tǒng)A*算法和雙向A*算法仿真

        圖4中灰色表示機(jī)器人的最終搜索到的路徑,可以看出改進(jìn)后的雙向搜索在路徑長度上更短,通過搜索時(shí)間、長度數(shù)據(jù)更為詳細(xì)地比較傳統(tǒng)A*算法與雙向A*算法見表2,引入雙向搜索后的A*算法搜索時(shí)間得到了顯著縮短,且路徑長度也得到的略微縮短改善。

        表2 實(shí)驗(yàn)一仿真結(jié)果數(shù)據(jù)

        由于實(shí)驗(yàn)一柵格地圖為10*10,不能暴露出雙向A*算法可能出現(xiàn)的問題,且搜索區(qū)域較小,實(shí)驗(yàn)二在雙向A*算法基礎(chǔ)上,擴(kuò)大柵格地圖,建立30*30柵格地圖,并增加起始點(diǎn)與目標(biāo)點(diǎn)之間的障礙物,將傳統(tǒng)A*算法與改進(jìn)方法進(jìn)行對比,仿真結(jié)果如圖5。

        圖5 實(shí)驗(yàn)二傳統(tǒng)A*算法和改進(jìn)A*算法仿真

        實(shí)驗(yàn)二在擴(kuò)展的地圖中,分別對傳統(tǒng)A*算法和本文逐漸改進(jìn)后的算法進(jìn)行了對比仿真,對比各自算法搜索的時(shí)間、路徑長度及避障性能指標(biāo)來進(jìn)行分析。實(shí)驗(yàn)二各算法仿真結(jié)果數(shù)據(jù)見表3,在擴(kuò)大了地圖面積并增加了障礙物后,通過與傳統(tǒng)A*算法對比,單純的雙向A*算法如圖5(b)雖然在路徑長度上提升了4.4%,但在搜索時(shí)間上花費(fèi)嚴(yán)重,增高了42.6%,原因是地圖中間巨大的障礙物使得雙向搜索久久不能相遇。通過引入兩端點(diǎn)中部虛擬引力后如圖5(c),使得雙向搜索即使在有障礙物影響下,也能盡快相遇,較傳統(tǒng)A*算法搜索時(shí)間降低11.6%,路徑長度降低4.9%,較單純雙向A*算法搜索時(shí)間更是降低了38.0%。在此基礎(chǔ)上再引入衰減距離對數(shù)函數(shù)加權(quán)后如圖5(d),在保障了路徑長度前提下,較傳統(tǒng)A*算法搜索時(shí)間降低了33.5%。在改善算法搜索時(shí)間與路徑長度同時(shí),還考慮到路徑可行性,即與障礙物之間的安全問題,對機(jī)器人通過障礙物拐點(diǎn)進(jìn)行安全判據(jù),并通過領(lǐng)域擴(kuò)展切換方式如圖5(e),有效避免了機(jī)器人與障礙物發(fā)生碰撞,提高了路徑的安全性。

        表3 實(shí)驗(yàn)二仿真結(jié)果數(shù)據(jù)

        5 結(jié)論

        針對傳統(tǒng)A*算法搜索效率低,且路徑長度一般不是最優(yōu)問題。本文首先引入同步雙向搜索方式提高搜索效率,并考慮同步雙向搜索中隨著地圖擴(kuò)大存在的長久不能相遇問題,參考人工勢場法思想,引入虛擬牽引點(diǎn),在確保路徑長度前提下,使得雙向搜索能盡快相遇。并且對預(yù)估函數(shù)加入到搜索目標(biāo)點(diǎn)的距離衰減函數(shù),進(jìn)一步提高了算法搜索速度。此外考慮到搜索路徑安全可行問題,通過改變領(lǐng)域擴(kuò)展方式改善避障。本文最終改進(jìn)方法提高了算法搜索效率,改善了搜索路徑,證明了算法改進(jìn)的有效性。但本文算法不是完全優(yōu)于傳統(tǒng)方法,在特殊情況下,比如起始點(diǎn)與目標(biāo)點(diǎn)之間障礙物較少或者無障礙物情況下,傳統(tǒng)方法性能還是會優(yōu)于本文方法,而且沒在實(shí)際機(jī)器人中進(jìn)行測試,下一步將結(jié)合實(shí)用生產(chǎn)環(huán)境進(jìn)行研究。

        猜你喜歡
        柵格障礙物雙向
        雙向度的成長與自我實(shí)現(xiàn)
        出版人(2022年11期)2022-11-15 04:30:18
        基于鄰域柵格篩選的點(diǎn)云邊緣點(diǎn)提取方法*
        高低翻越
        SelTrac?CBTC系統(tǒng)中非通信障礙物的設(shè)計(jì)和處理
        一種軟開關(guān)的交錯(cuò)并聯(lián)Buck/Boost雙向DC/DC變換器
        一種工作頻率可變的雙向DC-DC變換器
        不同剖面形狀的柵格壁對柵格翼氣動特性的影響
        基于CVT排布的非周期柵格密度加權(quán)陣設(shè)計(jì)
        基于雙向預(yù)測的圖像去噪
        河南科技(2014年19期)2014-02-27 14:15:24
        土釘墻在近障礙物的地下車行通道工程中的應(yīng)用
        国内精品伊人久久久久av| 国产大屁股视频免费区| 日本一道本加勒比东京热| 亚洲精品av一区二区| 2020无码专区人妻系列日韩| 久久久久亚洲av无码专区桃色| 国产视频网站一区二区三区| 免费人成网站在线观看| 日本a级片免费网站观看| 亚洲av无码成人专区片在线观看| 国产精品23p| 一区二区三区在线免费av| 手机在线免费av资源网| 亚洲国产精品ⅴa在线观看| 一本大道东京热无码中字 | 日韩中文字幕不卡网站| 日本岛国视频在线观看一区二区| 日本最新一区二区三区视频观看| 影音先锋女人av鲁色资源网久久| 亚洲毛片αv无线播放一区| 久久五月精品中文字幕| 亚洲最全av一区二区| 国产美女自慰在线观看| 成人片99久久精品国产桃花岛| 女同另类专区精品女同| 奇米影视色777四色在线首页| 成av人片一区二区三区久久| 亚洲成精品动漫久久精久| 国产一级内射一片视频免费| 亚洲乱亚洲乱妇无码麻豆| 无遮无挡三级动态图| 色人阁第四色视频合集网| 97超碰国产成人在线| 人人妻人人澡人人爽欧美精品| 久精品国产欧美亚洲色aⅴ大片 | 国产黄大片在线观看画质优化| 亚洲成a人片在线观看天堂无码| 欧美在线Aⅴ性色| 亚洲国产精品无码久久电影| 亚洲视频在线播放免费视频 | 亚洲一区二区三区偷拍厕所|