本發(fā)明屬于機(jī)器人路徑規(guī)劃技術(shù)領(lǐng)域,涉及一種機(jī)器人路徑規(guī)劃方法,尤其涉及一種基于改進(jìn)遺傳算法的機(jī)器人路徑規(guī)劃方法。
背景技術(shù):
隨著工業(yè)化的發(fā)展,機(jī)器人的應(yīng)用領(lǐng)域在不斷拓寬,機(jī)器人已經(jīng)大量應(yīng)用到電力行業(yè),代替人工進(jìn)行線路巡檢。實(shí)現(xiàn)有效的多移動(dòng)機(jī)器人自主式運(yùn)行,考慮到安全、有效的應(yīng)用目標(biāo),實(shí)現(xiàn)自主路徑規(guī)劃、協(xié)作運(yùn)行、合作完成任務(wù)等已經(jīng)成為移動(dòng)機(jī)器人發(fā)展的方向。近年來(lái)許多路徑規(guī)劃的方法被人們所研究。主要的路徑規(guī)劃的方法可以分為兩類——人工智能的方法和人工勢(shì)場(chǎng)法。前者主要運(yùn)用的方法有遺傳算法、模糊邏輯控制和人工神經(jīng)網(wǎng)絡(luò)。人工勢(shì)場(chǎng)法簡(jiǎn)單、方便、規(guī)劃路徑比較平滑、便于實(shí)時(shí)控制,但在全局路徑規(guī)劃上存在局限性,會(huì)出現(xiàn)震蕩、停滯的現(xiàn)象;柵格法簡(jiǎn)單、靈活,但在環(huán)境復(fù)雜時(shí),效率不高;遺傳算法和神經(jīng)網(wǎng)絡(luò)算法,算法本身都比較復(fù)雜,實(shí)時(shí)性稍差,但都屬于全局算法。通常的遺傳算法并不能完全解決獲得最優(yōu)巡檢路徑問(wèn)題,巡檢機(jī)器人在執(zhí)行巡檢任務(wù)時(shí),規(guī)劃的巡檢路徑不能夠按照最優(yōu)路徑巡檢,從而增加了巡檢時(shí)間,導(dǎo)致巡檢機(jī)器人執(zhí)行效率低下,需要設(shè)計(jì)一種新的路徑規(guī)劃算法,從根本上解決巡檢機(jī)器人最優(yōu)巡檢路徑計(jì)算問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
為解決現(xiàn)有技術(shù)存在的問(wèn)題,本發(fā)明提供一種基于改進(jìn)遺傳算法的機(jī)器人路徑規(guī)劃方法,采用特殊優(yōu)化過(guò)的遺傳算法,隨著時(shí)間的推移,機(jī)器人巡檢次數(shù)的增多,規(guī)劃出的路徑會(huì)變得越來(lái)越優(yōu)。
本發(fā)明提供的基于改進(jìn)遺傳算法的機(jī)器人路徑規(guī)劃方法,包括以下步驟:
(1)采集所有巡檢點(diǎn)NODE,并記錄下所有巡檢點(diǎn)的位置坐標(biāo),將需要的巡檢路徑連線,并記錄下所有的巡檢路徑EDGE;
(2)根據(jù)所有巡檢點(diǎn)NODE以及巡檢路徑EDGE,計(jì)算出任意兩個(gè)巡檢點(diǎn)的最短路徑;
(3)機(jī)器人接收到一個(gè)新的巡檢任務(wù)指令,首先搜索最優(yōu)路徑數(shù)據(jù)庫(kù)DB,該最優(yōu)路徑數(shù)據(jù)庫(kù)DB中記錄所有已經(jīng)通過(guò)遺傳算法求出的最優(yōu)路徑,如果此次任務(wù)路徑存在于最優(yōu)路徑數(shù)據(jù)庫(kù)DB,直接取最優(yōu)路徑數(shù)據(jù)庫(kù)DB中的最優(yōu)路徑,輸出最優(yōu)路徑;如果不存在,則計(jì)算出近似最優(yōu)路徑L,輸出該近似最優(yōu)路徑L,同時(shí)執(zhí)行下一步;
(4)將此次巡檢的所有巡檢點(diǎn)作為遺傳算法的初始群體,步驟(2)中計(jì)算出的任意兩個(gè)巡檢點(diǎn)的最短路徑作為遺傳算法的基礎(chǔ)數(shù)據(jù),計(jì)算初始群體的每個(gè)個(gè)體的適應(yīng)值,并判斷初始群體的個(gè)體中是否存在到達(dá)預(yù)設(shè)的最大適應(yīng)值閾值的個(gè)體,如果存在,則輸出最優(yōu)路徑并記錄進(jìn)最優(yōu)路徑數(shù)據(jù)庫(kù)DB;否則進(jìn)入下一步;
(5)根據(jù)每個(gè)個(gè)體的適應(yīng)值計(jì)算出被選擇的概率,其中選擇概率最大的個(gè)體進(jìn)行自我復(fù)制,將得到的新個(gè)體添加到新群體中;同時(shí)在群體中隨機(jī)選擇兩個(gè)個(gè)體執(zhí)行交叉,得到兩個(gè)新的個(gè)體添加到新群體中;選擇一個(gè)個(gè)體和個(gè)體變異點(diǎn)進(jìn)行變異得到新的個(gè)體添加到新群體中;
(6)計(jì)算新群體的每個(gè)個(gè)體的適應(yīng)值,并判斷新群體的個(gè)體中是否存在到達(dá)預(yù)設(shè)的最大適應(yīng)值閾值的個(gè)體,如果存在,則輸出最優(yōu)路徑并記錄進(jìn)最優(yōu)路徑數(shù)據(jù)庫(kù)DB,否則返回步驟(5)。
優(yōu)選地,所述步驟(2)中,采用Floyd-Warshall算法計(jì)算出任意兩個(gè)巡檢點(diǎn)的最短路徑。
優(yōu)選地,所述步驟(3)中,采用貪心算法計(jì)算出近似最優(yōu)路徑L,步驟(2)中計(jì)算出的任意兩個(gè)巡檢點(diǎn)的最短路徑作為貪心算法的基礎(chǔ)數(shù)據(jù)。
為解決現(xiàn)有巡檢機(jī)器人不能實(shí)時(shí)規(guī)劃最優(yōu)路徑,本發(fā)明采用在機(jī)器人系統(tǒng)初始化時(shí),采用floyd-warshall算法求出任意兩個(gè)巡檢點(diǎn)之間的最短路徑;然后將該算法的解作為遺傳算法的基礎(chǔ)數(shù)據(jù),計(jì)算出下次機(jī)器人做巡檢任務(wù)的最優(yōu)路徑,這樣不斷的迭代,使機(jī)器人規(guī)劃的路徑越來(lái)越智能,以最大程度上提高系統(tǒng)的可靠性與導(dǎo)航精度。由于路徑規(guī)劃采用特殊優(yōu)化過(guò)的遺傳算法,所以,隨著時(shí)間的推移,機(jī)器人巡檢次數(shù)的增多,規(guī)劃出的路徑會(huì)變得越來(lái)越優(yōu)。
附圖說(shuō)明
圖1為本發(fā)明流程圖。
具體實(shí)施方式
本發(fā)明提供的機(jī)器人路徑規(guī)劃方法,采集了所有巡檢點(diǎn)NODE,并記錄下所有巡檢點(diǎn)的位置坐標(biāo),將需要的巡檢路徑連線,并記錄下所有的巡檢路徑EDGE;根據(jù)所有巡檢點(diǎn)NODE以及巡檢路徑EDGE計(jì)算出任意兩個(gè)巡檢點(diǎn)的最短路徑,本發(fā)明采用Floyd-Warshall算法求出任意兩個(gè)巡檢點(diǎn)之間的近似最優(yōu)路徑。
floyd-Warshall算法用來(lái)找出每對(duì)點(diǎn)之間的最短距離,通過(guò)考慮最佳子路徑來(lái)得到最佳路徑。其偽代碼如下:
本發(fā)明還具有一個(gè)最優(yōu)路徑數(shù)據(jù)庫(kù)DB,該最優(yōu)路徑數(shù)據(jù)庫(kù)DB中記錄所有已經(jīng)通過(guò)遺傳算法求出的最優(yōu)路徑,并不斷被更新。當(dāng)機(jī)器人接收到一個(gè)新的巡檢任務(wù)指令時(shí),首先搜索最優(yōu)路徑數(shù)據(jù)庫(kù)DB,如果此次任務(wù)路徑存在于最優(yōu)路徑數(shù)據(jù)庫(kù)DB中,直接去最優(yōu)路徑數(shù)據(jù)庫(kù)DB中的最優(yōu)路徑作為機(jī)器人的實(shí)際巡檢路徑,機(jī)器人根據(jù)該最優(yōu)路徑執(zhí)行巡檢任務(wù)。如果此時(shí)的最優(yōu)路徑數(shù)據(jù)庫(kù)DB中不存在這樣的最優(yōu)路徑,則計(jì)算出近似最優(yōu)路徑L,機(jī)器人根據(jù)近似最優(yōu)路徑L執(zhí)行巡檢任務(wù)。近似最優(yōu)路徑L可以通過(guò)多種算法計(jì)算得到,經(jīng)過(guò)大量實(shí)驗(yàn)發(fā)現(xiàn),貪心算法無(wú)論是在效率上還是結(jié)果上都具有很好的效果,本發(fā)明優(yōu)先采用貪心算法計(jì)算出計(jì)算出近似最優(yōu)路徑L,F(xiàn)loyd-Warshall算法計(jì)算出任意兩個(gè)巡檢點(diǎn)的最短路徑作為貪心算法的基礎(chǔ)數(shù)據(jù)。
本發(fā)明在最優(yōu)路徑數(shù)據(jù)庫(kù)DB具有本次巡檢任務(wù)路徑的最優(yōu)路徑的情況下,機(jī)器人按照最優(yōu)路徑巡檢,當(dāng)不存在最優(yōu)路徑時(shí),計(jì)算出近似最優(yōu)路徑L并照此路徑執(zhí)行巡檢任務(wù)。同時(shí),本發(fā)明不斷更新最優(yōu)路徑數(shù)據(jù)庫(kù)DB,在機(jī)器人按照近似最優(yōu)路徑L執(zhí)行巡檢任務(wù)的情況下,為了機(jī)器人下一次執(zhí)行任務(wù)時(shí)可以根據(jù)最優(yōu)路徑執(zhí)行任務(wù),本發(fā)明采用遺傳算法更新最優(yōu)路徑數(shù)據(jù)庫(kù)DB,如圖1所示,具體包括以下步驟:
(1)將此次巡檢的所有巡檢點(diǎn)作為遺傳算法的初始群體,F(xiàn)loyd-Warshall算法計(jì)算出任意兩個(gè)巡檢點(diǎn)的最短路徑作為遺傳算法的基礎(chǔ)數(shù)據(jù),一般作為計(jì)算染色體的適應(yīng)性的基礎(chǔ)數(shù)據(jù),計(jì)算初始群體的每個(gè)個(gè)體的適應(yīng)值,并判斷初始群體的個(gè)體中是否存在到達(dá)預(yù)設(shè)的最大適應(yīng)值閾值的個(gè)體,最大適應(yīng)值閾值根據(jù)效率高和結(jié)果最優(yōu)的原則選擇合適的數(shù)值,如果存在,則輸出最優(yōu)路徑并記錄進(jìn)最優(yōu)路徑數(shù)據(jù)庫(kù)DB;否則進(jìn)入下一步;
(2)根據(jù)每個(gè)個(gè)體的適應(yīng)值計(jì)算出被選擇的概率,其中選擇概率最大的個(gè)體進(jìn)行自我復(fù)制,將得到的新個(gè)體添加到新群體中;同時(shí)在群體中隨機(jī)選擇兩個(gè)個(gè)體執(zhí)行交叉,得到兩個(gè)新的個(gè)體添加到新群體中;選擇一個(gè)個(gè)體和個(gè)體變異點(diǎn)進(jìn)行變異得到新的個(gè)體添加到新群體中;
(3)計(jì)算新群體的每個(gè)個(gè)體的適應(yīng)值,并判斷新群體的個(gè)體中是否存在到達(dá)預(yù)設(shè)的最大適應(yīng)值閾值的個(gè)體,如果存在,則輸出最優(yōu)路徑并記錄進(jìn)最優(yōu)路徑數(shù)據(jù)庫(kù)DB,否則返回步驟(2)。
由于使用改進(jìn)的遺傳算法,使得機(jī)器人能夠隨著時(shí)間的推移,越來(lái)越智能地規(guī)劃出去往巡檢點(diǎn)的路徑,以最大程度上提高系統(tǒng)的可靠性與導(dǎo)航精度。