RRT與PRM一樣,也是概率完備且不最優的。概率完備是指只要解存在就一定能在某一時刻找到。但解不一定是最優的。RRT與PRM相比,有一個優勢就是,它在構建圖的過程中就在尋找路徑。
RRT的主要算法流程
RRT的優劣分析
優勢:
- 相對於PRM更具有目標導向,它在構建圖的過程中就在尋找路徑。
- 無需對系統進行建模,無需對搜索區域進行幾何劃分,在搜索空間的覆蓋率高,搜索的範圍廣,可以儘可能的探索未知區域。
劣勢:
- RRT得到的路徑往往不是最優的。有比較大的優化空間。
- RRT是在整個地圖空間中隨機採樣點,這樣全範圍的採樣往往效率不高。可以考慮啓發式的採樣,讓採樣的點更具有目標導向。
- 在狹窄的通道里不易獲得採樣點。所以有時無法通過狹窄通道。
在RRT上的改進
Bidirectional-RRT/RRT-Connect
算法流程:
關於雙向RRT的介紹來源於:https://www.cnblogs.com/21207-iHome/p/7210543.html
RRT*
RRT* 完全繼承了RRT的特性,並在其基礎上擴展了兩個新的特性。正是由於新特性的加入,RRT* 可以生成更優的路徑。同時由於算法步驟的增加和collision check的增加,計算消耗也增加了。
下面是RRT* 的算法流程:
其實整個RRT* 算法可以分爲三個大的部分。第一部分是繼承至RRT的。這一部分和RRT是一樣的,就是尋找到和。這一過程就是僞代碼中的4,5,6步驟。
near neighbor search
在這一步驟中,我們要爲新得到的找一個合適的父節點。思路是,以爲圓心,以固定的半徑畫圓。落在該圓範圍內的節點就是潛在的父節點。我們將與每個鄰近的節點相連(如下圖節點、),計算通過哪個鄰近節點到達的cost最小。注意,這裏的cost一般是指路徑長度。
最終我們會發現,通過到達路徑最短。這時就會設置成的父節點。
rewiring tree operations
到這一步時,已經和建立了連接,形成了一條新的邊。這時我們要考慮a節點和b節點通過到達路徑會短一點嗎?從我畫的圖直觀來看a節點和b節點原來的連接似乎使得路徑更短。所以可以保留其原來的連接,不進行更改。
爲了說明這一步驟的功能,我們做一個假設。我認爲b節點通過到達路徑會短一點,即紅色路徑比黑色路徑短。這時會發生什麼? a節點和b節點間的連接會斷開,b節點會將自己的父節點改爲。
通過不斷迭代上述步驟,RRT*會逐漸生成越來越短的路徑。
RRT algorithm illustrative example
https://blog.csdn.net/ljq31446/article/details/78867011
A Comparison of RRT, RRT* and RRT*-Smart Path Planning Algorithms
Informed RRT*
在尋找到第一條可行的路徑前,Informed RRT* 所做的工作與RRT* 是一樣的。不同之處在於,Informed RRT* 使用初始路徑的長度來畫一個以起始點和終止點爲焦點的橢圓。
隨着迭代的進行,路徑會越來越短。橢圓的面積也越來越小。因爲採樣點的區域被限定了,採樣效率更高。收斂到最優路徑花的時間也更少。
下圖是RRT* 和Informed RRT* 的效果圖。可以看到Informed RRT* 只在限定的橢圓內優化路徑。當路徑優化到相同的cost時,RRT* 比Informed RRT* 多花了8倍多的時間。
informed
論文:
Informed RRT*: Optimal sampling-based path planning focused via direct sampling of an admissible ell