亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法

文檔序號:10569427閱讀:1124來源:國知局
一種基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法
【專利摘要】本發(fā)明公開了一種基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法,所述基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法包括以下步驟:(1)引入預(yù)規(guī)劃路徑;(2)添加拐點(diǎn)參數(shù);(3)建立“死鎖”禁忌表,提高搜索效率,有效避免“死鎖”問題。
【專利說明】
一種基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及人工智能技術(shù)領(lǐng)域,特別是一種基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃 方法。
【背景技術(shù)】
[0002] 隨著人類社會的不斷發(fā)展和生活空間的不斷擴(kuò)大,移動機(jī)器人在國防、抗震搶險(xiǎn)、 防災(zāi)救災(zāi)、反恐、現(xiàn)代軍事武器、制造業(yè)以及日常生活的應(yīng)用越來越廣泛,因此必須對移動 機(jī)器人的動態(tài)路徑進(jìn)行更為有效的規(guī)劃。隨著移動機(jī)器人技術(shù)的迅速發(fā)展,應(yīng)用范圍的不 斷擴(kuò)大,使得人們對機(jī)器人各方面的性能提出了更高的要求。科學(xué)家們通過不懈努力,提出 了多種移動機(jī)器人種路徑規(guī)劃算法,如傳統(tǒng)的柵格法、人工勢場法。柵格法一般用于全局規(guī) 劃,但當(dāng)環(huán)境復(fù)雜度提高時(shí),其所需存儲空間也隨之增大,造成搜索效率過低;人工勢場法 是機(jī)器人路徑規(guī)劃中最常用的一種方法,適用于局部路徑規(guī)劃,但局部極小點(diǎn)和目標(biāo)不可 達(dá)的問題一直是此算法的軟肋。隨著機(jī)器人在越來越多領(lǐng)域的應(yīng)用,傳統(tǒng)的依據(jù)數(shù)學(xué)模型 的路徑規(guī)劃算法已難以適應(yīng)復(fù)雜多變的環(huán)境,尋優(yōu)效果差強(qiáng)人意。隨著人工智能的發(fā)展,遺 傳算法、神經(jīng)網(wǎng)絡(luò)算法、模擬退火算法等智能算法被越來越多的應(yīng)用于機(jī)器人路徑規(guī)劃中, 雖然這些智能算法已經(jīng)在機(jī)器人路徑規(guī)劃領(lǐng)域取得了一些令人滿意的成績,但搜索效率低 下,易陷入局部最優(yōu)等問題一直沒有得到根本性的解決。
[0003] 蟻群算法是一種根據(jù)自然界螞蟻覓食的行為提煉出來的算法,由于自然界的螞蟻 在覓食的過程中會在走過的路徑上留下一種稱為信息素的化學(xué)物質(zhì),且經(jīng)過該路徑的螞蟻 越多,在上面留下的信息素也越多,同時(shí)也證明該路徑較其他路徑更為優(yōu)越,其他的螞蟻也 能感知到這種物質(zhì)且朝著信息素濃度高的地方移動。傳統(tǒng)蟻群算法在機(jī)器人路徑規(guī)劃中雖 然可以成功規(guī)劃出從起始點(diǎn)到目標(biāo)點(diǎn)的無碰路徑,魯棒性較強(qiáng),但由于起始時(shí)蟻群中每一 只螞蟻的運(yùn)動是隨機(jī)性的,雖然在算法初期可以通過信息素的作用的使其向著最優(yōu)路徑方 向移動,但是當(dāng)群體規(guī)模越來越大時(shí),尋找最優(yōu)解的效率就不是很明顯了,從而使搜索時(shí)間 冗長,存在早期收斂效果不明顯的缺點(diǎn)。
[0004] 現(xiàn)有技術(shù)中通過路徑規(guī)劃方法改進(jìn)的蟻群算法雖然提高了蟻群算法由于自身局 限性而導(dǎo)致的收斂速度慢的問題但在應(yīng)用中仍然存在許多不足。
[0005] 如中國專利公開號CN105387875A針對移動機(jī)器人動態(tài)環(huán)境下的路徑規(guī)劃提出一 種改進(jìn)算法,其關(guān)鍵步驟在于對動態(tài)障礙物的處理方式,即視最短路徑上離動態(tài)障礙物安 全的柵格為局部目標(biāo)點(diǎn),從而得到安全無碰路徑,其次運(yùn)用了粒子群算法對參數(shù)進(jìn)行優(yōu)化。
[0006] 蟻群算法"死鎖"問題的存在是因?yàn)樵谒惴▽?shí)現(xiàn)過程中,已訪問的節(jié)點(diǎn)由禁忌表進(jìn) 行存儲,螞蟻在選擇下一節(jié)點(diǎn)時(shí)只能在未訪問節(jié)點(diǎn)中選擇。在面對凹型障礙物時(shí),螞蟻無后 續(xù)節(jié)點(diǎn)可選,從而陷入"死鎖"狀態(tài)。顯然,一旦有螞蟻陷入凹形障礙物,將出現(xiàn)"死鎖"路徑, 所進(jìn)入螞蟻也將成為無效螞蟻,無法繼續(xù)完成路徑搜索,使得初始螞蟻數(shù)量減少,有損算法 搜索效率。目前常見的處理凹形障礙物的一種方法是在環(huán)境模型建立的時(shí)候,將實(shí)際問題 中的所有凹形障礙物通過填補(bǔ)的方式進(jìn)行凸化處理,經(jīng)過處理的障礙物雖然可以消除"死 鎖"現(xiàn)象,但卻以犧牲實(shí)際環(huán)境為代價(jià),這樣的處理方式,在實(shí)際環(huán)境中將失去可行性。
[0007] 現(xiàn)有技術(shù)僅通過路徑規(guī)劃方法對傳統(tǒng)蟻群算法進(jìn)行改進(jìn),不足以充分提高搜索效 率,有效避免"死鎖"問題。
[0008] 因此希望有一種基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法可以克服或至少減輕 現(xiàn)有技術(shù)的上述缺陷。

【發(fā)明內(nèi)容】

[0009] 本發(fā)明的目的是提供一種基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法,能克服上述 現(xiàn)有技術(shù)的缺點(diǎn),提高搜索效率,有效避免"死鎖"問題,使機(jī)器人成功避免障礙物快速到達(dá) 目標(biāo)點(diǎn)。
[0010] 為實(shí)現(xiàn)上述目的,本發(fā)明的基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法包括如下步 驟:
[0011] (1)引入預(yù)規(guī)劃路徑,沿所述預(yù)規(guī)劃路徑增加一定量的呈高斯分布的信息素濃度, 使得前期搜索更有針對性,提高搜索效率;
[0012] (2)添加拐點(diǎn)參數(shù),為節(jié)省移動機(jī)器人行駛時(shí)間,提高所尋路徑的平滑性,引入拐 點(diǎn)參數(shù)作為路徑規(guī)劃評價(jià)標(biāo)準(zhǔn)之一,用拐點(diǎn)參數(shù)和路徑長度共同決定信息素更新方式,弓丨 入拐點(diǎn)參數(shù)后的信息素更新方式如公式(5)所示,
[0014] Q為正常數(shù)取值;Lk為第k只螞蟻所尋路徑長度,Gk為第k只螞蟻所尋路徑的拐點(diǎn)參 數(shù),Cp為加權(quán)系數(shù),A T&第k只螞蟻在i至j路徑上信息素的增量;
[0015] (3)建立"死鎖"禁忌表,首先創(chuàng)建"死鎖點(diǎn)"禁忌表,用來存儲發(fā)生死鎖路徑的節(jié) 點(diǎn),當(dāng)螞蟻遇到死鎖點(diǎn)時(shí),采取回退法,返回上一節(jié)點(diǎn),并將當(dāng)前節(jié)點(diǎn)加入死鎖禁忌表中,直 到有后續(xù)節(jié)點(diǎn)可以選擇,完成接下來的尋路工作;其次,為避免死鎖路徑對后續(xù)螞蟻的影 響,引入懲罰函數(shù),在遇到凹形障礙物時(shí),用懲罰函數(shù)取代原來的局部信息素更新方式,懲 罰函數(shù)定義為:
[0016] f(i,j)=yf(i,j),0<y<l (6)
[0017] 懲罰函數(shù)的存在保證了存在"死鎖點(diǎn)"路徑上信息素濃度的減少,降低后續(xù)螞蟻選 擇此路徑的概率,提高了搜索效率。
[0018] 優(yōu)選的,所述步驟(1)中引入預(yù)規(guī)劃路徑包括以下內(nèi)容:
[0019] a.環(huán)境處理,在二維靜態(tài)空間內(nèi)使用柵格法為機(jī)器人運(yùn)行環(huán)境進(jìn)行建模,首先,在 描述障礙物時(shí),沿障礙物周圍向外增加單個(gè)機(jī)器人的最大直徑,然后將行駛在此環(huán)境中的 移動機(jī)器人視為質(zhì)點(diǎn);其次,以障礙物為單位,得到完全覆蓋障礙物的最小圓,其圓心稱為 障礙物中心點(diǎn),對于不規(guī)則障礙物,單個(gè)圓形難以準(zhǔn)確表達(dá)時(shí),為提高精度降低誤差,可以 采用多個(gè)圓形包絡(luò)弧段來近似擬合;
[0020] b.連通性分析,為了更好的掌握障礙物之間的位置關(guān)系分析障礙物之間的連通 性,為機(jī)器人規(guī)劃出絕對安全區(qū)域,相對安全區(qū)域和危險(xiǎn)區(qū)域,其中,危險(xiǎn)區(qū)域?yàn)檎系K物本 身,相對安全區(qū)域?yàn)槊總€(gè)圓形下除障礙物本身之外的可行駛區(qū)間,除此之外成為絕對安全 區(qū)域,通過連通性的分析,得出機(jī)器人可安全行駛的自由區(qū)域以縮小搜索空間,從而提高算 法效率,具體實(shí)施過程如下:設(shè)共有m個(gè)障礙物,第i個(gè)障礙物的中心位置為Xl,創(chuàng)建mXm的 信息矩陣A,A取值方式見公式(4): i 1 rx.-i-rx.>nCBna (xj-Xj)
[0021] ^ , \ (4> t〇 TXi^rxi <norm
[0022] 分析信息矩陣A可知任意兩個(gè)障礙物之間的位置關(guān)系,如果存在相交關(guān)系,則表明 兩個(gè)障礙物之間有較為狹窄的相對安全區(qū)域,將其中心點(diǎn)用直線進(jìn)行連接,并將這些區(qū)域 的中心點(diǎn)坐標(biāo)存入一個(gè)集合;
[0023] c.路徑預(yù)規(guī)劃,通過對障礙物之間的連通性分析,尋找一條與起始點(diǎn)連線擬合程 度最高的,并且其中間節(jié)點(diǎn)是由障礙物中心點(diǎn)所組成的預(yù)規(guī)劃路徑;
[0024] d.更改初始信息素分布在蟻群算法初始階段,以所述預(yù)規(guī)劃路徑為中心向兩邊增 加一定量的呈高斯分布的信息素濃度,從而避免蟻群算法初期的盲目搜索,提高搜索效率。
[0025] 優(yōu)選的,所述路徑預(yù)規(guī)劃包括以下步驟:
[0026] ①用直線連接起始點(diǎn)和目標(biāo)點(diǎn),獲取兩點(diǎn)間最短路徑,稱之為參照路徑;
[0027] ②判斷步驟①所得連線是否與障礙物集合存在交點(diǎn),如不存在,則結(jié)束;如若存 在,則選擇距離最新起始點(diǎn)最近的集合,判斷是否存在交點(diǎn)的方法為:找出所有障礙物中心 點(diǎn)集合,對于集合中的任意中心點(diǎn)與最新起始點(diǎn)之間連線的斜率均大于或均小于最新起始 點(diǎn)與目標(biāo)點(diǎn)連線的斜率,則無相交,反之相交;
[0028] ③選擇最近集合中的一點(diǎn),設(shè)為新的起始點(diǎn),具體選擇辦法是:比較集合內(nèi)所有障 礙物中心點(diǎn)與新的起始點(diǎn)連線斜率與新起始點(diǎn)與目標(biāo)點(diǎn)連線斜率的差的絕對值,選擇值最 小的中心點(diǎn);
[0029] ④連接新的起始點(diǎn)與終止點(diǎn),轉(zhuǎn)至步驟②。
[0030] 本發(fā)明的基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法針對基本蟻群算法存在的問 題從以下三點(diǎn)進(jìn)行了改進(jìn):1)引入預(yù)規(guī)劃路徑,在此路徑上初始化一定量呈高斯分布的信 息素濃度,避免傳統(tǒng)蟻群算法早期的盲目搜索,提高收斂速度;2)添加拐點(diǎn)參數(shù),用拐點(diǎn)參 數(shù)和路徑長度共同作為所選路徑優(yōu)越性的評價(jià)標(biāo)準(zhǔn),改變傳統(tǒng)蟻群算法的信息素更新方 式;3)建立"死鎖"禁忌表,在螞蟻遇到凹形障礙物時(shí)進(jìn)行回退,同時(shí)將死鎖點(diǎn)加入到死鎖禁 忌表,避免后續(xù)螞蟻再次進(jìn)入死鎖點(diǎn),同時(shí)加入懲罰函數(shù)更新局部信息素,本發(fā)明的基于改 進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法能明顯提高搜索效率,有效避免"死鎖"問題,使機(jī)器人 成功避免障礙物快速到達(dá)目標(biāo)點(diǎn)。
【附圖說明】:
[0031] 圖1為障礙物連通性分析示意圖;
[0032] 圖2為路徑預(yù)規(guī)劃示意圖;
[0033] 圖3為更改初始信息素分布的高斯分布圖;
[0034] 圖4為10 X 10柵格環(huán)境下傳統(tǒng)蟻群算法規(guī)劃路徑示意圖
[0035] 圖5為10 X 10柵格環(huán)境下改進(jìn)蟻群算法規(guī)劃路徑的示意圖;
[0036]圖6為20X20柵格環(huán)境下傳統(tǒng)蟻群算法的最優(yōu)路徑結(jié)果示意圖;
[0037]圖7為20X20柵格環(huán)境下傳統(tǒng)蟻群算法的收斂曲線示意圖;
[0038]圖8為20X20柵格環(huán)境下本發(fā)明改進(jìn)蟻群算法尋找最優(yōu)路徑結(jié)果示意圖;
[0039]圖9為20X20柵格環(huán)境下本發(fā)明改進(jìn)蟻群算法收斂曲線示意圖;
[0040] 圖10為基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法的流程圖。
【具體實(shí)施方式】:
[0041] 為使本發(fā)明實(shí)施的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中 的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行更加詳細(xì)的描述。在附圖中,自始至終相同或類 似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。所描述的實(shí)施例是本發(fā)明 一部分實(shí)施例,而不是全部的實(shí)施例。下面通過參考附圖描述的實(shí)施例是示例性的,旨在用 于解釋本發(fā)明,而不能理解為對本發(fā)明的限制?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人 員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。下 面結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。
[0042] 在本發(fā)明一寬泛實(shí)施例中,路徑規(guī)劃方法包括以下步驟:
[0043] (1)引入預(yù)規(guī)劃路徑,沿所述預(yù)規(guī)劃路徑增加一定量的呈高斯分布的信息素濃度, 使得前期搜索更有針對性,提高搜索效率;
[0044] (2)添加拐點(diǎn)參數(shù),為節(jié)省移動機(jī)器人行駛時(shí)間,提高所尋路徑的平滑性,引入拐 點(diǎn)參數(shù)作為路徑規(guī)劃評價(jià)標(biāo)準(zhǔn)之一,用拐點(diǎn)參數(shù)和路徑長度共同決定信息素更新方式,弓丨 入拐點(diǎn)參數(shù)后的信息素更新方式如公式(5)所示,
[0046] Q為正常數(shù)取值;Lk為第k只螞蟻所尋路徑長度,Gk為第k只螞蟻所尋路徑的拐點(diǎn)參 數(shù),CP為加權(quán)系數(shù),A 0第k只螞蟻在i至j路徑上信息素的增量;
[0047] (3)建立"死鎖"禁忌表,首先創(chuàng)建"死鎖點(diǎn)"禁忌表,用來存儲發(fā)生死鎖路徑的節(jié) 點(diǎn),當(dāng)螞蟻遇到死鎖點(diǎn)時(shí),采取回退法,返回上一節(jié)點(diǎn),并將當(dāng)前節(jié)點(diǎn)加入死鎖禁忌表中,直 到有后續(xù)節(jié)點(diǎn)可以選擇,完成接下來的尋路工作;其次,為避免死鎖路徑對后續(xù)螞蟻的影 響,引入懲罰函數(shù),在遇到凹形障礙物時(shí),用懲罰函數(shù)取代原來的局部信息素更新方式,懲 罰函數(shù)定義為:
[0048] f(i,j)=yf(i,j),0<y<l (6)
[0049] 懲罰函數(shù)的存在保證了存在"死鎖點(diǎn)"路徑上信息素濃度的減少,降低后續(xù)螞蟻選 擇此路徑的概率,提高了搜索效率。
[0050] 本發(fā)明的基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法能明顯提高搜索效率,有效避 免"死鎖"問題,使機(jī)器人成功避免障礙物快速到達(dá)目標(biāo)點(diǎn)。
[0051 ]路徑規(guī)劃方法包括以下步驟:
[0052] (1)引入預(yù)規(guī)劃路徑,沿所述預(yù)規(guī)劃路徑增加一定量的呈高斯分布的信息素濃度, 使得前期搜索更有針對性,提高搜索效率;
[0053] (2)添加拐點(diǎn)參數(shù),為節(jié)省移動機(jī)器人行駛時(shí)間,提高所尋路徑的平滑性,引入拐 點(diǎn)參數(shù)作為路徑規(guī)劃評價(jià)標(biāo)準(zhǔn)之一,用拐點(diǎn)參數(shù)和路徑長度共同決定信息素更新方式,在 傳統(tǒng)蟻群算法中,第k只螞蟻在i至j路徑上信息素的增量由其所尋路徑?jīng)Q定,且存在反比的 關(guān)系,拐點(diǎn)參數(shù)的引入,打破僅由一個(gè)參數(shù)決定信息素濃度的傳統(tǒng),由拐點(diǎn)參數(shù)和路徑長度 共同評價(jià)所尋路徑的優(yōu)劣,使得信息素的更新對路徑的平滑性更為敏感,從而確保所尋路 徑的最優(yōu)性,引入拐點(diǎn)參數(shù)后的信息素更新方式如公式(5)所示,
[0055] Q為正常數(shù)取值;Lk為第k只螞蟻所尋路徑長度,Gk為第k只螞蟻所尋路徑的拐點(diǎn)參 數(shù),CP為加權(quán)系數(shù),,A 第k只螞蟻在i至j路徑上信息素的增量;
[0056] (3)建立"死鎖"禁忌表,首先創(chuàng)建"死鎖點(diǎn)"禁忌表,用來存儲發(fā)生死鎖路徑的節(jié) 點(diǎn),當(dāng)螞蟻遇到死鎖點(diǎn)時(shí),采取回退法,返回上一節(jié)點(diǎn),并將當(dāng)前節(jié)點(diǎn)加入死鎖禁忌表中,直 到有后續(xù)節(jié)點(diǎn)可以選擇,完成接下來的尋路工作;其次,為避免死鎖路徑對后續(xù)螞蟻的影 響,引入懲罰函數(shù),在遇到凹形障礙物時(shí),用懲罰函數(shù)取代原來的局部信息素更新方式,懲 罰函數(shù)定義為:
[0057] f(i,j) =yf(i,j),〇<]i<l (6)
[0058]懲罰函數(shù)的存在保證了存在"死鎖點(diǎn)"路徑上信息素濃度的減少,降低后續(xù)螞蟻選 擇此路徑的概率,提高了搜索效率。
[0059] 所述步驟(1)中引入預(yù)規(guī)劃路徑包括以下內(nèi)容:
[0060] a.環(huán)境處理,在二維靜態(tài)空間內(nèi)使用柵格法為機(jī)器人運(yùn)行環(huán)境進(jìn)行建模,首先,在 描述障礙物時(shí),沿障礙物周圍向外增加單個(gè)機(jī)器人的最大直徑,然后將行駛在此環(huán)境中的 移動機(jī)器人視為質(zhì)點(diǎn);其次,以障礙物為單位,得到完全覆蓋障礙物的最小圓,其圓心稱為 障礙物中心點(diǎn),對于不規(guī)則障礙物,單個(gè)圓形難以準(zhǔn)確表達(dá)時(shí),為提高精度降低誤差,可以 采用多個(gè)圓形包絡(luò)弧段來近似擬合;
[0061] b.如圖1所示連通性分析,為了更好的掌握障礙物之間的位置關(guān)系分析障礙物之 間的連通性,為機(jī)器人規(guī)劃出絕對安全區(qū)域,相對安全區(qū)域和危險(xiǎn)區(qū)域,其中,危險(xiǎn)區(qū)域?yàn)?障礙物本身,相對安全區(qū)域?yàn)槊總€(gè)圓形下除障礙物本身之外的可行駛區(qū)間,除此之外成為 絕對安全區(qū)域,通過連通性的分析,得出機(jī)器人可安全行駛的自由區(qū)域以縮小搜索空間,從 而提高算法效率,具體實(shí)施過程如下:設(shè)共有m個(gè)障礙物,第i個(gè)障礙物的中心位置為 Xl,創(chuàng) 建mXm的信息矩陣A,A取值方式見公式(4): 1 ^ + r > norm <Xj -su)
[0062] 知=々而 , 、⑷
[0063] 分析信息矩陣A可知任意兩個(gè)障礙物之間的位置關(guān)系,如果存在相交關(guān)系,則表明 兩個(gè)障礙物之間有較為狹窄的相對安全區(qū)域,將其中心點(diǎn)用直線進(jìn)行連接,并將這些區(qū)域 的中心點(diǎn)坐標(biāo)存入一個(gè)集合;
[0064] c.路徑預(yù)規(guī)劃,通過對障礙物之間的連通性分析,尋找一條與起始點(diǎn)連線擬合程 度最高的,并且其中間節(jié)點(diǎn)是由障礙物中心點(diǎn)所組成的預(yù)規(guī)劃路徑;
[0065] d.如圖3所示,更改初始信息素分布在蟻群算法初始階段,以所述預(yù)規(guī)劃路徑為中 心向兩邊增加一定量的呈高斯分布的信息素濃度,從而避免蟻群算法初期的盲目搜索,提 高搜索效率。
[0066] 所述路徑預(yù)規(guī)劃包括以下步驟:
[0067] ①用直線連接起始點(diǎn)和目標(biāo)點(diǎn),獲取兩點(diǎn)間最短路徑,稱之為參照路徑;
[0068] ②判斷步驟①所得連線是否與障礙物集合存在交點(diǎn),如不存在,則結(jié)束;如若存 在,則選擇距離最新起始點(diǎn)最近的集合,判斷是否存在交點(diǎn)的方法為:找出所有障礙物中心 點(diǎn)集合,對于集合中的任意中心點(diǎn)與最新起始點(diǎn)之間連線的斜率均大于或均小于最新起始 點(diǎn)與目標(biāo)點(diǎn)連線的斜率,則無相交,反之相交;
[0069] ③選擇最近集合中的一點(diǎn),設(shè)為新的起始點(diǎn),具體選擇辦法是:比較集合內(nèi)所有障 礙物中心點(diǎn)與新的起始點(diǎn)連線斜率與新起始點(diǎn)與目標(biāo)點(diǎn)連線斜率的差的絕對值,選擇值最 小的中心點(diǎn);
[0070] ④連接新的起始點(diǎn)與終止點(diǎn),轉(zhuǎn)至步驟②
[0071] 如圖2所示經(jīng)過以上步驟①-④即可得到一條由障礙物中心點(diǎn)組成的與參照路徑 擬合程度最高的預(yù)規(guī)劃路徑。
[0072] 為驗(yàn)證本發(fā)明改進(jìn)蟻群算法的有效性和可行性,在CPU為Core i5,2.20GHz,8G內(nèi) 存的硬件環(huán)境下,利用軟件MATLAB8.1進(jìn)行模擬仿真,分別在10 X 10和20 X 20的柵格環(huán)境下 對機(jī)器人路徑規(guī)劃的效果進(jìn)行驗(yàn)證。
[0073]首先在10X10的柵格環(huán)境下使用傳統(tǒng)蟻群算法和本發(fā)明改進(jìn)蟻群算法對機(jī)器人 路徑進(jìn)行規(guī)劃,實(shí)驗(yàn)結(jié)果如圖4和圖5所示。
[0074]對比圖4和圖5發(fā)現(xiàn),本發(fā)明改進(jìn)蟻群算法在尋優(yōu)能力上明顯超過傳統(tǒng)蟻群算法, 當(dāng)遇到環(huán)境中死鎖點(diǎn)(7,1)時(shí),傳統(tǒng)蟻群算法出現(xiàn)了局部徘徊的現(xiàn)象,而本發(fā)明改進(jìn)蟻群算 法通過引進(jìn)死鎖禁忌表和懲罰函數(shù),有效避免了該現(xiàn)象。
[0075]為驗(yàn)證本發(fā)明改進(jìn)蟻群算法在不同環(huán)境下的適應(yīng)性,在20X20柵格環(huán)境下再次進(jìn) 行仿真,同時(shí)增加了障礙物的密集程度。此環(huán)境下,傳統(tǒng)蟻群算法和本發(fā)明改進(jìn)蟻群算法尋 找最優(yōu)路徑結(jié)果和收斂曲線分別如圖5和圖6所示。
[0076]如圖6-9可以看出,本發(fā)明改進(jìn)蟻群算法的有效性和可行性。首先,預(yù)規(guī)劃路徑的 引入,克服了傳統(tǒng)蟻群算法早期收斂速度慢的不足。以尋得路徑長度為35cm以下所需平均 迭代次數(shù)為例,傳統(tǒng)蟻群算法為11次,而本發(fā)明改進(jìn)蟻群算法為6次,效率提高45.5 % ;其 次,拐點(diǎn)參數(shù)使得改進(jìn)后的算法所尋路徑更為平滑。
[0077]為驗(yàn)證本發(fā)明改進(jìn)蟻群算法的穩(wěn)定性,多次運(yùn)行本發(fā)明改進(jìn)算法進(jìn)行路徑規(guī)劃, 記錄每次運(yùn)行結(jié)果如表1所示:
[0078]表1本發(fā)明算法多次運(yùn)行結(jié)果
[0080] 由表1可以看出,多次運(yùn)行本發(fā)明算法所尋路徑長度基本穩(wěn)定在29cm附近,證明了 改進(jìn)后的算法具有較強(qiáng)的穩(wěn)定性。
[0081] 為更好的說明本發(fā)明改進(jìn)算法的有效性,分別對傳統(tǒng)蟻群算法所提改進(jìn)算法進(jìn)行 多次仿真,將得到的仿真結(jié)果與本發(fā)明改進(jìn)算法的結(jié)果進(jìn)行對比分析,如表2所示。
[0082] 表2本發(fā)明算法與其他算法仿真結(jié)果比較
[0084] 通過表2可以看出,本發(fā)明改進(jìn)蟻群算法優(yōu)于傳統(tǒng)蟻群算法和文獻(xiàn)[13]所提改進(jìn) 算法。本發(fā)明改進(jìn)蟻群算法較傳統(tǒng)蟻群算法在平均路徑長路和最優(yōu)路徑長度上分別提高 21.5%和12.8%,較文獻(xiàn)[13]所提算法在平均路徑長路和最優(yōu)路徑長度上分別提高了 6.6%和7.9%;在尋得路徑長度35cm以下所需平均迭代次數(shù)上,本發(fā)明改進(jìn)蟻群算法較傳 統(tǒng)蟻群算法和文獻(xiàn)[13]算法分別提高了88%和60%以上;在平均運(yùn)行時(shí)間上,本發(fā)明改進(jìn) 蟻群算法雖較文獻(xiàn)[13]算法時(shí)間稍長,但基本接近,較傳統(tǒng)蟻群算法則提高了 9%。對比表 明,本文改進(jìn)蟻群算法不僅收斂速度極快,所尋路徑也更優(yōu),再次驗(yàn)證了本發(fā)明所提改進(jìn)算 法的有效性和可行性。綜上說明,本發(fā)明改進(jìn)蟻群算法可以在不增加運(yùn)行時(shí)間的情況下,得 到較為平滑的安全無碰機(jī)器人路徑。
[0085] 最后需要指出的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制。盡 管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然 可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替 換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精 神和范圍。
【主權(quán)項(xiàng)】
1. 一種基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法,其特征在于:所述路徑規(guī)劃方法包 括以下步驟: (1) 引入預(yù)規(guī)劃路徑,沿所述預(yù)規(guī)劃路徑增加一定量的呈高斯分布的信息素濃度,使得 前期搜索更有針對性,提高搜索效率; (2) 添加拐點(diǎn)參數(shù),為節(jié)省移動機(jī)器人行駛時(shí)間,提高所尋路徑的平滑性,引入拐點(diǎn)參 數(shù)作為路徑規(guī)劃評價(jià)標(biāo)準(zhǔn)之一,用拐點(diǎn)參數(shù)和路徑長度共同決定信息素更新方式,引入拐 點(diǎn)參數(shù)后的信息素更新方式如公式(5)所示,q為正常數(shù)取值;u為第k只螞蟻所尋路徑長度,Gk為第k只螞蟻所尋路徑的拐點(diǎn)參數(shù),φ 為加權(quán)系數(shù)第k只螞蟻在i至j路徑上信息素的增量; (3) 建立"死鎖"禁忌表,首先創(chuàng)建"死鎖點(diǎn)"禁忌表,用來存儲發(fā)生死鎖路徑的節(jié)點(diǎn),當(dāng) 螞蟻遇到死鎖點(diǎn)時(shí),采取回退法,返回上一節(jié)點(diǎn),并將當(dāng)前節(jié)點(diǎn)加入死鎖禁忌表中,直到有 后續(xù)節(jié)點(diǎn)可以選擇,完成接下來的尋路工作;其次,為避免死鎖路徑對后續(xù)螞蟻的影響,弓丨 入懲罰函數(shù),在遇到凹形障礙物時(shí),用懲罰函數(shù)取代原來的局部信息素更新方式,懲罰函數(shù) 定義為: f(i,j)=yf(i,j),0<y<l (6) 懲罰函數(shù)的存在保證了存在"死鎖點(diǎn)"路徑上信息素濃度的減少,降低后續(xù)螞蟻選擇此 路徑的概率,提高了搜索效率。2. 根據(jù)權(quán)利要求1所述的基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法,其特征在于:所述 步驟(1)中引入預(yù)規(guī)劃路徑包括以下內(nèi)容: a. 環(huán)境處理,在二維靜態(tài)空間內(nèi)使用柵格法為機(jī)器人運(yùn)行環(huán)境進(jìn)行建模,首先,在描述 障礙物時(shí),沿障礙物周圍向外增加單個(gè)機(jī)器人的最大直徑,然后將行駛在此環(huán)境中的移動 機(jī)器人視為質(zhì)點(diǎn);其次,以障礙物為單位,得到完全覆蓋障礙物的最小圓,其圓心稱為障礙 物中心點(diǎn),對于不規(guī)則障礙物,單個(gè)圓形難以準(zhǔn)確表達(dá)時(shí),為提高精度降低誤差,可以采用 多個(gè)圓形包絡(luò)弧段來近似擬合; b. 連通性分析,為了更好的掌握障礙物之間的位置關(guān)系分析障礙物之間的連通性,為 機(jī)器人規(guī)劃出絕對安全區(qū)域,相對安全區(qū)域和危險(xiǎn)區(qū)域,其中,危險(xiǎn)區(qū)域?yàn)檎系K物本身,相 對安全區(qū)域?yàn)槊總€(gè)圓形下除障礙物本身之外的可行駛區(qū)間,除此之外成為絕對安全區(qū)域, 通過連通性的分析,得出機(jī)器人可安全行駛的自由區(qū)域以縮小搜索空間,從而提高算法效 率,具體實(shí)施過程如下:設(shè)共有m個(gè)障礙物,第i個(gè)障礙物的中心位置為^,創(chuàng)建mXm的信息 矩陣A,A取值方式見公式(4):分析信息矩陣A可知任意兩個(gè)障礙物之間的位置關(guān)系,如果存在相交關(guān)系,則表明兩個(gè) 障礙物之間有較為狹窄的相對安全區(qū)域,將其中心點(diǎn)用直線進(jìn)行連接,并將這些區(qū)域的中 心點(diǎn)坐標(biāo)存入一個(gè)集合; C.路徑預(yù)規(guī)劃,通過對障礙物之間的連通性分析,尋找一條與起始點(diǎn)連線擬合程度最 高的,并且其中間節(jié)點(diǎn)是由障礙物中心點(diǎn)所組成的預(yù)規(guī)劃路徑; d.更改初始信息素分布在蟻群算法初始階段,以所述預(yù)規(guī)劃路徑為中心向兩邊增加一 定量的呈高斯分布的信息素濃度,從而避免蟻群算法初期的盲目搜索,提高搜索效率。3.根據(jù)權(quán)利要求2所述的基于改進(jìn)蟻群算法的機(jī)器人路徑規(guī)劃方法,其特征在于:所述 路徑預(yù)規(guī)劃包括以下步驟: ① 用直線連接起始點(diǎn)和目標(biāo)點(diǎn),獲取兩點(diǎn)間最短路徑,稱之為參照路徑; ② 判斷步驟①所得連線是否與障礙物集合存在交點(diǎn),如不存在,則結(jié)束;如若存在,則 選擇距離最新起始點(diǎn)最近的集合。判斷是否存在交點(diǎn)的方法為:找出所有障礙物中心點(diǎn)集 合,對于集合中的任意中心點(diǎn)與最新起始點(diǎn)之間連線的斜率均大于或均小于最新起始點(diǎn)與 目標(biāo)點(diǎn)連線的斜率,則無相交,反之相交; ③ 選擇最近集合中的一點(diǎn),設(shè)為新的起始點(diǎn)。具體選擇辦法是:比較集合內(nèi)所有障礙物 中心點(diǎn)與新的起始點(diǎn)連線斜率與新起始點(diǎn)與目標(biāo)點(diǎn)連線斜率的差的絕對值,選擇值最小的 中心點(diǎn); ④ 連接新的起始點(diǎn)與終止點(diǎn),轉(zhuǎn)至步驟②。
【文檔編號】G05D1/10GK105929843SQ201610250829
【公開日】2016年9月7日
【申請日】2016年4月22日
【發(fā)明人】張艷, 譚覃, 劉樹東
【申請人】天津城建大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1