衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

自動(dòng)駕駛中基于圖搜索的常用路徑規(guī)劃算法介紹

汽車工程師 ? 來(lái)源:智車科技 ? 作者:智車科技 ? 2021-04-25 18:02 ? 次閱讀

自動(dòng)駕駛汽車從A點(diǎn)行駛到B點(diǎn),需要軌跡規(guī)劃算法來(lái)進(jìn)行全局規(guī)劃,而具體都有哪些算法呢?這篇文章想和大家分享一下一類最常用的軌跡規(guī)劃算法,基于圖搜索的規(guī)劃算法。

在開(kāi)始介紹圖搜索算法之前,先簡(jiǎn)單介紹一下自動(dòng)駕駛中的規(guī)劃問(wèn)題:規(guī)劃模塊處于自動(dòng)駕駛軟件框架中的中間位置,其接收感知、定位、地圖發(fā)來(lái)的上游信息,輸出一條安全、平穩(wěn)、舒適的軌跡給到控制模塊,因此起到了一個(gè)承上啟下的作用,可以說(shuō)是影響自動(dòng)駕駛中舒適性及安全性最重要的一環(huán)。而傳統(tǒng)意義上的規(guī)劃問(wèn)題可以分為兩個(gè)步驟。

前端負(fù)責(zé)粗粒度的路徑查找,搜索出一條可行路徑;后端負(fù)責(zé)細(xì)粒度的軌跡生成,生成出一條控制模塊可以很好執(zhí)行的平滑軌跡。而這篇文章想要探討的,就是前端路徑搜索中一種最常用的方法,基于圖搜索的路徑規(guī)劃算法。

圖搜索基礎(chǔ)

圖是數(shù)據(jù)結(jié)構(gòu)中非常重要的一個(gè)概念,包含了節(jié)點(diǎn)和邊。在自動(dòng)駕駛中,通常可以將地圖存儲(chǔ)為柵格地圖,每一格就代表了圖的節(jié)點(diǎn),格與格之間的連線就代表了邊。

上圖展示了一種無(wú)向圖,即節(jié)點(diǎn)之間的連線是沒(méi)有指向的。而在實(shí)際場(chǎng)景中,往往每條邊(道路)不僅僅需要考慮距離信息,還需要考慮方向信息、路口擁堵情況、車流量等等,因此自動(dòng)駕駛中往往構(gòu)建的為有向圖、權(quán)重圖等等。除此之外,合理地對(duì)自動(dòng)駕駛場(chǎng)景下的地圖進(jìn)行分割也是保證規(guī)劃效果的一個(gè)很重要的基礎(chǔ),不能分割太密集導(dǎo)致規(guī)劃搜索的效率太低,也不能太粗略從而導(dǎo)致某些場(chǎng)景下明明存在可行解卻無(wú)法搜索到。 構(gòu)建完圖之后,具體的規(guī)劃過(guò)程其實(shí)就是一個(gè)搜索的過(guò)程,即如何在給定起點(diǎn)及終點(diǎn)的條件下快速搜索出一條滿足期望的最優(yōu)路徑。在代碼實(shí)現(xiàn)上,整個(gè)過(guò)程需要維護(hù)一個(gè)容器(container),具體的操作分為三個(gè)步驟:移除、擴(kuò)展、塞入,以此不停循環(huán),直至搜索到終點(diǎn)。下面介紹幾種最常用的搜索算法。

搜索算法DFS & BFS

了解了圖搜索的基礎(chǔ)之后,接下來(lái)介紹兩種最基礎(chǔ)的搜索算法:深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索(BFS)。深度優(yōu)先顧名思義,從起點(diǎn)開(kāi)始,按照某個(gè)順序一條路走下去,直至不能再繼續(xù)為止,然后回到上一節(jié)點(diǎn),再換另一條路走下去;而廣度優(yōu)先則是每一步都擴(kuò)展同一層的所有可能節(jié)點(diǎn),一層一層擴(kuò)展下去,直到某一層搜索到終點(diǎn)為止。可以看到深度優(yōu)先搜索的過(guò)程是一條路走到底后,最后訪問(wèn)的節(jié)點(diǎn)最先拿來(lái)處理,整個(gè)過(guò)程可以用棧(stack)來(lái)表示,符合“后進(jìn)先出”的原則;而廣度優(yōu)先搜索的過(guò)程是一層中先訪問(wèn)的節(jié)點(diǎn)拿來(lái)處理,可以用隊(duì)列(queue)來(lái)表示,符合“先進(jìn)先出”的原則。

那對(duì)于搜索算法來(lái)說(shuō),哪一種算法好一些呢?可以看下下面這張圖,相同的場(chǎng)景下,BFS可以給出一條最短路徑,而DFS雖然速度很快,但隨機(jī)性很大,無(wú)法給出一條最優(yōu)路徑,這一缺陷使得我們不得不拋棄DFS,目前的主流基于圖搜索的規(guī)劃算法,原理其實(shí)都是基于BFS延伸出來(lái)的。

但是BFS其實(shí)也有一個(gè)很嚴(yán)重的問(wèn)題,就是其遍歷的無(wú)效節(jié)點(diǎn)過(guò)多,從而導(dǎo)致搜索效率太慢,上面左圖中的深灰色格點(diǎn)就展示了在搜索過(guò)程中,所需要訪問(wèn)的節(jié)點(diǎn),可以看出大多數(shù)的訪問(wèn)其實(shí)都是無(wú)用的,不能給最終的搜索提供任何幫助。針對(duì)這一缺陷,就引入了Heuristic Search(啟發(fā)式搜索),即加入終點(diǎn)信息,從而使得搜索的目標(biāo)更明確,避免過(guò)多的無(wú)效搜索。而基于這一改進(jìn)提出的算法就是GBFS(Greedy Breath-First Search)。

BFS和DPS是根據(jù)先入或者后入的順序來(lái)選擇要處理的節(jié)點(diǎn),之中不考慮任何終點(diǎn)相關(guān)的信息,而GBFS則是將與終點(diǎn)的距離考慮進(jìn)來(lái),構(gòu)造一個(gè)規(guī)則來(lái)挑選依次要訪問(wèn)的節(jié)點(diǎn)。與終點(diǎn)的距離有多種形式,最常用的三種為Euclidean Distance、Manhattan Distance以及Diagonal Distance。

舉個(gè)例子,在實(shí)現(xiàn)BFS算法時(shí),上圖中起點(diǎn)周圍的8個(gè)鄰居節(jié)點(diǎn)會(huì)一起存儲(chǔ)進(jìn)容器中,由于右上角的節(jié)點(diǎn)距離終點(diǎn)更近,因此再?gòu)棾鰰r(shí)首先彈出該節(jié)點(diǎn),基于該節(jié)點(diǎn)再進(jìn)行擴(kuò)展,從而加快了搜索效率。從下圖中可以看出,算法過(guò)程中所訪問(wèn)的節(jié)點(diǎn)減少了很多,搜索的目標(biāo)性更加明確,從而極大提升了搜索效率。

Dijkstra算法和A*算法

有了上面的基礎(chǔ),理解路徑規(guī)劃中的Dijkstra和A*算法就很容易了。Dijkstra算法其實(shí)BFS的進(jìn)階版,其可以用于處理帶權(quán)重邊的地圖,因此更適合在實(shí)際場(chǎng)景中使用。在該算法中,通常采用優(yōu)先隊(duì)列(priority queue)來(lái)作為訪問(wèn)容器,這是由于優(yōu)先隊(duì)列(《key, value》這種形式)可以根據(jù)設(shè)定的key值自動(dòng)進(jìn)行排序,在Dijkstra中key值可以設(shè)定為和起點(diǎn)的距離,由于沒(méi)考慮和終點(diǎn)的距離信息,因此還不能顯示出優(yōu)先隊(duì)列的優(yōu)勢(shì),但之后的A*算法里可以看出利用這種結(jié)構(gòu)的方便性。Dijkstra算法的偽代碼如下圖所示:

A*算法和Dijkstra算法的唯一區(qū)別就在于優(yōu)先隊(duì)列中排序的依據(jù)不同,即key值不同。不同于Dijkstra,A*在存儲(chǔ)節(jié)點(diǎn)時(shí),還會(huì)考慮和終點(diǎn)的距離(可以類比GBFS之于BFS),其key值計(jì)算可以表示為:

278f66ee-a4b7-11eb-aece-12bb97331649.png

其中即為Heuristic Function,有了這個(gè)指向信息,A*算法可以更快地找到終點(diǎn),避免了許多的無(wú)效搜索。其偽代碼如下圖所示:

這里我們可以看出優(yōu)先隊(duì)列的優(yōu)勢(shì)了,我們只需要每次計(jì)算的值并將其存儲(chǔ)進(jìn)優(yōu)先隊(duì)列,它就會(huì)自動(dòng)根據(jù)其值進(jìn)行排序,因此每次就可以取出容器的頂部值即為的最小值。在同一場(chǎng)景下,它們的實(shí)際效果如下圖所示,可以看出由于A*避免了許多無(wú)效節(jié)點(diǎn)的訪問(wèn),效率提升很多。 而這又引出了另一個(gè)問(wèn)題,Dijkstra由于無(wú)差別的搜索可以保證最短路徑,A*帶有強(qiáng)指向型的搜索方式,能保證結(jié)果最優(yōu)嗎?這其實(shí)取決于A*的啟發(fā)函數(shù)設(shè)定,為了保證最優(yōu)性,需要保證啟發(fā)函數(shù)是admissible的,即啟發(fā)函數(shù)的值需要小于等于實(shí)際上該點(diǎn)到終點(diǎn)的距離。

27ce5df4-a4b7-11eb-aece-12bb97331649.png

如果啟發(fā)式函數(shù)是admissible的,那么A*的最終搜索結(jié)果就是最優(yōu)的。其實(shí)這也很好理解,因?yàn)槿绻麊l(fā)函數(shù)的選擇實(shí)際上大于到終點(diǎn)的實(shí)際距離,那么依據(jù)該規(guī)則進(jìn)行的排序搜索,必然會(huì)漏掉距離最短的那條路。因此如果我們需要A*給出最短路徑的話,我們可以將啟發(fā)函數(shù)設(shè)定為歐式距離或者對(duì)角距離,而不是曼哈頓距離。

以上就是基于圖搜索的常用路徑規(guī)劃算法介紹,歡迎大家交流指正。

原文標(biāo)題:技術(shù)|自動(dòng)駕駛規(guī)劃算法解析——圖搜索篇

文章出處:【微信公眾號(hào):汽車工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    31536

    瀏覽量

    270352
  • 自動(dòng)駕駛
    +關(guān)注

    關(guān)注

    785

    文章

    13932

    瀏覽量

    167016

原文標(biāo)題:技術(shù)|自動(dòng)駕駛規(guī)劃算法解析——圖搜索篇

文章出處:【微信號(hào):e700_org,微信公眾號(hào):汽車工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    從《自動(dòng)駕駛地圖數(shù)據(jù)規(guī)范》聊高精地圖在自動(dòng)駕駛的重要性

    自動(dòng)駕駛地圖作為L(zhǎng)3級(jí)及以上自動(dòng)駕駛技術(shù)的核心基礎(chǔ)設(shè)施,其重要性隨著智能駕駛技術(shù)的發(fā)展愈發(fā)顯著。《自動(dòng)駕駛地圖數(shù)據(jù)規(guī)范》(DB11/T 2041-2022)由北京市
    的頭像 發(fā)表于 01-05 19:24 ?1732次閱讀
    從《<b class='flag-5'>自動(dòng)駕駛</b>地圖數(shù)據(jù)規(guī)范》聊高精地圖在<b class='flag-5'>自動(dòng)駕駛</b><b class='flag-5'>中</b>的重要性

    【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】2.具身智能機(jī)器人的基礎(chǔ)模塊

    方法和增量搜索方法。 另外,還有基于強(qiáng)化學(xué)習(xí)的自動(dòng)駕駛規(guī)劃等等。 個(gè)人覺(jué)得,這部分內(nèi)容是整個(gè)具身智能的基石,沒(méi)有具身智能的基礎(chǔ)模塊就不會(huì)有具身智能的自主性和智能型。
    發(fā)表于 01-04 19:22

    MEMS技術(shù)在自動(dòng)駕駛汽車的應(yīng)用

    MEMS技術(shù)在自動(dòng)駕駛汽車的應(yīng)用主要體現(xiàn)在傳感器方面,這些傳感器為自動(dòng)駕駛汽車提供了關(guān)鍵的環(huán)境感知和數(shù)據(jù)采集能力。以下是對(duì)MEMS技術(shù)在自動(dòng)駕駛汽車
    的頭像 發(fā)表于 11-20 10:19 ?582次閱讀

    多臺(tái)倉(cāng)儲(chǔ)AGV協(xié)作全局路徑規(guī)劃算法的研究

    多AGV動(dòng)態(tài)路徑規(guī)劃需解決沖突避免,核心在整體協(xié)調(diào)最優(yōu)。規(guī)劃時(shí)考慮道路設(shè)計(jì)、擁堵、最短路徑和交通管制,用A*算法避免重復(fù)
    的頭像 發(fā)表于 10-28 17:38 ?361次閱讀
    多臺(tái)倉(cāng)儲(chǔ)AGV協(xié)作全局<b class='flag-5'>路徑</b><b class='flag-5'>規(guī)劃算法</b>的研究

    智能駕駛自動(dòng)駕駛的關(guān)系

    智能駕駛自動(dòng)駕駛在概念上存在一定的聯(lián)系和區(qū)別,以下是對(duì)兩者關(guān)系的介紹: 一、概念定義 智能駕駛 : 智能駕駛是一個(gè)更為寬泛的概念,它指的是
    的頭像 發(fā)表于 10-23 16:02 ?825次閱讀

    自動(dòng)駕駛HiL測(cè)試方案案例分析--ADS HiL測(cè)試系統(tǒng)#ADAS #自動(dòng)駕駛 #VTHiL

    自動(dòng)駕駛
    北匯信息POLELINK
    發(fā)布于 :2024年10月22日 15:20:19

    自動(dòng)駕駛HiL測(cè)試方案介紹#ADAS #自動(dòng)駕駛 #VTHiL

    自動(dòng)駕駛
    北匯信息POLELINK
    發(fā)布于 :2024年10月12日 18:02:07

    FPGA在自動(dòng)駕駛領(lǐng)域有哪些優(yōu)勢(shì)?

    FPGA(Field-Programmable Gate Array,現(xiàn)場(chǎng)可編程門陣列)在自動(dòng)駕駛領(lǐng)域具有顯著的優(yōu)勢(shì),這些優(yōu)勢(shì)使得FPGA成為自動(dòng)駕駛技術(shù)不可或缺的一部分。以下是FPGA在
    發(fā)表于 07-29 17:11

    FPGA在自動(dòng)駕駛領(lǐng)域有哪些應(yīng)用?

    是FPGA在自動(dòng)駕駛領(lǐng)域的主要應(yīng)用: 一、感知算法加速 圖像處理:自動(dòng)駕駛需要通過(guò)攝像頭獲取并識(shí)別道路信息和行駛環(huán)境,這涉及到大量的圖像處理任務(wù)。FPGA在處理圖像上的運(yùn)算速度快,可
    發(fā)表于 07-29 17:09

    自動(dòng)駕駛識(shí)別技術(shù)有哪些

    自動(dòng)駕駛的識(shí)別技術(shù)是自動(dòng)駕駛系統(tǒng)的重要組成部分,它使車輛能夠感知并理解周圍環(huán)境,從而做出智能決策。自動(dòng)駕駛識(shí)別技術(shù)主要包括多種傳感器及其融合技術(shù),以及基于這些傳感器數(shù)據(jù)的處理和識(shí)別
    的頭像 發(fā)表于 07-23 16:16 ?831次閱讀

    自動(dòng)駕駛的傳感器技術(shù)介紹

    自動(dòng)駕駛的傳感器技術(shù)是自動(dòng)駕駛系統(tǒng)的核心組成部分,它使車輛能夠感知并理解周圍環(huán)境,從而做出智能決策。以下是對(duì)自動(dòng)駕駛傳感器技術(shù)的詳細(xì)介紹,內(nèi)容涵蓋常見(jiàn)類型、工作原理、在
    的頭像 發(fā)表于 07-23 16:08 ?2457次閱讀

    深度學(xué)習(xí)在自動(dòng)駕駛的關(guān)鍵技術(shù)

    隨著人工智能技術(shù)的飛速發(fā)展,自動(dòng)駕駛技術(shù)作為其中的重要分支,正逐漸走向成熟。在自動(dòng)駕駛系統(tǒng),深度學(xué)習(xí)技術(shù)發(fā)揮著至關(guān)重要的作用。它通過(guò)模擬人腦的學(xué)習(xí)過(guò)程,實(shí)現(xiàn)對(duì)車輛周圍環(huán)境的感知、理解和決策。本文將深入探討深度學(xué)習(xí)在
    的頭像 發(fā)表于 07-01 11:40 ?866次閱讀

    未來(lái)已來(lái),多傳感器融合感知是自動(dòng)駕駛破局的關(guān)鍵

    /L4級(jí)自動(dòng)駕駛賽跑的元年。 馬斯克評(píng)論FSD 12.3版本的左轉(zhuǎn)彎操作就像人類司機(jī)一樣。如果FSD 12.3版本成功,將基本顛覆目前市場(chǎng)上的智能駕駛技術(shù)路線。基于“數(shù)據(jù)/算法/算力”的無(wú)人
    發(fā)表于 04-11 10:26

    邊緣計(jì)算與自動(dòng)駕駛系統(tǒng)如何結(jié)合

    當(dāng)前自動(dòng)駕駛,大規(guī)模的人工智能算法模型和大規(guī)模數(shù)據(jù)集中化分析均放在云端進(jìn)行。因?yàn)椋贫藫碛写罅康挠?jì)算資源,可以在極短的時(shí)間內(nèi)完成數(shù)據(jù)的處理,但是僅依靠云端為自動(dòng)駕駛汽車提供服務(wù)在很多
    發(fā)表于 03-25 09:26 ?643次閱讀
    邊緣計(jì)算與<b class='flag-5'>自動(dòng)駕駛</b>系統(tǒng)如何結(jié)合

    自動(dòng)駕駛發(fā)展問(wèn)題及解決方案淺析

    汽車的發(fā)展提供有益的參考。 ? 自動(dòng)駕駛汽車發(fā)展的現(xiàn)狀與挑戰(zhàn) (一)技術(shù)難題 自動(dòng)駕駛汽車的核心在于通過(guò)先進(jìn)的傳感器、算法和控制系統(tǒng)實(shí)現(xiàn)車輛的自主駕駛。然而,在實(shí)際應(yīng)用
    的頭像 發(fā)表于 03-14 08:38 ?1236次閱讀
    金龍娱乐城| 百家乐官网15人桌子| 百家乐真人娱乐平台| 中国百家乐技巧软件| 大发888游戏下载| 叶城县| 百家乐官网平注法到65688| 百家乐投注信用最好的| 太阳城会员| 钻石国际| 百家乐官网经验在哪找| 百家乐官网代理每周返佣| 立即博百家乐官网现金网| 百家乐官网平注法攻略| 什么百家乐官网平注法| 七胜百家乐官网娱乐场| 百家乐官网在线投注顺势法| 网上百家乐官网是真是假天涯论坛 | 风水24龙| 七乐百家乐官网现金网| 大发888登陆网页游戏| 百家乐娱乐城主页| 麻将百家乐官网筹码| 大发扑克下载| 大发888娱乐场 下载| 百家乐官网免费送现金| 龙博百家乐的玩法技巧和规则 | 伯爵百家乐官网娱乐网| 百家乐官网中的小路怎样| 百家乐信誉好的平台| 千亿国际| 百家乐官网出千桌| 百家乐玩法注意事项| 威尼斯人娱乐城信誉好吗| 金沙百家乐官网娱乐城场| 游戏机百家乐庄闲| 廊坊市| 百家乐投注庄闲法| 真钱棋牌游戏| 租房做生意如何注意风水问题| 大发888优惠代码 官网|