【Matlab路径规划】蚁群算法机器人大规模栅格地图最短路径规划【含源码 1860期】
一、代碼運行視頻(嗶哩嗶哩)
【Matlab路徑規(guī)劃】蟻群算法機器人大規(guī)模柵格地圖最短路徑規(guī)劃【含源碼 1860期】
二、蟻群算法及柵格地圖簡介
隨著機器人技術(shù)在諸多領域的應用, 如機器人協(xié)作焊接、災后搜救、軍事、太空探索、深??碧?、家用和服務行業(yè)等, 機器人的發(fā)展正向智能化方向延伸, 要求其具有自組織、自學習、自適應等能力.機器人路徑規(guī)劃是指機器人從初始位置按某種法則避開障礙物、無碰撞地到達目標位置.目前國內(nèi)外對路徑規(guī)劃的研究應用較多的方法主要有:人工勢場法、概率路徑圖法[3]、可視圖法、柵格法、神經(jīng)網(wǎng)絡算法、遺傳算法、粒子群算法、蟻群算法.
柵格法是將機器人的搜索空間分解成若干個規(guī)格相等單元, 將復雜的環(huán)境問題分解成簡單問題, 適用于靜態(tài)環(huán)境的路徑規(guī)劃, 且算法計算量小, 便于實現(xiàn), 但在復雜的環(huán)境中, 易使規(guī)劃時間延長, 系統(tǒng)的實時性不夠.蟻群算法是一種新型的仿生算法, 以螞蟻覓食為模型, 通過前代螞蟻在走過的路徑上遺留信息素的強弱選擇路徑.該算法有較好的正反饋性、并行性及魯棒性;但當遇到復雜問題時, 會導致搜索時間長、陷入局部最優(yōu)、停滯和死鎖等情況.因此, 結(jié)合柵格法和蟻群算法的優(yōu)缺點, 將柵格法與蟻群算法相結(jié)合進行路徑規(guī)劃, 先建立柵格地圖, 再利用蟻群算法進行全局搜索, 可提高算法性能.
1 柵格模型建立
1.1 柵格法應用于路徑規(guī)劃的簡介
柵格法是由W.E.Howden于1968年提出, 主要是根據(jù)環(huán)境建立一個路徑柵格地圖 (map) .基本原理是將機器人工作環(huán)境分割成無數(shù)細小的具有二值信息的網(wǎng)格單元, 每個網(wǎng)格的規(guī)格由機器人的步長決定, 即一個步長代表一個網(wǎng)格大小.在進行網(wǎng)格劃分時, 無論是障礙物柵格還是非障礙物柵格不滿一個時, 將其填滿, 按一個柵格計算.
環(huán)境信息由黑白網(wǎng)格表示.黑色網(wǎng)格代表障礙物 (barrier) , 表示不可行區(qū)域;白色網(wǎng)格代表可通行區(qū)域, 又稱自由區(qū)域.柵格法將不可行區(qū)域和自由區(qū)域用一個二進制矩陣表示, 矩陣中1代表障礙物, 0代表自由柵格, 由此在環(huán)境中建立一個可描述環(huán)境的路徑規(guī)劃地圖.
1.2 柵格地圖的建立
假設SP為機器人在二維空間中的一個規(guī)則的凸多邊形運動場地, 將場地分解成M×N個柵格, 由自由柵格和障礙物柵格組成, 其運動方式主要為八叉樹型形式.自由柵格的集合P={P1, P2, …, Pm}, 障礙物柵格的集合B={B1, B2, …, Bn}, 設A為機器人工作場地的柵格集合, 其表達式為A=P∪B.
本文根據(jù)實驗場地建立一個10×10柵格地圖, 如圖1所示.圖中柵格的序號集合C={1, 2, 3, …, 100}.假設1號位為初始位置Gstart, 100號位為目標位置Ggoal, 機器人從初始位置通過n次迭代搜索找到最優(yōu)路徑, 其中初始位置Gstart∈A且, 目標位置Ggoal∈A且, 規(guī)定初始位置與目標位置不重合, 在進行路徑搜索時主要以八叉樹型形式搜索.
2 蟻群算法的路徑規(guī)劃問題描述
2.1 基本蟻群算法的描述
蟻群算法是一種模仿蟻群覓食的仿生學算法, 其基本原理是將每臺機器人看作螞蟻群體中的一只螞蟻.螞蟻在進行路徑搜索時通過蟻群在路徑上遺留的信息素強度, 向其它螞蟻傳遞信息, 實現(xiàn)機器人之間的信息交換.通常情況下路徑是未知的, 螞蟻在選擇路徑時一般根據(jù)概率Pkij (t) 隨機選擇.
其中:α為啟發(fā)式因子;β是期望啟發(fā)式因子;τij為機器人k從位置i到位置j這段路徑上所留信息素強度;allowedk表示機器人未訪問過的柵格的集合;ηij (t) 為啟發(fā)式函數(shù), 啟發(fā)式函數(shù)的大小與i、j之間的距離有關, dij值越小, i, j之間的關系越親密, 反之則疏遠, 其表達式為
式中 (xi, yi) 為點的位置坐標, (xj, yj) 為點的位置坐標.
2.2 螞蟻信息素更新
機器人在路徑搜索的過程中會在路徑上留下新的信息素, 隨著時間推移留在路徑上的信息素強度不斷增加, 為避免在搜索路徑上殘留的信息素過多而淹沒啟發(fā)式信息, 因此, 當螞蟻完成一次搜索時, 對所有路徑上的信息素進行一次更新, 其表達式為
其中:1-ρ表示信息素殘留因子, ρ表示信息素揮發(fā)系數(shù);Δτij (t) 表示螞蟻在本次循環(huán)中路徑 (i, j) 上的信息素增量, Δτkij (t) 表示第k只螞蟻經(jīng)過路徑 (i, j) 時在本次循環(huán)中的信息素增加量.根據(jù)信息素規(guī)則, 選擇蟻周 (ant-cycle) 模型作為螞蟻信息素更新模型.
式中, Q表示信息素強度, Lk表示第k只螞蟻在本次循環(huán)中所有路徑的總長度.
三、matlab版本及參考文獻
1 matlab版本
2019b
2 參考文獻
[1] 周東健,張興國,馬海波,李成浩,郭旭.基于柵格地圖-蟻群算法的機器人最優(yōu)路徑規(guī)劃[J].南通大學學報(自然科學版). 2013,12(04)
3 備注
簡介此部分摘自互聯(lián)網(wǎng),僅供參考,若侵權(quán),聯(lián)系刪除
總結(jié)
以上是生活随笔為你收集整理的【Matlab路径规划】蚁群算法机器人大规模栅格地图最短路径规划【含源码 1860期】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平衡电桥
- 下一篇: ESP32(arduino)和声音传感器