一種基于改進(jìn)蟻群算法的泊車系統(tǒng)路徑規(guī)劃方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于AGV路徑規(guī)劃技術(shù)領(lǐng)域,具體涉及一種基于改進(jìn)蟻群算法的泊車系統(tǒng) 路徑規(guī)劃方法。
【背景技術(shù)】
[0002] 進(jìn)入21世紀(jì)以來,我國(guó)汽車工業(yè)和汽車消費(fèi)市場(chǎng)得到迅猛的發(fā)展,私家車不再是 普通人民生活中的奢侈品,轉(zhuǎn)而逐漸走進(jìn)人們的日常生活,人均擁有汽車的數(shù)量在逐年的 上升,以家庭為單位的私人汽車保有量持續(xù)顯著增長(zhǎng),從而導(dǎo)致一些城市,已經(jīng)車多為患, 停車設(shè)備嚴(yán)重不足。
[0003] 為了解決停車問題,現(xiàn)加大了停車場(chǎng)的建造,停車場(chǎng)的建造分為以下兩種:傳統(tǒng)平 面車庫(kù)和機(jī)械式車庫(kù);傳統(tǒng)平面車庫(kù)占地面積過大,在寸土寸金的城市里,通過大量建造平 面車庫(kù)來解決停車問題是不現(xiàn)實(shí)的;機(jī)械式車庫(kù)能夠有效合理的利用空間面積,實(shí)現(xiàn)在同 一空間,停多輛車,能夠在一定程度上減緩?fù)\噯栴},但是,機(jī)械式車庫(kù)必須有人操作使用, 設(shè)備結(jié)構(gòu)復(fù)雜,沒有完善的閉鎖和監(jiān)測(cè)系統(tǒng),故障率高,取車也較為麻煩,實(shí)用性差?;诂F(xiàn) 有車庫(kù)存在的問題,現(xiàn)提出一種基于AGV的平面移動(dòng)式智能停車庫(kù),研究基于AGV的平面移 動(dòng)式智能停車庫(kù)的關(guān)鍵問題就在于解決AGV的路徑規(guī)劃。
[0004] AGV路徑規(guī)劃是提高小車運(yùn)行效率和體現(xiàn)小車"智能化"的關(guān)鍵問題,針對(duì)AGV路徑 規(guī)劃提出的常見算法有A*算法、動(dòng)態(tài)規(guī)劃法、Voronoi圖算法、Di jkstra算法和蟻群算法;A* 算法算法簡(jiǎn)單,容易實(shí)現(xiàn),但啟發(fā)函數(shù)的選取限制了解的全局最優(yōu)性;動(dòng)態(tài)規(guī)劃法可以得到 問題的最優(yōu)解,但具有維數(shù)爆炸的特性;Voronoi圖算法一般應(yīng)用于低維數(shù)路徑規(guī)劃中; D i j k s t r a算法是從一個(gè)頂點(diǎn)到其余各頂點(diǎn)的最短路徑算法,解決的是有向圖中最短路徑問 題,Dijkstra算法主要特點(diǎn)是以起始點(diǎn)為中心向外層擴(kuò)展,直到擴(kuò)展到終點(diǎn)為止,所以得到 的最短路徑的成功率高,魯棒性好;蟻群算法的想法來自于對(duì)蟻群覓食行為的探索,每只螞 蟻覓食時(shí)都會(huì)在走過的道路上留下一定濃度的信息素,相同時(shí)間內(nèi)最短的路徑上由于螞蟻 遍歷的次數(shù)多而信息素濃度高,起到了正反饋的作用,因此信息素濃度高的最短路徑很快 就被發(fā)現(xiàn),算法通過迭代來模擬蟻群覓食的行為達(dá)到目的,具有良好的全局優(yōu)化能力,本質(zhì) 上的并行性,易于用計(jì)算機(jī)實(shí)現(xiàn)等優(yōu)點(diǎn)。為了解決智能停車庫(kù)AGV路徑規(guī)劃問題,增強(qiáng)算法 全局搜索能力,加快算法收斂速度,縮短搜索路徑長(zhǎng)度,改善搜索路徑質(zhì)量,現(xiàn)提出一種基 于蟻群算法的泊車系統(tǒng)路徑規(guī)劃方法。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于研究基于AGV的平面移動(dòng)式智能停車庫(kù),現(xiàn)提供一種占地面積 小、有效停車量大并且實(shí)現(xiàn)無人自動(dòng)存取、智能化程度高的基于改進(jìn)蟻群算法的泊車系統(tǒng) 路徑規(guī)劃方法。
[0006] 為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案是:一種基于改進(jìn)蟻群算法的泊車系統(tǒng)路徑 規(guī)劃方法,其創(chuàng)新點(diǎn)在于:首先利用鏈接可視圖法創(chuàng)建AGV運(yùn)行環(huán)境模型,然后基于 Di jkstra算法規(guī)劃出一條AGV從起點(diǎn)至終點(diǎn)的初始路徑,在此基礎(chǔ)上通過引入節(jié)點(diǎn)隨機(jī)選 擇機(jī)制、最大最小螞蟻系統(tǒng)以及變更信息素更新方式對(duì)基本蟻群算法進(jìn)行了優(yōu)化改進(jìn),最 后選用改進(jìn)蟻群算法對(duì)初始路徑進(jìn)行優(yōu)化,完成了泊車系統(tǒng)路徑規(guī)劃方法。
[0007] 進(jìn)一步的,所述利用鏈接可視圖法創(chuàng)建AGV運(yùn)行環(huán)境模型,具體步驟如下: (1) 對(duì)AGV運(yùn)行環(huán)境進(jìn)行處理; (2) 利用AGV自帶的攝像頭、雷達(dá)傳感器以及紅外線傳感器等設(shè)備采集AGV運(yùn)行環(huán)境信 息,所述信息包括AGV的起始車位、目標(biāo)車位、障礙物以及AGV待充電位置信息,并通過鏈接 可視圖法創(chuàng)建AGV運(yùn)行環(huán)境模型; (3) 確定各自由鏈接線上的中點(diǎn)坐標(biāo),以起點(diǎn)、終點(diǎn)及各鏈接線上的中點(diǎn)為基準(zhǔn),描繪 出AGV的可行路徑線。
[0008] 進(jìn)一步的,所述步驟(1)中的對(duì)AGV運(yùn)行環(huán)境進(jìn)行處理,包括如下處理:a、AGV運(yùn)行 環(huán)境為二維有限空間;b、圖中障礙物已知,位置確定,以不規(guī)則多邊形表示,且忽略其高度 方向;c、AGV在運(yùn)行環(huán)境中勻速行駛,忽略AGV的啟動(dòng)、轉(zhuǎn)向、制動(dòng)以及液壓系統(tǒng)的舉升操作 等因素;d、以AGV實(shí)際尺寸為基準(zhǔn),適當(dāng)擴(kuò)大障礙范圍,將AGV視為質(zhì)點(diǎn)。
[0009] 進(jìn)一步的,所述基于Di jkstra算法規(guī)劃出AGV從起點(diǎn)至終點(diǎn)的初始路徑,具體步驟 如下: (A) 根據(jù)AGV的可行路徑線,利用歐式距離公式計(jì)算出可行路徑上各節(jié)點(diǎn)間的距離,并 建立權(quán)值鄰接矩陣D,對(duì)于不連通節(jié)點(diǎn)間的權(quán)值可賦值無窮大,距離計(jì)算公式為:
式中,D(i, j)表示節(jié)點(diǎn)i到節(jié)點(diǎn)j的歐氏距離;(xi, yi)和(xj, yj)分別表示i、j兩節(jié)點(diǎn) 的橫坐標(biāo)和縱坐標(biāo); (B) 初始化參數(shù),令D(Vi) = 0,D(Vj) = Wlj (j = 2, 3, 4, ,1〇,建立空表1?和0, 并把可行路徑上的節(jié)點(diǎn)分別放入R和Q中,R = {VihQ = {V2, V3, V4, , Vn}; (C) 在Q中尋找一頂點(diǎn)Vk,使得:D(Vk) = min{D(Vj)},VjlQ,將Vk加入到R中;判斷Q = φ,若是,則算法終止,否則算法轉(zhuǎn)入步驟(D); (D) 根據(jù)節(jié)點(diǎn)k修正D(Vj),令D(Vj) =min{D(Vj),D(Vk) +wkj},然后轉(zhuǎn)入步驟(C); (E) 重復(fù)步驟(C)和步驟(D)操作,即可計(jì)算出AGV從起點(diǎn)到其他各節(jié)點(diǎn)間的路徑長(zhǎng)度, 然后反向追蹤即可得到起點(diǎn)至目標(biāo)點(diǎn)的最短路徑; (F) 對(duì)初始路徑所經(jīng)過的各鏈接線進(jìn)行定長(zhǎng)分段處理,各條鏈接線上的分段數(shù)可由下 式確定:
式中,K表示鏈接線U的劃分段數(shù);U表示當(dāng)前的鏈接線;δ為劃分定長(zhǎng); (G) 各條鏈接線上節(jié)點(diǎn)坐標(biāo)需滿足下式方程:
式中,分別代表鏈接線1^的兩端點(diǎn),\表示鏈接線比例參數(shù),d表示鏈接線劃 分節(jié)點(diǎn)數(shù)。
[0010]進(jìn)一步的,所述通過引入節(jié)點(diǎn)隨機(jī)選擇機(jī)制、最大最小螞蟻系統(tǒng)以及變更信息素 更新方式對(duì)基本蟻群算法進(jìn)行了優(yōu)化改進(jìn),具體步驟如下: Stepl:節(jié)點(diǎn)選擇隨機(jī)選擇機(jī)制,具體公式如下:
式中,i表示鏈接線上所有點(diǎn)的集合;ilk表示鏈接線(i,k)上的信息素;q為隨機(jī)變量 (qI[0, 1]) ;q〇為可調(diào)參數(shù)(q〇I[0, 1]) ;Pij表示螞蟻由節(jié)點(diǎn)i向節(jié)點(diǎn)j轉(zhuǎn)移的概率;Tij表示 路徑(i,j)上的信息素;allowecU表示下一步允許選擇的節(jié)點(diǎn)集合;a為螞蟻信息素軌跡的 相對(duì)重要性因子;b為啟發(fā)函數(shù)的相對(duì)重要性因子。
[0011] Step2:局部信息素更新,更新公式如下:
式中,Δτ^表示在全局更新中螞蟻留在路徑(i,j)上的信息素增量;p為信息素?fù)]發(fā) 系數(shù),τ 〇為初始條件下的信息素; Step3:通過控制信息素濃度的高低來改進(jìn)全局信息素更新方式,縮小路徑搜索范圍, 更好地指引螞蟻在最優(yōu)路徑附近進(jìn)行搜索,改進(jìn)的全局信息素更新公式如下:
式中,Δτ^表示在全局更新中螞蟻留在路徑(i,j)上的信息素增量;Lc表示本次迭代 中所有螞蟻搜索到的最優(yōu)路徑長(zhǎng)度; Step4:通過在蟻群算法中引入最大最小蟻群系統(tǒng),可以解決蟻群算法的早熟問題,最 大最小蟻群系統(tǒng)采用區(qū)間限制信息素取值范圍,限定公式為:
式中,1_和1_分別表示信息素的最小值和最大值。
[0012]進(jìn)一步的,所述基于改進(jìn)蟻群算法對(duì)初始路徑進(jìn)行優(yōu)化,具體步驟如下: (?)初始化各參數(shù),包括螞蟻種群數(shù)量m,初始迭代值iter;最大迭代次數(shù)iter_MAX,信 息素軌跡的相對(duì)重要性因子a,啟發(fā)函數(shù)的相對(duì)重要性因子b,初始信息素信息素?fù)]發(fā)系 數(shù)Ρ等參數(shù); (II)蟻群算法開始搜索,螞蟻根據(jù)當(dāng)前節(jié)點(diǎn)i位置按照下列三個(gè)式子確定下一節(jié)點(diǎn)j:
式中,i表示鏈接線上所有點(diǎn)的集合;Tlk表示鏈接線(i,k)上的信息素;q為隨機(jī)變量 (ql[0, l]);q〇為可調(diào)參數(shù)(q〇I[0, 1]); 當(dāng)q < qo時(shí),下一節(jié)點(diǎn)j按照下式確定:
當(dāng)q>qo時(shí),應(yīng)先計(jì)算當(dāng)前鏈接線節(jié)點(diǎn)i到下條鏈接線節(jié)點(diǎn)j的轉(zhuǎn)移概率Pij,然后根據(jù)