楊坤,程鵬
(1.沈陽工學院,遼寧 撫順 113122;2.沈陽理工大學,遼寧 沈陽 110159)
機器人路徑規(guī)劃一直是學術界追蹤的熱點問題,其核心目標是身處存在阻礙的環(huán)境中,如何給機器人找出一條路徑,使其既能夠避開障礙物,又能夠到達指定目標位置。需要考慮到如何獲取環(huán)境信息、如何表示環(huán)境、如何進行路徑執(zhí)行以及如何獲取知識等多方面內容。
路徑規(guī)劃可以分為在線路徑規(guī)劃和離線路徑規(guī)劃。前者是一種基于傳感器信息的環(huán)境未知的路徑規(guī)劃方法,并且必須在線規(guī)劃路徑。后者是基于環(huán)境的全局路徑規(guī)劃,適用于靜態(tài)環(huán)境的先驗完整信息,并且必須離線規(guī)劃路徑。靜態(tài)路徑規(guī)劃意味著機器人工作所在的環(huán)境是已知的且是靜態(tài)的。在機器人移動之前,路徑的選定是依照既定的環(huán)境信息進行規(guī)劃的,擇出最佳路徑后,使機器人沿著選定路徑從始發(fā)點到目的地。一般來說,可選路徑的數(shù)目不只一條。在實際應用中,通常需要在某種特定情況下選擇出一條最佳路徑。通用標準包括最短路徑,最短用時以及最低能耗[1-2]。此外,為了提升機器人在路徑規(guī)劃方面的效率并更好地滿足實時性要求,通常將遺傳算法和模擬退火算法引入機器人的靜態(tài)路徑規(guī)劃和設計中。遺傳算法雖然可以從概率的角度隨機找到全局最優(yōu)解,而模擬退火算法能夠去除局部最優(yōu)解,恰好彌補了遺傳算法局部尋優(yōu)差的弊端。因此,遺傳算法與模擬退火算法的聯(lián)合是解決靜態(tài)路徑規(guī)劃問題的一種方法。
遺傳模擬退火(Genetic Simulated Annealing,GSA)算法是將遺傳算法和模擬退火算法相結合的一種優(yōu)化算法。它不僅包含遺傳算法的并行性和全局性,而且包含模擬退火算法的退火性和局部搜索能力。GSA算法的基本流程:
(1)參數(shù)的選?。喝后w規(guī)模為n,遺傳代數(shù)最值為N,初始溫度T=T0。
(2)初始溫度變更次數(shù)l=0,0代種群Pl(k),k=0。
(3)對現(xiàn)有種群執(zhí)行以下步驟,直至產生下批種群。
①在初始群體Pl(k)中算出適應函數(shù)fi(t1);依據(jù)適應函數(shù)的概率分布從Pl(k)中選n個染色體形成種群Pls(k+1)。
②按常規(guī)遺傳算法對染色體種群Pls(k+1)交叉,得到種群Plc1(k+1);在種群Plc1(k+1)中參與交叉操作的單值i和單值j,接收概率Pi和Pj如式1和2所示。經迭代,生成新種群Plc1(k+1)。
其中,種群Pls(k+1)中某單值i的目標值是f(i),種群Plc1(k+1)中某單值i的目標值是f(i');種群Pls(k+1)中某單值j的目標值是f(j),種群Plc1(k+1)中某單值j的目標值是f(j')。
③根據(jù)常規(guī)遺傳算法對種群Plc(k+1)進行再變異獲得Plm1(k+1);然后依公式(2.1)中的概率對變異后的個體進行接受,生成新種群Plm(k+1)。
④Pl(k)=Plm(k+1),k=k+1。觀測遺傳代數(shù),若代數(shù)為N,則轉到步驟③,若小于N,則轉向步驟①。
(4)將溫度變更,tl+1=d(t1),Pl1(k)=Pl(k),l=l+1,k=0。如果滿足條件,停止,輸出最優(yōu)解;不滿足,則轉向步驟①。
環(huán)境建模是機器人通過控制傳感器感知外部環(huán)境,從而建立適合于描述外部環(huán)境的數(shù)學模型的過程。關鍵在于障礙物的表示,通??梢灶A測全球環(huán)境數(shù)據(jù)。環(huán)境建模利用數(shù)學模型來概括已知機器人的視角。環(huán)境建模是機器人進行路徑規(guī)劃和規(guī)避障礙的核心操作。路徑規(guī)劃方法中,被專家學者最為關注的方法之一就是網(wǎng)格解耦方法,它將機器人的能動空間劃分為若干簡單的網(wǎng)格,進而形成一個連接圖,在該圖上搜索從起始網(wǎng)格到目標網(wǎng)格的路徑。該方法可以確保只要在起點和目標點之間存在一條路徑,就可以完整地搜索該路徑[4-5]。
假定機器人處于二維工作空間內,障礙物的大小、所在坐標以及各項參數(shù)均保持不變,將此二維工作空間分成等大的網(wǎng)格,其面積限制在機器人可以自由移動的范圍。若是網(wǎng)格中不存在任何阻擋,則為自由網(wǎng)格;否則稱為障礙網(wǎng)格。網(wǎng)格由自由網(wǎng)格和障礙網(wǎng)格組成。機器人環(huán)境工作空間建立如圖1所示。圖中黑色區(qū)域是障礙網(wǎng)格。
圖1 機器人環(huán)境的建立
圖2所示為基于GSA算法的路徑規(guī)劃問題求解過程。其流程可用下述步驟來描述[5-6]。
圖2 GSA算法的路徑規(guī)劃問題求解過程
步驟1:遺傳代數(shù)t初始值設為0;初始路徑集合選用隨機P(t)。
步驟2:選定初始路徑值T=max。
步驟3:評價P(t)中各條路徑的適應值
步驟5:由交叉算子進行子代路徑交叉操作
步驟6:由變異算子進行子代路徑變異操作
步驟7:評價P''(t)中各條路徑的適應值
步驟8:假設上述遺傳操作是由P(t)中的父代路徑PI和PJ生成:P''(t)中的子代路徑CI和CJ(I,J=1,2,...,M),選定概率Pi和Pj,將PI、PJ設為新路徑,選定概率(1-Pi)和(1-Pj),將CI和CJ設為新路徑,進而產生單代遺傳后的新路徑
步驟9:由擇優(yōu)選擇模型保留最佳路徑
步驟10:停止判斷條件。若不滿足停止條件,則根據(jù)降溫表設定溫度T,t=t-1,返回步驟3。
當達到停止條件或增加到設定迭代次數(shù)時,即可獲得當前最佳路徑,算法結束。
為了驗證所提出方法的合理性和正確性,本文以Visual C++6.0為仿真工具,設M為種群個數(shù),值為50,Pc為交叉概率,值為0.6,Pm為變異概率,值為0.01,n為編碼長度,值為16,即選用16個點構成單路。圖3和圖4分別為迭代4次和5次時的仿真結果,路徑規(guī)劃最優(yōu)曲線如圖所示,該路徑無尖峰點,已知障礙物大小、方位及其參數(shù)不變。
圖3 迭代4次對應的路徑規(guī)劃結果
圖4 迭代5次對應的路徑規(guī)劃結果
在對機器人傳統(tǒng)路徑規(guī)劃算法進行分析的基礎上,實現(xiàn)機器人靜態(tài)路徑規(guī)劃利用了GSA算法,驗證了該方法的合理性和正確性,為后續(xù)機器人領域的研究提供了技術支撐。