本發(fā)明涉及一種基于改進遺傳算法的移動機器人路徑規(guī)劃方法,特別是涉及一種復(fù)雜動態(tài)環(huán)境下的基于改進遺傳算法的移動機器人路徑規(guī)劃方法。
背景技術(shù):
移動機器人路徑規(guī)劃是指在起點和終點之間尋找一條最短的無碰撞的平滑路徑,在機器人領(lǐng)域是一個熱門和必不可少的研究問題。隨著機器人在工業(yè)領(lǐng)域的應(yīng)用越來越廣泛,與外界環(huán)境交互的能力要求也在提高,機器人需要解決以下幾個問題:確定在哪,應(yīng)該去哪,怎么到達那里,其中最后一個問題就是所謂的路徑規(guī)劃問題。機器人路徑規(guī)劃的研究始于20世紀70年代,國內(nèi)外的科學家圍繞路徑規(guī)劃從算法設(shè)汁、算法分析、仿真實驗等各個方面展開了研究。目前國內(nèi)外對這一問題的研究仍十分活躍,許多學者做了大量的工作。
移動機器人如何在各種環(huán)境中自主移動到目標點,并且能夠躲避障礙物是移動機器人最基本、最重要的能力之一,是所有其它應(yīng)用的基礎(chǔ),規(guī)劃路徑的質(zhì)量直接影響到機器人大多數(shù)應(yīng)用的效果。因此路徑規(guī)劃是移動機器人導(dǎo)航技術(shù)中不可缺少的重要組成部分,是移動機器人完成任務(wù)的安全保障,同時也是移動機器人智能化程度的重要標志。對路徑規(guī)劃算法的深入研究,能夠不斷提高移動機器人的導(dǎo)航性能和智能水平,促進移動機器人的進一步發(fā)展有著十分重要的意義。
目前在移動機器人路徑規(guī)劃領(lǐng)域已有大量的研究成果,以實現(xiàn)移動機器人在各種環(huán)境中實時有效的規(guī)劃合理移動路徑,提高移動機器人導(dǎo)航能力,節(jié)約能源,降低機器人控制難度。發(fā)明專利“路徑規(guī)劃算法”(申請?zhí)枺?01410757261.8),提出了一種路徑規(guī)劃算法,用特征圓來代替現(xiàn)實中的不規(guī)則障礙物,只計算三個點的坐標,而不用計算障礙物所有點的坐標,這極大地節(jié)省了機器人控制器的計算量,節(jié)省運算時間,使機器人可以快速準確地計算出最佳路徑,該方法中特征圓對不規(guī)則障礙物的替代改變了障礙物的真實覆蓋面積,容易影響規(guī)劃路徑的質(zhì)量,此外所采用的路徑規(guī)劃算法僅適用于簡單環(huán)境中的移動機器人路徑規(guī)劃。發(fā)明專利“Lambda*路徑規(guī)劃算法”(申請?zhí)枺?01310488139.0),提出了一種Lambda*路徑規(guī)劃算法,針對現(xiàn)有A*算法中open表中所含節(jié)點多、耗時多的問題進行改進。其算法步驟包括:采用可視圖構(gòu)建路徑規(guī)劃的環(huán)境、創(chuàng)建open表和closed表、創(chuàng)建節(jié)點的數(shù)據(jù)結(jié)構(gòu)、搜索路徑、加入Smooth過程對路徑進行平滑處理。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是:提高移動機器人在各種環(huán)境中的路徑規(guī)劃能力。
為了達到上述目的,本發(fā)明的技術(shù)方案是提供了一種基于改進遺傳算法的移動機器人路徑規(guī)劃方法,其特征在于,包括如下步驟:
步驟1、利用柵格模型對移動機器人工作空間進行預(yù)處理;
步驟2、指定機器人移動的起始點和目標點;
步驟3、使用改進遺傳算法規(guī)劃機器人最優(yōu)移動路徑,所述改進遺傳算法包括:
步驟3.1、采用改進的雙向快速遍歷隨機樹算法生成多樣性豐富、無不可行路徑的初始種群,包括以下步驟:
步驟3.1.1、初始化雙向快速遍歷隨機樹,分別設(shè)置雙向快速遍歷隨機樹中的兩棵子樹的根節(jié)點為起始點和目標點;
步驟3.1.2、雙向快速遍歷隨機樹在柵格化工作空間中自由生長,雙向快速遍歷隨機樹的一棵子樹自由生長時,在工作空間中機器人可自由行走部分隨機選擇一個點Prand作為生長方向,計算該子樹的所有樹節(jié)點與點Prand之間的歐氏距離,找出歐式距離最小的樹節(jié)點Plst,該子樹從樹節(jié)點Plst開始以生長因子v朝著點Prand生長出新的樹節(jié)點Pnew,將新的樹節(jié)點Pnew連接到子樹中;
步驟3.1.3、雙向快速遍歷隨機樹在柵格化工作空間中相向生長,雙向快速遍歷隨機樹中的一棵子樹以另一棵子樹自由生長的樹節(jié)點Pnew為生長方向,同自由生長過程生長出新的樹節(jié)點P’new,將新的樹節(jié)點P’new連接到子樹中;
步驟3.1.4、判斷雙向快速遍歷隨機樹是否在起始點和目標點之間建立足夠數(shù)量的連接,如果是則停止生長,進入步驟3.1.5,否則返回步驟3.1.2繼續(xù)生長;
步驟3.1.5、使用回溯法生成初始種群,每次回溯均以雙向快速遍歷隨機樹的連接點作為回溯初始點,朝著雙向快速遍歷隨機樹的根節(jié)點進行回溯,直到回溯到根節(jié)點,回溯經(jīng)歷的樹中的節(jié)點與邊構(gòu)成無碰撞路徑,多次回溯產(chǎn)生的無碰撞路徑組成初始種群;
步驟3.2、采用選擇、交叉、變異3種遺傳算子對初始種群進行進化,得到最優(yōu)路徑;
步驟4、將最優(yōu)路徑的關(guān)鍵點作為控制點,通過二次B樣條曲線技術(shù),對最優(yōu)路徑進行平滑處理,得到移動機器人的平滑最優(yōu)路徑。
優(yōu)選地,所述步驟3.2包括如下步驟:
步驟3.2.1、計算上一步驟得到的種群中每個個體的適應(yīng)度函數(shù)值f(pop);
步驟3.2.2、判斷所述改進遺傳算法是否達到最大迭代次數(shù)G,如果是則保存當前最優(yōu)路徑,進入步驟4,否則,進入步驟3.2.3;
步驟3.2.3、使用錦標賽選擇策略對種群進行選擇操作,設(shè)置錦標賽的聯(lián)賽規(guī)模為Nchamp,從種群中隨機選擇Nchamp個個體,選出適應(yīng)度最小的個體保留至下一代,重復(fù)錦標賽選擇策略直到選出足夠數(shù)量的個體,組成新種群;
步驟3.2.4、使用單點交叉策略對步驟3.2.3得到的種群進行交叉操作,從種群中隨機選擇兩個個體作為父代,當滿足交叉概率時,分別隨機選擇父代中選擇一個關(guān)鍵點作為交叉點,交換父代交叉點之后的部分,組成兩個新個體;
步驟3.2.5、步驟3.2.4得到的種群中的個體滿足變異概率時,隨機選擇一個關(guān)鍵點作為變異點,使用變異點的8領(lǐng)域點替換變異點,替換后適應(yīng)值最小的個體保留至下一代;
步驟3.2.6、更新種群,返回步驟3.2.1繼續(xù)進化。
優(yōu)選地,步驟3.2.3中,所述適應(yīng)度通過適應(yīng)度函數(shù)計算得到,種群中的一條路徑pop的適應(yīng)度函數(shù)為f(pop),則有:
式中,n為路徑pop上關(guān)鍵點個數(shù),(xi,yi)為關(guān)鍵點i在工作空間中的坐標,penalty為懲罰項。
優(yōu)選地,步驟3.2.2中,最大迭代次數(shù)G=200;步驟3.2.3中,錦標賽的聯(lián)賽規(guī)模Nchamp=2。
優(yōu)選地,步驟3.1.2及步驟3.1.3中,將新的樹節(jié)點連接到子樹中的具體步驟為:計算新的樹節(jié)點與子樹所有節(jié)點之間的歐式距離,選擇前w個歐式距離最小的樹節(jié)點Plst,P2nd,...,pwth,判斷樹節(jié)點Plst,p2nd,...,pwth與新的樹節(jié)點之間是否存在障礙物,如果否則將其與新的樹節(jié)點連接。
優(yōu)選地,步驟3.1.5中,所述雙向快速遍歷隨機樹的連接點為雙向快速遍歷隨機樹中兩棵子樹的公共樹節(jié)點。
優(yōu)選地,步驟3.1中,所述多樣性豐富是指種群分布廣度Br大,種群中的個體兩兩之間相似度小,種群中的個體兩兩之間的Hausdorff距離大,點集A和點集B的Hausdorff距離H(A,B)的計算公式如下:
式中,d(a,b)為點a和點b之間的歐氏距離。
優(yōu)選地,所述廣度Br的計算公式如下:
式中,N為種群中包含的路徑數(shù)量,pathi為路徑i關(guān)鍵點集合,pathj為路徑j(luò)關(guān)鍵點集合。
優(yōu)選地,步驟3.1.2,所述生長因子v=∞,即使用貪心算法,沿著生長方向一直生長,直到遇到障礙物或生長方向點。
優(yōu)選地,步驟4中,二次B樣條曲線的矩陣表示為P0,2(t),t∈[0,1],則有:
式中,P0、P1、P2為二次B樣條曲線的控制點。
本發(fā)明具有如下有益效果:
(1)本發(fā)明采用智能算法遺傳算法規(guī)劃機器人移動路徑,提出了改進遺傳算法,該算法比標準遺傳算法環(huán)境適應(yīng)能力和最優(yōu)路徑搜索能力強;
(2)本發(fā)明采用快速遍歷隨機樹算法初始化種群,提出了改進雙向快速遍歷隨機樹算法,該算法比常規(guī)的種群初始化方法效率更高,生成的初始種群多樣性更豐富,有效的促進了改進遺傳算法的路徑規(guī)劃能力;
(3)本發(fā)明的改進遺傳算法不僅全局尋優(yōu)能力強,搜索速度快,而且對復(fù)雜環(huán)境和動態(tài)環(huán)境的適應(yīng)能力強,提高了移動機器人導(dǎo)航能力;
(4)本發(fā)明結(jié)合二次B樣條曲線技術(shù),對最優(yōu)路徑進行平滑處理,使該發(fā)明規(guī)劃的路徑更容易運用于移動機器人的實際應(yīng)用中。
附圖說明
圖1是本發(fā)明的基于改進遺傳算法的移動機器人路徑規(guī)劃方法流程圖;
圖2是本發(fā)明的基于改進雙向遍歷隨機樹的種群初始化流程圖;
圖3是本發(fā)明的改進雙向快速遍歷隨機樹一次連接過程;
圖4是本發(fā)明的改進雙向快速遍歷隨機樹多次連接過程;
圖5是本發(fā)明的種群中個體相似度計算示意圖;
圖6是本發(fā)明的復(fù)雜動態(tài)環(huán)境下路徑規(guī)劃結(jié)果。
具體實施方式
下面結(jié)合具體實施方式,進一步闡述本發(fā)明。應(yīng)理解,這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對本發(fā)明作各種改動或修改,這些等價形式同樣落于本申請所附權(quán)利要求書所限定的范圍。
本發(fā)明提供的一種基于改進遺傳算法的移動機器人路徑規(guī)劃方法如圖1所示,具體預(yù)測步驟如下:
步驟1、利用柵格模型對移動機器人工作空間進行預(yù)處理;
步驟2、指定機器人移動的起始點和目標點;
步驟3、使用改進遺傳算法規(guī)劃機器人最優(yōu)移動路徑,所述改進遺傳算法包含以下兩部分:3.1采用改進的雙向快速遍歷隨機樹算法生成多樣性豐富、無不可行路徑的種群初始化,如圖2所示;3.2同時采用選擇、交叉、變異3種遺傳算子的種群進化,其中多樣性豐富是指種群分布廣度Br大,種群中的個體兩兩之間相似度小,種群中的個體兩兩之間的Hausdorff距離大,如圖5所示,點集A和點集B的Hausdorff距離H(A,B)的計算公式如下:
式中,d(a,b)為點a和點b之間的歐氏距離。
種群的廣度Br的計算公式如下:
式中,N為種群中包含的路徑數(shù)量,pathi為路徑i關(guān)鍵點集合,pathj為路徑j(luò)關(guān)鍵點集合。
步驟4、將最優(yōu)路徑的關(guān)鍵點作為控制點,通過二次B樣條曲線技術(shù),對最優(yōu)路徑進行平滑處理,得到移動機器人的平滑最優(yōu)路徑,如圖6所示,其中二次B樣條曲線的矩陣表示為P0,2(t),t∈[0,1],則有:
式中,P0、P1、P2為二次B樣條曲線的控制點。
步驟3中,3.1部分的改進遺傳算法的種群初始化步驟如下:
步驟3.1.1、初始化雙向快速遍歷隨機樹,分別設(shè)置雙向快速遍歷隨機樹中的兩棵子樹的根節(jié)點為起始點和目標點;
步驟3.1.2、雙向快速遍歷隨機樹在柵格化工作空間中自由生長,雙向快速遍歷隨機樹的一棵子樹自由生長時,在工作空間中機器人可自由行走部分隨機選擇一個點Prand作為生長方向,計算該子樹的所有樹節(jié)點與點Prand之間的歐氏距離,找出歐式距離最小的樹節(jié)點Plst,該子樹從樹節(jié)點Plst開始以生長因子v朝著點Prand生長出新的樹節(jié)點Pnew,將新的樹節(jié)點Pnew連接到子樹中,新樹節(jié)點與子樹之間的連接具體為:計算新樹節(jié)點與子樹所有節(jié)點之間的歐式距離,選擇前w個歐式距離最小的樹節(jié)點Plst,p2nd,...,pwth,判斷樹節(jié)點Plst,p2nd,...,pwth與新樹節(jié)點之間是否存在障礙物,如果否則將其與新樹節(jié)點連接,其中生長因子v=∞,即使用貪心算法,沿著生長方向一直生長,直到遇到障礙物或生長方向點;
步驟3.1.3、雙向快速遍歷隨機樹在柵格化工作空間中相向生長,雙向快速遍歷隨機樹中的一棵子樹以另一棵子樹自由生長的新樹節(jié)點Pnew為生長方向,同自由生長過程生長出新的樹節(jié)點P’new,將新的樹節(jié)點P’new連接到子樹中,當雙向快速遍歷隨機樹中兩棵子樹存在公共樹節(jié)點時,快速遍歷隨機樹便連接成功一次,如圖3所示;
步驟3.1.4、判斷雙向快速遍歷隨機樹是否在起始點和目標點之間建立足夠數(shù)量的連接,如果是則停止生長,進入步驟3.1.5,如圖4所示,否則返回步驟3.1.2繼續(xù)生長;
步驟3.1.5、使用回溯法生成初始種群,每次回溯均以雙向快速遍歷隨機樹的連接點作為回溯初始點,朝著雙向快速遍歷隨機樹的根節(jié)點進行回溯,直到回溯到根節(jié)點,回溯經(jīng)歷的樹中的節(jié)點與邊構(gòu)成無碰撞路徑,多次回溯產(chǎn)生的無碰撞路徑組成初始種群,其中雙向快速遍歷隨機樹的連接點為雙向快速遍歷隨機樹中兩棵子樹的公共樹節(jié)點。
步驟3中,3.2部分的改進遺傳算法的種群進化步驟如下:
步驟3.2.1、計算上一步得到的種群中每個個體的適應(yīng)度函數(shù)值f(pop),適應(yīng)度函數(shù)的計算公式如下:
式中,pop為種群中的一條路徑,n為路徑pop上關(guān)鍵點個數(shù),(xi,yi)為關(guān)鍵點i在工作空間中的坐標,penalty為懲罰項;
步驟3.2.2、判斷所述改進遺傳算法是否達到最大迭代次數(shù)G,如果是則保存當前最優(yōu)路徑,其中最大迭代次數(shù)G=200,進入步驟4,否則,進入步驟3.2.3;
步驟3.2.3、使用錦標賽選擇策略對種群進行選擇操作,設(shè)置錦標賽的聯(lián)賽規(guī)模為Nchamp,從種群中隨機選擇Nchamp個個體,選出適應(yīng)度最小的個體保留至下一代,重復(fù)錦標賽選擇策略直到選出足夠數(shù)量的個體,組成新種群,其中錦標賽聯(lián)賽規(guī)模Nchamp=2;
步驟3.2.4、使用單點交叉策略對步驟3.2.3得到的種群進行交叉操作,從種群中隨機選擇兩個個體作為父代,當滿足交叉概率時,分別隨機選擇父代中選擇一個關(guān)鍵點作為交叉點,交換父代交叉點之后的部分,組成兩個新個體;
步驟3.2.5、步驟3.2.4得到的種群中的個體滿足變異概率時,隨機選擇一個關(guān)鍵點作為變異點,使用變異點的8領(lǐng)域點替換變異點,替換后適應(yīng)值最小的個體保留至下一代;
步驟3.2.6、更新種群,返回步驟3.2.1繼續(xù)進化。