Hybrid Astar 算法剖析和实现(一)
在學習資料滿天飛的大環境下,知識變得非常零散,體系化的知識并不多,這就導致很多人每天都努力學習到感動自己,最終卻收效甚微,甚至放棄學習。我的使命就是過濾掉大量的無效信息,將知識體系化,以短平快的方式直達問題本質,把大家從大海撈針的痛苦中解脫出來。
文章目錄
- 0 前言
- 1 什么是Hybrid Astar算法
- 2 Hybrid Astar算法有什么用
- 3 算法的核心思想
- 4 算法的重要組成部分
- 5 總結
0 前言
網絡上講Astar算法的很多,但講Hybrid Astar算法的相對來說很少,而且基本上都停留在理論層面,很少結合代碼來講。本篇/系列文章旨在幫助新接觸該算法的同學能夠從理論到代碼徹底吃透該算法,并應用到自己的項目中去。
1 什么是Hybrid Astar算法
Hybrid Astar是Astar算法的擴展。或者可以理解為Astar算法在自動駕駛領域應用的定制版。因為整體的搜索框架(思想)大體是一致的,只不過對每個模塊的內部實現做了調整。比如,Astar算法子節點擴張的方向比較固定(4方向或8方向),Hybrid Astar則改造成符合車輛運動學的擴張方式。再比如,Astar算法的啟發函數直接使用曼哈頓距離,而Hybrid Astar則使用符合車輛運動學的R-S曲線和無碰撞路徑的最大值來作為啟發函數。
簡單理解就是,Hybrid Astar是適合車輛進行搜索的Astar算法的高端定制版。
Tips:沒有接觸過Astar算法的可以先看一下這個鏈接Introduction to the A* Algorithm (redblobgames.com)。等做完Hybrid Astar系列,回頭再把Dijkstra算法和Astar算法的剖析補上。
2 Hybrid Astar算法有什么用
該算法主要被應用在自動駕駛領域的下面幾個場景:
- APA(輔助泊車)
- AVP(代客泊車)
- U-Turn(行車場景下的車輛掉頭)
3 算法的核心思想
個人認為Hybrid Astar算法的核心思想和Astar是一樣的:
- 使用局部最優逼近全局最優。
- 連續問題離散化,以便可以迭代計算。
其實大部分的優化算法都是這樣一個思路。當然Hybrid Astar會有自己的一些特點,每個特點的背后肯定也蘊含著精妙的設計思想,我們后面會逐個剖析。
4 算法的重要組成部分
Hybrid Astar算法主要包括下面幾個要素:
- 狀態節點
- 狀態空間柵格
- 迭代搜索
- 節點拓展
- 碰撞檢測
- 代價計算-g
- 代價計算-h
Astar算法也包含上述幾個要素(七龍珠),但Hybrid Astar將每個要素都進行了升級或者說是定制。
5 總結
本篇主要介紹了一下Hybrid Astar算法的概貌,和重要組成部分,后文我們會將這幾個要素一一攻克。
恭喜你又堅持看完了一篇博客,又進步了一點點!如果感覺還不錯就點個贊再走吧,你的點贊和關注將是我持續輸出的噠噠噠動力~~
總結
以上是生活随笔為你收集整理的Hybrid Astar 算法剖析和实现(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: itextpdf paragraph使用
- 下一篇: 一文带你完全掌握机器人DH参数建模(详细