1. 程式人生 > >路徑規劃演算法初步認識

路徑規劃演算法初步認識

資料

上面那個論文把uav的路徑規劃分為以下5類:

  • sampling-based algorithms
  • node-based algorithms
  • mathematical model based algorithms
  • Bio-inspired algorithms
  • multi-fusion based algorithms
  • 完備的(complete)(有解是可以求出來的),主要應用於二維三維的grid,多維的計算量就大了
  • 基於取樣的(sampling-based)又稱為概率完備的,(有解不一定能求出來的,可能經過足夠多的取樣可以得到解,是概率上的可能能得到解)

路徑規劃演算法發展的歷程

公開課

RRT(快速隨機搜尋樹)

RRT演算法是RRT演算法的變種演算法,演算法可以收斂到最優解,不僅可以實現二維環境下的路徑規劃,多維度的環境也可以使用RRT演算法,而且由於演算法是均勻取樣,並不會出現區域性最小的情況。

RPM 要先構建roadmap,因此可以多次使用的,graph中的node還可以相互連線的

RRT是直接從start node延增出去的,每個node只有一個parent的,

虛擬碼

- add start node to tree

- repeat n times
    
    - generate a random configuration x
    - if x is a freespace using the `CollisionCheck` function 
        
        find y ,the cloest node in the tree to the random configuraion x

        if (`Dist(x,y) > delta`) -- check if x too far from y
            find a configuration z that is along the path from x to y such that Dist(z,y) <= delta
            x = z

        if (`LocalPlanner(x,y)`) -- check if you can get from x to y .Add x to the tree with y as patent

Artifical potential fields

構造一個函式 = an attractive potential field + a repulsive potential field

= 一個離目標點越近能量越低的函式 + 一個離障礙物越遠能量越低的函式

下面第一張圖是黑色障礙物,第二張圖是attractive potential field ,第三張圖是 repulsive potential field,最後一張是上面兩個的相加得到的最終構造的函式


可能會陷入到local minimum

nbvplanner

ethz 開源的一個路徑規劃演算法庫

需要的是里程計tf座標變換和3d點雲資料,計算下個位置的gain,這個gain也考慮了octomap中格子的概率,考慮的是看到還沒有mapped的格子
,儘可能尋找相應多的格子進行路徑規劃,

程式碼中的mesh_structure.h,對我們的作用不是很大,主要是用於匯入CAD圖紙,不用線上輸入點雲資料,這時候尋找的是看到的surface最多的下一個目標點

tool

工具顯示的第三個維度是概率的大小,視覺化,針對的是moveit這個開源工具,沒有試過別的可不可以

TODO

具體的程式碼下週會寫,寫完再具體寫一寫內容。

相關推薦

路徑規劃演算法初步認識

資料 上面那個論文把uav的路徑規劃分為以下5類: sampling-based algorithms node-based algorithms mathematical model based algorithms Bio-inspired algorithms multi-fusion based

常用的地圖導航和路徑規劃演算法

作者:李傳學 連結:https://www.zhihu.com/question/24870090/answer/73834896 來源:知乎 著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。   明確一點,基本的圖搜尋演算法dijkstra是無法滿足網際網路地圖檢

Field D*路徑規劃演算法

Field D*路徑規劃演算法 1.柵格法路徑規劃存在的問題 2.Filed D*演算法主要思想解析 3.Filed D*演算法虛擬碼 4.演算法優化 5.演算法總結 參考文獻 緊接著上一篇D* Lite路徑規劃演算法

移動機器人D*Lite路徑規劃演算法設計、模擬及原始碼

轉自:https://blog.csdn.net/ayawaya/article/details/70155932 Dstar Lite路徑規劃演算法簡介 D*Lite演算法是Koenig S和Likhachev M基於LPA*演算法基礎上提出的路徑規劃演算法。 LPA

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

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

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

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

ROS中的路徑規劃演算法dijkstra和A*

ROS Navigation包裡面的GlobalPlanner自帶是提供了兩種全域性路徑規劃的方法,dijkstra和A* dijkstra 大家都知道了,A*在之前的一篇部落格裡面有介紹 A* 評估函式 為 f(n) = g(n) + h(n) g(

路徑規劃: PRM 路徑規劃演算法 (Probabilistic Roadmaps 隨機路標圖)

路徑規劃作為機器人完成各種任務的基礎,一直是研究的熱點。研究人員提出了許多規劃方法如: 1. A* 2. Djstar

RRT路徑規劃演算法

%%%%% parameters map=im2bw(imread('map2.bmp')); % input map read from a bmp file. for new maps write the file name here source=[10 10]; % source position

PRM路徑規劃演算法

%% PRM parameters map=im2bw(imread('map1.bmp')); % input map read from a bmp file. for new maps write the file name here source=[10 10]; % source position

AI與遊戲——吃豆人(3)基本的路徑規劃演算法(上)

這次我們來講一下程式碼中涉及的一些路徑規劃演算法,在這個遊戲中,路徑規劃雖然不屬於人工智慧但是確實實現AI演算法不可或缺的基礎方法,下面就來大致介紹一下有哪些主要的方法以及這些方法的實現。 (1)getApproximateNextMoveTowardsTar

路徑規劃:PRM路徑規劃演算法(Probabilistic Roadmap 隨機路標圖)

global_planner: A*、Dijstra、prm、人工勢場、單元分解、快速搜尋樹(RRT)等 local_planner: eband_local_planner、asr_ftc_local_planner、dwa_local_planner、teb_loc

在matlab中實踐採用A*演算法模擬AGV路徑規劃-初步

碼字記錄下 今天下午在寫專利,弄了好幾個小時才折騰出一兩百字,主要是寫了把實施過程說明了遍,因為即使寫好了也很可能趕不上在畢業前通過專利初審,所以想盡量早點寫出一篇小論文發表出來,畢竟光軟著沒有卵說服力,所以轉移方向折騰小論文, 疑問:1、路徑規劃怎麼在matlab中模擬,

圖論動態規劃演算法——Floyd最短路徑

前言 推出一個新系列,《看圖輕鬆理解資料結構和演算法》,主要使用圖片來描述常見的資料結構和演算法,輕鬆閱讀並理解掌握。本系列包括各種堆、各種佇列、各種列表、各種樹、各種圖、各種排序等等幾十篇的樣子。 Floyd演算法 Floyd是一種經典的多源最短路徑演算法,它通過動態規劃的思想來尋找給定加權圖中的多源

手把手教用matlab做無人駕駛(二)-路徑規劃A*演算法

對於路徑規劃演算法-A*演算法在matlab中模擬,首先我們在matlab中構建地圖: 先給出matlab主函式程式: % editor: Robert.Cao % 2018.9.1 clc clear all close all disp('A Star

Dijkstra演算法(D演算法)實現路徑搜尋matlab GUI 實現 路徑規劃

Dijkstra(迪傑斯特拉)演算法是典型的單源最短路徑演算法,用於計算一個節點到其他所有節點的最短路徑。主要特點是以起始點為中心向外層層擴充套件,直到擴充套件到終點為止。Dijkstra演算法是很有代表性的最短路徑演算法,在很多專業課程中都作為基本內容有詳細的介紹,如資料結

手把手教用matlab做無人駕駛(三)-路徑規劃A*演算法

這裡,我們更新主程式如下: % editor: Robert.Cao % 2018.9.1 clc clear all close all disp('A Star Path Planing start!!') p.start=[1,1]; %起始點 p.goa

路徑規劃Dijkstra演算法

Dijkstra搜尋最短路徑: 整體思路 從起始節點開始,將鄰域節點進行遍歷,標註好鄰域節點最小的累計路徑長度,直到遍歷到終止節點。 演算法複雜度 naive的方式,演算法複雜度為O(|V|2),其中|V|是節點數量 聰明的方式,使用優先佇

從一個小例子來初步認識遞迴,迭代,動態規劃

問題:有n步臺階,一次只能上1步或者2步,共有多少種走法? 思路: a 遞迴 步驟1:找到走完前n步臺階和前n-1步臺階之間的關係。 為了走上n步臺階,只有兩種方法:從n-1步臺階爬1步走到或從n-2步臺階處爬兩步走到。如果f(n)是爬到第n臺階的方法數,則f(n) = f

路徑規劃(最短路徑演算法C#實現

    ///<summary>/// RoutePlanner 提供圖演算法中常用的路徑規劃功能。     /// 2005.09.06     ///</summary>publicclass RoutePlanner     {         public RoutePlan