專利名稱:一種基于粒子群優(yōu)化算法的移動機器人路徑規(guī)劃方法
技術(shù)領(lǐng)域:
本發(fā)明計算機技術(shù)領(lǐng)域,具體是涉及一種基于粒子群優(yōu)化算法的移動機器人路徑規(guī)劃方法。
背景技術(shù):
移動機器人是智能控制技術(shù)中的一個重要領(lǐng)域,已經(jīng)被廣泛應(yīng)用在軍事、工業(yè)、農(nóng)業(yè)和教育等領(lǐng)域。路徑規(guī)劃是移動機器人系統(tǒng)的一個重要內(nèi)容,
它直接影響機器人完成任務(wù)的質(zhì)量。粒子群優(yōu)化算法(Particle SwarmOptimization , PS0)由Kennedy和Eberhart首先提出,是一種智能演化算法。把粒子群優(yōu)化算法(Particle Swarm Optimization , PS0)用在路徑規(guī)劃中是一個新的嘗試。通過改進的粒子群優(yōu)化算法可以使機器人的行走路徑變得光滑。在粒子群優(yōu)化算法(PARTICLE SWARM OPTIMIZATION ,PS0)的適應(yīng)值函數(shù)中加入了障礙物躲避參數(shù),使得機器人可以有效地避開障礙物。這些都是粒子群優(yōu)化算法(Particle Swarm Optimization ,PS0)在全局路徑規(guī)劃中的應(yīng)用,改變適應(yīng)值函數(shù)使得機器人在局部路徑規(guī)劃中可以成功地躲避障礙物而到達(dá)目標(biāo)點。然而這個方法只能用在簡單的環(huán)境中,不能幫助機器人躲避環(huán)境陷阱,如無路徑必須返回。于是提出了一種基于極坐標(biāo)粒子群(Polar Particle Swarm Optimization , PPS0)的路徑規(guī)劃方法。雖然這個方法可以幫助機器人逃避環(huán)境陷阱,但它在障礙物太大的時候就會失效。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種基于粒子群優(yōu)化算法的移動機器人路徑規(guī)劃方法。本發(fā)明方法的具體步驟是
步驟(l)設(shè)機器人的當(dāng)前位置為Si ,機器人傳感器感應(yīng)圓的半徑為R, S,與目標(biāo)點之間的距離為D;以S,為圓心做圓C,如果R^D,則圓C的半徑為R,如果R〉D,則圓C的半徑為D;以S,為射線出發(fā)點,做平行于x軸的射線,射線與圓C相交于Q點,并將此射線作為極坐標(biāo)軸;步驟(2)將《點與Q點間線段進行K等分,得到長度為I I觀I I /K的K段線段,以各個等分點到S點的距離為半徑,以S,為圓心做圓,得到K個同心圓;
步驟(3)可行路徑是一條從起點&到圓C上點的若干線段組成的折線,用這些折線的端點即路徑關(guān)鍵點的序列表示,機器人移動過的路徑就是這些點的連線,定義為尸={&,《,.."巧"."^},1^7、附,附<〖;其中《,…,尸),…,^都是非障礙物點,即相鄰的兩點之間的連線上沒有障礙物;
步驟(4)在當(dāng)前非障礙物點上將傳感器感應(yīng)到的半徑為R的圓等分為n個扇形區(qū)域械,(12,...,(^,..,(111},每個扇形的角度為360/n度;
步驟(5)每次選擇一個扇形區(qū)域作為探索區(qū)域扇形區(qū)域dj被選擇,用粒子群優(yōu)化算法探索c^,如果在扇形區(qū)域dj中找到可行路徑,移動機器人至
下一個非障礙物點;如果找不到路徑,探索下一個扇形區(qū)域、1;對每一個
扇形區(qū)域探索利用PSO算法對機器人路徑進行規(guī)劃,最終找到無障礙物的路徑;
步驟(6)如果在傳感器感應(yīng)到的半徑為R的圓的范圍內(nèi)找不到可行路徑,則返回到前一點,探索在前一點中沒有探索過的扇形區(qū)域;把機器人每次走過的路徑存儲在一個鏈表中,以方便機器人搜索;
步驟(7)當(dāng)圓C的半徑為D時,目標(biāo)點即在圓周C上,機器人利用PSO算法所做的移動即可到達(dá)目標(biāo)點。當(dāng)圓C的半徑小于D時,機器人移動Pm到后,將Pm的極坐標(biāo)值賦值給Si,重復(fù)步驟(1)到(7),直到找到一條無碰撞路徑,到達(dá)目標(biāo)點。
經(jīng)過基于極坐標(biāo)粒子群的深度優(yōu)先搜索找到一個無碰撞的路徑,最終到達(dá)目標(biāo)點。
本發(fā)明在極坐標(biāo)粒子群中加入了深度優(yōu)先搜索。用這種方法,機器人可以在大多數(shù)復(fù)雜環(huán)境中有效地找到一個無碰撞的路徑,最終到達(dá)目標(biāo)點。
具體實施例方式
采用深度優(yōu)先搜索算法和粒子群優(yōu)化算法相結(jié)合的方法,對移動機器人在未知環(huán)境信息下進行路徑規(guī)劃。旨在移動機器人能用粒子群優(yōu)化算法在未知的復(fù)雜環(huán)境中找到有效路徑。
該基于粒子群優(yōu)化算法的移動機器人路徑規(guī)劃方法的具體步驟是步驟l:對環(huán)境進行建模。
用多邊形表示障礙物,用點表示機器人,用小方框表示機器人的起始位置,用十字表示目標(biāo)點。步驟2:對機器人路徑進行規(guī)劃。
(1) 假設(shè)機器人的當(dāng)前位置為S,,以S,為圓點做圓C,如果R^D,則C的
半徑為R,如果R〉D,則C的半徑為D。其中R表示機器人傳感器感應(yīng)圓的半徑,D表示Sj與目標(biāo)點的距離。以S,為射線出發(fā)點,做平行于x軸的射線,射線與圓C相交于Q點,并將此射線作為極坐標(biāo)軸。
(2) 將《2點進行K等分,得到間隔長度為l 1/K的K段線段,以各個等分點到原點的連線為半徑,以S,為圓心做圓,得到一系列的同心圓。
(3) 可行路徑是一條從起點Si,到圓C上點的若干線段組成的折線,用這些折線的端點即路徑關(guān)鍵點的序列表示。機器人移動過的路徑就是這些點的連線,定義為戶-W,S,…,^,…,尸J,l《7^m。其中/^是非障礙物點,和5相連的點的連線上沒有障礙物。
(4) 當(dāng)圓C的半徑為D時,目標(biāo)點即在圓周C上,機器人利用PS0算法所做的移動即可到達(dá)目標(biāo)點。當(dāng)圓C的半徑小于D時,機器人移動Pm到后,將Pm的極坐標(biāo)值賦值給Si,重復(fù)步驟1)到4),直到找到一條無碰撞路徑,到達(dá)目標(biāo)點。
歩驟3:基于極坐標(biāo)粒子群的深度優(yōu)先搜索。
(1) 記錄機器人移動過的點記為^,s,,S2,…sJ 。假設(shè)機器人的當(dāng)前位置為S,,傳感器感應(yīng)到的范圍為圓q , 將圓C,平分為n個扇形{^dndjdj+^^dj ,每個扇形的角度為360/n度。
(2) 每次選擇一個扇形作為探索區(qū)域。假設(shè)dj被選擇,用粒子群優(yōu)化算法PSO探索dj,如果在dj中找到可行路徑,移動機器人;如果找不到路徑,探索c^部分。對每一個扇形區(qū)域探索利用PSO算法對機器人路徑進行規(guī)劃,最終找到無障礙物的路徑。
(3) 如果在圓C,范圍內(nèi)找不到可行路徑,則返回、點,探索在Cw中沒有探索過的區(qū)域(扇形)。把機器人每次走過的路徑存儲在一個鏈表中,以方便其搜索。
經(jīng)過基于極坐標(biāo)粒子群的深度優(yōu)先搜索找到一個無碰撞的路徑,最終到達(dá)目標(biāo)點。
權(quán)利要求
1、一種基于粒子群優(yōu)化算法的移動機器人路徑規(guī)劃方法,其特征在于該方法的步驟包括步驟(1)設(shè)機器人的當(dāng)前位置為Si,機器人傳感器感應(yīng)圓的半徑為R,Si與目標(biāo)點之間的距離為D;以Si為圓心做圓C,如果R≤D,則圓C的半徑為R,如果R>D,則圓C的半徑為D;以Si為射線出發(fā)點,做平行于x軸的射線,射線與圓C相交于Q點,并將此射線作為極坐標(biāo)軸;步驟(2)將Si點與Q點間線段進行K等分,得到長度為||SiQ||/K的K段線段,以各個等分點到Si點的距離為半徑,以Si為圓心做圓,得到K個同心圓;步驟(3)可行路徑是一條從起點Si到圓C上點的若干線段組成的折線,用這些折線的端點即路徑關(guān)鍵點的序列表示,機器人移動過的路徑就是這些點的連線,定義為P={Si,P1,...,Pj,...,Pm},1≤j≤m,m<K;其中P1,...,Pj,...,Pm都是非障礙物點,即相鄰的兩點之間的連線上沒有障礙物;步驟(4)在當(dāng)前非障礙物點上將傳感器感應(yīng)到的半徑為R的圓等分為n個扇形區(qū)域{d1,d2,...,dj,dj+1,...,dn},每個扇形的角度為360/n度;步驟(5)每次選擇一個扇形區(qū)域作為探索區(qū)域扇形區(qū)域dj被選擇,用粒子群優(yōu)化算法探索dj,如果在扇形區(qū)域dj中找到可行路徑,移動機器人至下一個非障礙物點;如果找不到路徑,探索下一個扇形區(qū)域dj+1;對每一個扇形區(qū)域探索利用PSO算法對機器人路徑進行規(guī)劃,最終找到無障礙物的路徑;步驟(6)如果在傳感器感應(yīng)到的半徑為R的圓的范圍內(nèi)找不到可行路徑,則返回到前一點,探索在前一點中沒有探索過的扇形區(qū)域;把機器人每次走過的路徑存儲在一個鏈表中;步驟(7)當(dāng)圓C的半徑為D時,目標(biāo)點即在圓周C上,機器人利用PSO算法所做的移動即可到達(dá)目標(biāo)點;當(dāng)圓C的半徑小于D時,機器人移動pm到后,將pm的極坐標(biāo)值賦值給Si,重復(fù)步驟(1)到(7),直到找到一條無碰撞路徑,到達(dá)目標(biāo)點。
全文摘要
本發(fā)明涉及一種基于粒子群優(yōu)化算法的移動機器人路徑規(guī)劃方法。目前移動機器人路徑規(guī)劃方法對于路徑的選擇比較單一、容易走入死胡同。本發(fā)明的具體步驟是首先對環(huán)境進行建模;用多邊形表示障礙物,用點表示機器人,用小方框表示機器人的起始位置,用十字表示目標(biāo)點。機器人開始點標(biāo)記為S,目標(biāo)點標(biāo)記為G;然后對機器人路徑利用粒子群優(yōu)化算法進行規(guī)劃;最后對規(guī)劃的路徑進行深度優(yōu)先搜索。本發(fā)明在極坐標(biāo)粒子群中加入了深度優(yōu)先搜索。用這種方法,機器人可以在大多數(shù)復(fù)雜環(huán)境中有效地找到一個無碰撞的路徑,最終到達(dá)目標(biāo)點。
文檔編號G05D1/00GK101604166SQ20091010061
公開日2009年12月16日 申請日期2009年7月10日 優(yōu)先權(quán)日2009年7月10日
發(fā)明者吳國華, 禎 張, 方美娥, 王玉娟 申請人:杭州電子科技大學(xué)