基於先驗完全信息的全局路徑規划
局部路徑規划 - http://blog.csdn.net/birdy_/article/details/77453638
姿態空間離散
行車圖法:在自由空間中構建連通網絡
在圖中用直線連接所有特定點,刪除會發生碰撞的,在余下的路線中求出合理的解
根據生成點的方式不同可以分為
可視圖法
所有障礙物的頂點
Voronoi diagram
障礙物之間的中間點
http://www.cnblogs.com/Seiyagoo/p/3339886.html
這個沒想明白因為不知道對於點到障礙物的距離是怎么確定的,而且只管感覺運算量非常大
隨機投點法
隨機在可運行范圍內投點
投點數量需要根據情況確定
http://blog.csdn.net/leo_xu06/article/details/51222760
http://cn.mathworks.com/help/robotics/examples/path-planning-in-environments-of-different-complexity.html?requestedDomain=cn.mathworks.com
單元分解法
區分空閑單元和被占單元
精確單元分解
近似單元分解
柵格表示法
四叉樹表示法
勢場法
對空間施加虛擬力
目標點對移動機器人產生“引力”,障礙物對移動機器人產生“斥力”,最后通過求合力來控制移動機器人的運動
路徑規划
精確算法:生成精確的最優解
– 深度優先法、廣度優先法(也稱為Dijkstra算法)
近似算法
– 啟發式搜索算法:
• A*, D*, Focused D*等
– 准啟發式搜索算法:
(尷尬的是這一塊的基礎示例基本都是TSP)
模擬退火SA
http://www.cnblogs.com/ranjiewen/p/6084052.html
了解可以這個,C++代碼
http://blog.csdn.net/yelbosh/article/details/8558020
matlab代碼,不過問題闡述有點亂
遺傳算法
http://www.cnblogs.com/heaad/archive/2010/12/23/1914725.html
碼是C#(= =)
蟻群算法ACO
http://blog.csdn.net/lyp2003ok/article/details/3706247
這份代碼的注釋有一些不明確的地方但思路上有蠻多可以借鑒的(又是TSP)
這里的啟發式體現着在一個是查找下一個距離的時候概率分布會按照距離和信息素的量,另一個是更新信息素的時候信息素的量與目標函數(距離)有關。
如果用在柵格化的地圖上是不是還會與所花時間有關。路程越短就是時間越短,信息素更新速度越快。
粒子群優化算法PSO
http://www.cnblogs.com/maybe2030/p/5043356.html
借助一個TSP算法給出了分析和matlab代碼
這里的操作是:
- 與個體最優進行交叉
- 與全體最優進行交叉
- 變異操作
第一反應是這和遺傳的基本概念差不多(交叉、變異),就是對象差別(一個是和最優情況,一個是和種群內其他個體,是否有記憶),也算是對TSP一種新的理解吧(不過感覺最合適PSO的應該還是在連續性的問題上?也從有人對PSO的定義里感覺這個例子的交叉和變異不能完全和PSO的情況等同)。
http://www.cnblogs.com/tiandsp/p/3157483.html
這個例子(求最值)比符合對PSO的認知
路徑成本的計算
• 歐式距離(2-norm距離)
• 曼哈頓距離(Manhattan distance, Block
distance, 1-norm距離,L1 distance)
• 切比雪夫距離(Chebychev distance, infinity
norm距離)
• 明可夫斯基距離(Minkowski距離)
http://blog.csdn.net/shiwei408/article/details/7602324