基於組合個體差分演化的機器人路徑規劃方法與流程
2024-03-02 08:45:15

本發明涉及機器人路徑規劃領域,尤其是涉及一種基於組合個體差分演化的機器人路徑規劃方法。
背景技術:
機器人在現代工業生產中應用非常廣泛。機器人能夠在一定程度上代替許多人類勞動力,並且它不像人類那樣會因為工作時間長了而感到疲勞。因此,機器人可以大大地提高生產效率,提高產品質量。尤其在生產高度精密產品時,機器人可以克服人為主觀因素,提高產品生產的可靠性。機器人的路徑規劃是指在機器人的工作空間範圍內,在滿足一定的約束條件下為機器人從出發點到終止點設計出一條高效可行的運動路徑,從而使機器人完成指派給其的特定任務。由於機器人路徑規劃的場景往往比較複雜,以及路徑規劃的範圍通常比較大,因此這是一個很有挑戰性的工作。
機器人的路徑規劃問題本質上是一個帶約束條件的複雜優化問題,而傳統的優化算法往往無法在工程上可忍受的搜索時間內為機器人規劃出高效可行的運動路徑。演化算法是一種模擬自然界演化規律而建立起來的智能仿生算法,它在解決許多優化問題時能夠比傳統確定性算法表現出更優越的性能。鑑於演化算法在求解複雜優化問題時的優點,人們將演化算法引入到機器人路徑規劃問題的求解中。例如,姜英傑利用遺傳算法優化變電站巡檢機器人的路徑規劃(姜英傑,呂學勤,段利偉等.柵格遺傳算法的變電站巡檢機器人路徑規劃[J].科技與創新,2015,(6):12-14);田欣等利用先驗知識來指導可行路徑的搜索,並設計了自適應的遺傳參數機制,以此提高路徑規劃的效率(田欣,劉廣瑞,周文博等.基於改進自適應遺傳算法的機器人路徑規劃研究[J].工具機與液壓,2016,44(17):24-28,62);陳剛和沈林成針對複雜環境的獨有因素,在傳統遺傳算法的基礎上設計了特定的搜索算子及新的適應值函數來優化機器人的運動路徑(陳剛,沈林成.複雜環境下路徑規劃問題的遺傳路徑規劃方法[J].機器人,2001,23(1):40-44,50)。
從現有的研究成果中可知,演化算法已經廣泛應用於解決機器人路徑規劃問題。但是對傳統演化算法在求解機器人路徑規劃問題時容易出現收斂速度慢,路徑規劃效率不高的缺點。
技術實現要素:
本發明針對傳統演化算法在求解機器人路徑規劃問題時容易出現收斂速度慢,路徑規劃效率不高的缺點,提出一種基於組合個體差分演化的機器人路徑規劃方法。本發明能夠提高機器人路徑規劃的效率。
本發明的技術方案:一種基於組合個體差分演化的機器人路徑規劃方法,包括以下步驟:
步驟1,對機器人路徑規劃區域的環境進行建模,得到路徑規劃區域的地圖,然後對地圖進行柵格化;
步驟2,用戶初始化參數,所述初始化參數包括路徑的關鍵節點數量D,種群大小Popsize,最大評價次數MAX_FEs,雜交率Cr和縮放因子F;
步驟3,當前演化代數t=0,當前評價次數FEs=0;
步驟4,輸入機器人路徑規劃的起始點坐標,然後輸入機器人路徑規劃的終止點坐標;
步驟5,隨機產生初始種群其中:下標i=1,2,...,Popsize,並且為種群Pt中的第i個個體,存儲了D個關鍵節點的橫坐標和縱坐標;
步驟6,計算種群Pt中每個個體的適應值;然後令當前評價次數FEs=FEs+Popsize;
步驟7,保存種群Pt中的最優個體Bestt;
步驟8,令計數器ki=1;
步驟9,如果計數器ki大於種群大小Popsize,則轉到步驟15,否則轉到步驟10;
步驟10,執行基於組合基礎個體的操作算子產生一個試驗個體其步驟如下:
步驟10.1,令計數器mj=1;
步驟10.2,在[1,2×D]之間隨機產生一個正整數jRand;
步驟10.3,在[1,Popsize]之間隨機產生兩個不相等的正整數RI1和RI2;
步驟10.4,如果個體的適應值比個體的適應值更優,則令RI1=RI2,否則保持RI1不變;
步驟10.5,在[0,1]之間產生了一個服從均勻分布的隨機實數W,然後令組合基礎個體
步驟10.6,在[1,Popsize]之間隨機產生兩個互不相等的正整數RI3和RI4;
步驟10.7,如果計數器mj小於或等於2×D,則轉到步驟10.8,否則轉到步驟11;
步驟10.8,在[0,1]之間產生一個隨機實數r1,如果r1小於雜交率Cr或者計數器mj等於jRand,則轉到步驟10.9,否則轉到步驟10.12;
步驟10.9,
步驟10.10,獲取所對應的關鍵節點的坐標TPU,如果坐標TPU所在地圖中的位置標記有障礙物,則隨機產生的值直到所對應的關鍵節點的坐標在地圖中的位置沒有標記障礙物;
步驟10.11,轉到步驟10.13;
步驟10.12,
步驟10.13,令計數器mj=mj+1,然後轉到步驟10.7;
步驟11,對試驗個體執行局部搜索,具體步驟如下:
步驟11.1,對試驗個體進行解碼得到D個關鍵節點的坐標:TP1,TP2,...,TPD;
步驟11.2,令TP0為機器人路徑規劃的起始點坐標,並令TPD+1為機器人路徑規劃的終止點坐標;
步驟11.3,令計數器STB=0;
步驟11.4,令計數器BN=0,並令計數器tpi=0;
步驟11.5,在TPtpi與TPtpi+1之間進行插值得到一條直線;如果TPtpi與TPtpi+1之間插值得到的直線上存在著一個點的坐標在地圖中標記有障礙物,則令BN=BN+1,並令STB=tpi,否則保持BN和STB不變;
步驟11.6,令計數器tpi=tpi+1;
步驟11.7,如果tpi大於D,則轉到步驟11.8,否則轉到步驟11.5;
步驟11.8,如果BN大於0並且BN小於3則轉到步驟11.9,否則轉到步驟12;
步驟11.9,如果STB等於0,則令STB=STB+1,否則保持STB不變;
步驟11.10,令最大局部搜索次數Max_Rand=300;
步驟11.11,令計數器kj=1;
步驟11.12,如果kj大於Max_Rand,則轉到步驟12,否則轉到步驟11.13;
步驟11.13,隨機產生試驗個體中第STB個關鍵節點的坐標;
步驟11.14,令計數器kj=kj+1,並令TPSTB為試驗個體中第STB關鍵節點的坐標;
步驟11.15,如果TPSTB與TPSTB+1之間插值得到的直線上存在著一個點的坐標在地圖中標記有障礙物,則轉到步驟11.12,否則轉到步驟11.16;
步驟11.16,如果TPSTB-1與TPSTB之間插值得到的直線上存在著一個點的坐標在地圖中標記有障礙物,則轉到步驟11.12,否則轉到步驟12;
步驟12,計算試驗個體的適應值,並令當前評價次數FEs=FEs+1;
步驟13,按以下公式在個體與試驗個體之間選擇更優者進入下一代種群:
步驟14,令計數器ki=ki+1,然後轉到步驟9;
步驟15,保存種群Pt中的最優個體Bestt,並令當前演化代數t=t+1;
步驟16,重複步驟8至步驟15直至當前評價次數FEs達到MAX_FEs後結束,將執行過程中得到的最優個體Bestt解碼為D個關鍵節點的坐標,即可得到機器人的規劃路徑。
本發明採用關鍵結點的方式表示機器人的路徑,並利用組合個體差分演化來優化機器人路徑的關鍵結點。在組合個體差分演化算法中,利用最優個體與隨機個體的信息生成組合個體,並以組合個體來引導算法的搜索方向。此外,在搜索過程中執行局部搜索以提高解的質量。本發明能夠提高機器人路徑規劃的效率。
附圖說明
圖1為本發明的流程圖。
具體實施方式
下面通過實施例,並結合附圖,對本發明的技術方案作進一步具體的說明。
實施例:
步驟1,對機器人路徑規劃區域的環境進行建模,得到路徑規劃區域的地圖,然後對地圖進行柵格化;
步驟2,用戶初始化參數,所述初始化參數包括路徑的關鍵節點數量D=6,種群大小Popsize=30,最大評價次數MAX_FEs=35000,雜交率Cr=0.1和縮放因子F=0.5;
步驟3,當前演化代數t=0,當前評價次數FEs=0;
步驟4,輸入機器人路徑規劃的起始點坐標,然後輸入機器人路徑規劃的終止點坐標;
步驟5,隨機產生初始種群其中:下標i=1,2,...,Popsize,並且為種群Pt中的第i個個體,存儲了6個關鍵節點的橫坐標和縱坐標;
步驟6,計算種群Pt中每個個體的適應值;然後令當前評價次數FEs=FEs+Popsize;
步驟7,保存種群Pt中的最優個體Bestt;
步驟8,令計數器ki=1;
步驟9,如果計數器ki大於種群大小Popsize,則轉到步驟15,否則轉到步驟10;
步驟10,執行基於組合基礎個體的操作算子產生一個試驗個體其步驟如下:
步驟10.1,令計數器mj=1;
步驟10.2,在[1,2×D]之間隨機產生一個正整數jRand;
步驟10.3,在[1,Popsize]之間隨機產生兩個不相等的正整數RI1和RI2;
步驟10.4,如果個體的適應值比個體的適應值更優,則令RI1=RI2,否則保持RI1不變;
步驟10.5,在[0,1]之間產生了一個服從均勻分布的隨機實數W,然後令組合基礎個體
步驟10.6,在[1,Popsize]之間隨機產生兩個互不相等的正整數RI3和RI4;
步驟10.7,如果計數器mj小於或等於2×D,則轉到步驟10.8,否則轉到步驟11;
步驟10.8,在[0,1]之間產生一個隨機實數r1,如果r1小於雜交率Cr或者計數器mj等於jRand,則轉到步驟10.9,否則轉到步驟10.12;
步驟10.9,
步驟10.10,獲取所對應的關鍵節點的坐標TPU,如果坐標TPU所在地圖中的位置標記有障礙物,則隨機產生的值直到所對應的關鍵節點的坐標在地圖中的位置沒有標記障礙物;
步驟10.11,轉到步驟10.13;
步驟10.12,
步驟10.13,令計數器mj=mj+1,然後轉到步驟10.7;
步驟11,對試驗個體執行局部搜索,具體步驟如下:
步驟11.1,對試驗個體進行解碼得到6個關鍵節點的坐標:TP1,TP2,...,TPD;
步驟11.2,令TP0為機器人路徑規劃的起始點坐標,並令TPD+1為機器人路徑規劃的終止點坐標;
步驟11.3,令計數器STB=0;
步驟11.4,令計數器BN=0,並令計數器tpi=0;
步驟11.5,在TPtpi與TPtpi+1之間進行插值得到一條直線;如果TPtpi與TPtpi+1之間插值得到的直線上存在著一個點的坐標在地圖中標記有障礙物,則令BN=BN+1,並令STB=tpi,否則保持BN和STB不變;
步驟11.6,令計數器tpi=tpi+1;
步驟11.7,如果tpi大於D,則轉到步驟11.8,否則轉到步驟11.5;
步驟11.8,如果BN大於0並且BN小於3則轉到步驟11.9,否則轉到步驟12;
步驟11.9,如果STB等於0,則令STB=STB+1,否則保持STB不變;
步驟11.10,令最大局部搜索次數Max_Rand=300;
步驟11.11,令計數器kj=1;
步驟11.12,如果kj大於Max_Rand,則轉到步驟12,否則轉到步驟11.13;
步驟11.13,隨機產生試驗個體中第STB個關鍵節點的坐標;
步驟11.14,令計數器kj=kj+1,並令TPSTB為試驗個體中第STB關鍵節點的坐標;
步驟11.15,如果TPSTB與TPSTB+1之間插值得到的直線上存在著一個點的坐標在地圖中標記有障礙物,則轉到步驟11.12,否則轉到步驟11.16;
步驟11.16,如果TPSTB-1與TPSTB之間插值得到的直線上存在著一個點的坐標在地圖中標記有障礙物,則轉到步驟11.12,否則轉到步驟12;
步驟12,計算試驗個體的適應值,並令當前評價次數FEs=FEs+1;
步驟13,按以下公式在個體與試驗個體之間選擇更優者進入下一代種群:
步驟14,令計數器ki=ki+1,然後轉到步驟9;
步驟15,保存種群Pt中的最優個體Bestt,並令當前演化代數t=t+1;
步驟16,重複步驟8至步驟15直至當前評價次數FEs達到MAX_FEs後結束,將執行過程中得到的最優個體Bestt解碼為6個關鍵節點的坐標,即可得到機器人的規劃路徑。
本文中所描述的具體實施例僅僅是對本發明精神作舉例說明。本發明所屬技術領域的技術人員可以對所描述的具體實施例做各種各樣的修改或補充或採用類似的方式替代,但並不會偏離本發明的精神或者超越所附權利要求書所定義的範圍。