1. 程式人生 > >路徑規劃方法之-隨機路徑圖法(PRM)

路徑規劃方法之-隨機路徑圖法(PRM)

隨機路徑圖法(PRM)

1. 介紹

    隨機路徑圖法由Lydia E. 等人在1996年提出,它的優點在於:

    1)克服了以往一些路徑規劃方法易於陷入區域性極小的缺點
    2)可應用於多自由度的機器人的路徑規劃中
    3)計算量小

    主要的應用背景有:

    1)核反應工廠冷卻管的維護
    2)汽車裝配時點對點的焊接
    3)飛機機身的清理
    4)飛機引擎維護時拆解行為規劃

    用隨機路徑圖(PRM)法尋找給定地圖中兩點之間的路徑,PRM進行路徑規劃的步驟:

    學習階段:在給定圖的自由空間裡隨機撒點(自定義個數),構建一個路徑網路圖。
    查詢階段:

查詢從一個起點到一個終點的路徑。
    

2. PRM學習階段

    PRM學習階段包含兩部分內容:
    A. 構造無向路徑網路圖R=(N,E),其中N代表隨機點集,E代表所有可能的兩點之間的路徑集。

        構造過程的虛擬碼如下:
    具體考慮以下四個問題:
    1)怎樣隨機撒點?(虛擬碼第(4)步)
          a. 必須是自由空間裡的隨機點
          b. 每個點都要確保機器人與障礙物無碰撞
    2)怎麼構造區域規劃器,連線兩點?(虛擬碼第(8))
          a. 保證區域規劃器的確定性和快速性
          b. 均衡單次呼叫的時間和總的呼叫次數
          c. 離散化區域性路徑,進行防撞檢查
    3)通過什麼規則來選取鄰域點?(虛擬碼第(5)步)
          a. 領域點的距離在一定範圍

          b. 領域點的個數有上限
    4)如何選擇距離函式D(虛擬碼第(7)步)
          a. D(c,n)被定義為:                                              B. 擴充難於連線區域的點
    該部分內容旨在找出那些在“困難”區域的點,並且擴充這一區域點的個數。通過給每個點引入權重係數w(c)來決定那些區域需要增加點。
    啟發式的權重選擇法:
        I. w(c)與一定半徑範圍內鄰點的個數成反比
        II. w(c)與最近的沒有和c相連點的距離成反比
        III. 區域性規劃器與c點連線失敗的概率成正比
        Lydia E.的文章中使用了第3種啟發式的演算法:               前一個公式是計算區域性區域規劃器連線點c時失敗的概率,n(c)是試圖連線c的總次數,f(c)是失敗的次數,如果c與n連線失敗,那麼c和n的連線失敗次數都要加一。     構造路徑圖步驟時間一般佔學習階段總時間的2/3,而擴充點步驟一般佔總時間的1/3。

3. PRM查詢階段

    學習階段已經構造了無向路徑網路圖R=(N,E),進入查詢階段時只需根據設定的起點s和終點g,選擇合適的路徑,具體過程如下:
    1)將s和g點與路徑網路中的兩個點x,y分別連線
    2)尋找無向路徑網路圖中x與y連線的路徑,這樣就可以將起點和終點連線起來,構成全域性路徑。
    3)得到全域性路徑後,可以使用平滑的方法尋找捷徑,優化路徑。
    主要的難點在於尋找s到x的路徑,g到y點的路徑。採用區域性規劃器和距離函式D結合的方法尋找。如果失敗了,就採用random-bounce行走的方法尋找連線路徑。

    可參照MathWorks官網中ROS系統下的路徑規劃瞭解其MATLAB程式碼的實現。


參考文獻:

[1] L.E. Kavraki, P. Svestka, J.-C. Latombe, M.H. Overmars, "Probabilistic roadmaps for path planning in high-dimensional configuration spaces," IEEE Transactions on Robotics and Automation, vol. 12, no. 4, pp. 566-580, Aug 1996.

[2] http://cn.mathworks.com/help/robotics/examples/path-planning-in-environments-of-different-complexity.html

相關推薦

路徑規劃方法-隨機路徑PRM

隨機路徑圖法(PRM) 1. 介紹     隨機路徑圖法由Lydia E. 等人在1996年提出,它的優點在於:     1)克服了以往一些路徑規劃方法易於陷入區域性極小的缺點     2)可應用於多

機器人自主移動的秘密:SLAM與路徑規劃有什麽關系?

針對 left 很多 -s 人在 比較 www. 全局 有時 博客轉載自:https://www.leiphone.com/news/201612/lvDXqY82OGNqEiyl.html 雷鋒網(公眾號:雷鋒網)按:本文作者SLAMTEC(思嵐科技公號slamtec-s

決策樹模型組合隨機森林與GBDT

get 9.png 生成 代碼 margin ast decision 損失函數 固定 版權聲明: 本文由LeftNotEasy發布於http://leftnoteasy.cnblogs.com, 本文可以被全部的轉載或者部分使用,但請註明出處,如果有問題,請

極化碼tal-vardy算1

及其 討論 調用 指定 n) 十分 深入 alt 根據   繼前兩節我們分別探討了極化碼的編碼,以及深入到高斯信道探討高斯近似法之後,我們來關註一個非常重要的極化碼構造算法。這個算法並沒有一個明確的名詞,因此我們以兩位發明者的名字將其命名為“Tal-Vardy算法”。   

Java基礎-IO流對象隨機訪問文件RandomAccessFile

str 文件的 指向 poi mod 指針 println span www.             Java基礎-IO流對象之隨機訪問文件(RandomAccessFile)                                       作者:尹正傑 版權

【matlab】MarkDown Letex 編碼 隨機過程及應用

**Provement of Gaussian Distribution:** 設正態分佈概率密度函式是 $$f(x)=\frac{1}{\sqrt{2π}\sigma}*e^{\

spark mllib原始碼分析隨機森林(Random Forest)

4. 特徵處理 這部分主要在DecisionTree.scala的findSplitsBins函式,將所有特徵封裝成Split,然後裝箱Bin。首先對split和bin的結構進行說明 4.1. 資料結構 4.1.1. Split cl

百度地圖js 畫執行軌跡加黑色

在百度地圖展示執行軌跡的時候,有時候想要加一個灰濛濛的圖層展示,像是以黑色主題為主,顯的高大上些,實現方式如下: 在js呼叫如下: this.layoutMap(mapInit); // mapI

spark mllib原始碼分析隨機森林(Random Forest)

6. 隨機森林訓練 6.1. 資料結構 6.1.1. Node 樹中的每個節點是一個Node結構 class Node @Since("1.2.0") ( @Since("1.0.0") val id: Int, @S

降維主成分分析PCA

image lambda 展示 auto 有一個 多點 方便 系列 9.png 一、主成分分析法的思想 我們在研究某些問題時,需要處理帶有很多變量的數據,比如研究房價的影響因素,需要考慮的變量有物價水平、土地價格、利率、就業率、城市化率等。變量和數據很多,但是可能存在噪

淺談路徑規劃演算法Dijkstra演算法

 迪傑斯特拉(dijkstra)演算法是典型的用來解決最短路徑的演算法,也是很多教程中的範例,由荷蘭電腦科學家狄克斯特拉於1959年提出,用來求得從起始點到其他所有點最短路徑。該演算法採用了貪心的思想,每次都查詢與該點距離最的點,也因為這樣,它不能用來解決存在負權邊的圖。解

路徑規劃演算法Bellman-Ford演算法

最近由於工作需要一直在研究Bellman-Ford演算法,這也是我第一次用C++編寫程式碼。 1、Bellman-Ford演算法總結 (1)Bellman-Ford演算法計算從源點(起始點)到任意一點的最短路徑的長度,初始化陣列m_Dist[m_Segment[i].m_StartPoint] = m_M

poj 1273 最大流最短路徑增廣EK

Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 71182 Accepted: 27694 Description Every time it rains

最短路徑-Dijkstra算轉載

ges 圖論 測試 log logs 表示 保存 依次 路徑 註意:以下代碼 只是描述思路,沒有測試過!! Dijkstra算法 1.定義概覽 Dijkstra(迪傑斯特拉)算法是典型的單源最短路徑算法,用於計算一個節點到其他所有節點的最短路徑。主要特點是以起始點為中心

最短路徑-Floyd算轉載

進一步 數字 sdn 進行 無法 .net %d data scanf 暑假,小哼準備去一些城市旅遊。有些城市之間有公路,有些城市之間則沒有,如下圖。為了節省經費以及方便計劃旅程,小哼希望在出發之前知道任意兩個城市之前的最短路程。 上圖

Java大數據位無重復排序,重復排序,去重復排序,數據壓縮

align system 容器類 底層 修改 歸並排序 概念 ppr long 大數據位圖法(無重復排序,重復排序,去重復排序,數據壓縮)之Java實現 位圖法介紹 位圖的基本概念是用一個位(bit)來標記某個數據的存放狀態,由於采用了位為單位來存放數據,所以節

最短路徑 ——求出路徑長度 (*^__^*) 嘻嘻……

沒有 str -1 man 最大 連線 問題 輸入 sha 【問題描述】: 平面上有n(n<=100)個點,每個點的坐標均在-10000~10000之間。 其中的一些點之間有連線。若有連線,則表示可以從一個點到

——基本的演算法關鍵路徑

圖——基本的圖演算法(四)關鍵路徑 1. 基本概念 (1)AOV網(Activity On Vertex Network) AOV網是一個表示工程的有向圖中,其中的頂點用來表示活動,弧則用來表示活動之間的優先關係。舉個簡單的例子,假定起床後可以邊煮水,邊刷牙洗臉,但洗臉要在刷牙後

相關的鄰接矩陣表示C++及最短路徑演算法

一.Dijikstra演算法 注意:計算最短路徑時,需要把鄰接矩陣中沒有邊的位置初始化為無窮大;此處以INF表示,INF可以取0x3f3f3f3f,不能直接設為INT_MAX(因為做加法時會上溢)。 測試用圖: 其鄰接矩陣表示為: vector<vector<int

軟體測試方法正交試驗生成測試用例工具PICT

PICT:基於正交法的軟體測試用例生成工具 成對組合覆蓋這一概念是Mandl於1985年在測試Aad編譯程式時提出來的。Cohen等人應用成對組合覆蓋測試技術對Unix中的“Sort”命令進行了測試。測試結果表明覆蓋率高達90%以上。可見成對組合覆蓋是一種非常有效的測試用例設計方法。 成對組