張 寧, 葛 斌
(安徽理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南232001)
隨著機(jī)器人技術(shù)和自動化的發(fā)展,移動機(jī)器人被廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)和家庭環(huán)境中[1]。路徑規(guī)劃問題是移動機(jī)器人技術(shù)的一個重要環(huán)節(jié)。在許多實(shí)際應(yīng)用場景下,路徑規(guī)劃往往是在未知環(huán)境中進(jìn)行,如礦井救援、水下機(jī)器人控制、資源勘探等。在未知環(huán)境下無法獲知障礙物的全部信息,只能感知環(huán)境的部分信息,所以機(jī)器人在未知環(huán)境下的路徑規(guī)劃比已知環(huán)境更為困難。對于路徑規(guī)劃有一些傳統(tǒng)的方法,粒子群算法[2],蟻群算法[3]。這些算法雖然可以實(shí)現(xiàn)路徑規(guī)劃,但是不具備環(huán)境適應(yīng)性,需要事先搭建環(huán)境模型。強(qiáng)化學(xué)習(xí)不需要環(huán)境模型,它的學(xué)習(xí)方式是不斷的進(jìn)行試錯。在路徑規(guī)劃中,移動機(jī)器人學(xué)會了如何制定一系列動作來獲得最大的回報(bào)[4-5]。近年來許多研究學(xué)者對強(qiáng)化學(xué)習(xí)在機(jī)器人路徑規(guī)劃上的應(yīng)用進(jìn)行了研究Ee Soong Low等人用FPA算法來改進(jìn)Q-learning的初始化,加快了Q-learning的收斂速度[5]。徐嘵蘇等人將人工勢場的引力勢場引入到Q值初始化的過程中加快了收斂速度[6]。董瑤等人提出了基于競爭網(wǎng)絡(luò)結(jié)構(gòu)的改進(jìn)深度雙Q網(wǎng)絡(luò),使機(jī)器人到達(dá)目標(biāo)點(diǎn)成功率得到了提高[8]。但是這些方法都沒有解決連續(xù)動作空間的問題。用DDPG算法來規(guī)劃機(jī)器人路徑。針對DDPG算法在機(jī)器人路徑規(guī)劃上存在收斂速度慢等問題,對DDPG算法做如下改進(jìn):(1)引入改進(jìn)的人工勢場,加快DDPG算法的收斂速度和機(jī)器人到達(dá)目標(biāo)點(diǎn)的速度。(2)根據(jù)移動機(jī)器人運(yùn)動的實(shí)際情況,增加了直走獎勵,避免機(jī)器人陷入局部最優(yōu)。
Pioneer3移動機(jī)器人的模型如圖(1)所示,后驅(qū)輪和前驅(qū)輪是該機(jī)器人的主要組成部分,后驅(qū)輪的速度為v,q(x,y,θ)表示移動機(jī)器人位姿,(x,y)為后軸點(diǎn)的參考點(diǎn),θ為移動機(jī)器人坐標(biāo)位置和空間坐標(biāo)位置的夾角,φ為轉(zhuǎn)向角;L1為前后輪的軸距。
移動機(jī)器人運(yùn)動學(xué)模型為:
DDPG是TP Lillicrap等人在2016年對深度神經(jīng)網(wǎng)絡(luò)和DPG算法進(jìn)行融合,并根據(jù)DPG算法和AC算法提出了一個無模型的強(qiáng)化學(xué)習(xí)算法[8]。DDPG算法做到了在連續(xù)空間選取動作的方法,而DQN算法只可以在離散動作空間選取動作?;贒DPG算法機(jī)器人路徑規(guī)劃框架圖如圖(2)所示。DDPG算法利用Actor網(wǎng)絡(luò)產(chǎn)生路徑規(guī)劃策略,加入探索噪聲后送入移動機(jī)器人進(jìn)行執(zhí)行。通過傳感器獲的當(dāng)前狀態(tài)信息s t,執(zhí)行動作a,接著通過事先回報(bào)函數(shù)計(jì)算當(dāng)前回報(bào)值。算法訓(xùn)練得到的經(jīng)驗(yàn)軌跡(s t,a t,r t,s t+1)存入經(jīng)驗(yàn)緩沖池里,進(jìn)行隨機(jī)抽取,這樣可以避免時(shí)間的關(guān)聯(lián)性和依賴性。然后利用梯度下降法對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。DDPG算法的基本框架為Actor-Critic算法。在DDPG算法中,分別使用為θμ的策略網(wǎng)絡(luò)來表示確定性動作選擇策略a=μ(s|θμ),輸入為當(dāng)前狀態(tài)s,輸出確定性的動作值a;使用參數(shù)為θQ的價(jià)值網(wǎng)絡(luò)來表示動作值函數(shù)Q(s,a|θq),用于求解貝爾曼方程。DDPG算法的目標(biāo)函數(shù)被定義為折扣累積獎勵的期望,表達(dá)式為:
DDPG算法訓(xùn)練的目標(biāo)是最大化目標(biāo)函數(shù)Jβ(μ),同時(shí)最小化價(jià)值網(wǎng)絡(luò)Q的損失。
圖1 移動機(jī)器人模型
圖2 基于DDPG算法機(jī)器人路徑規(guī)劃框架
DDPG算法規(guī)劃的路徑冗余且不平坦。而且DDPG算法在探索前期沒有先驗(yàn)知識,只能隨機(jī)的選擇要執(zhí)行的動作。當(dāng)機(jī)器人面對復(fù)雜環(huán)境時(shí)收斂速度慢,易陷入局部迭代?;谝陨蠁栴}引入人工勢場的方法,以提高機(jī)器人前期的學(xué)習(xí)效率。使算法更快的收斂,加快機(jī)器人到達(dá)目標(biāo)點(diǎn)的速度。
對于傳統(tǒng)的人工勢場來說,當(dāng)目標(biāo)點(diǎn)在障礙物附近,機(jī)器人向目標(biāo)點(diǎn)移動的過程中,也會受到障礙物的影響。這樣會導(dǎo)致機(jī)器人受到的吸引力減小,會造成目標(biāo)不可達(dá)的現(xiàn)象。[10]所以使用改進(jìn)后的人工勢場。機(jī)器人在X=[x,y]T總勢場值為:
其中k為位置的增益系數(shù),ρ(X,X g)是機(jī)器人當(dāng)前位置與目標(biāo)X goal之間的距離。
η為增益系數(shù),ρ代表機(jī)器人與障礙物之間的最短距離,ρ0為障礙物的影響距離,通常為一個常數(shù)。
此時(shí),勢場中各狀態(tài)的勢場值代表狀態(tài)s i的最大累積回報(bào)V(s i)。
根據(jù)式(5)來跟新狀態(tài)值函數(shù)Q值:
利用單步跟新的方式定義避障上的獎賞函數(shù)。在移動機(jī)器人路徑規(guī)劃的場景中,強(qiáng)化學(xué)習(xí)的最終目標(biāo)是使機(jī)器人的累積獎勵值最大。獎賞函數(shù)決定了策略的好壞。所以增加直走獎勵。避免機(jī)器人陷入局部最優(yōu)。獎勵函數(shù)定義如下:
d total代表總距離,d goal(s)代表機(jī)器人s時(shí)刻距離終點(diǎn)的距離。
基于IAPF-DDPG的移動機(jī)器人路徑規(guī)劃方法如下:
Step1:建立以目標(biāo)點(diǎn)為勢場中心的重力勢場;
Step2;根據(jù)等式(6)計(jì)算最大累積回報(bào);
Step3:機(jī)器人從起點(diǎn)探索環(huán)境,選擇當(dāng)前狀態(tài)s i下的動作。環(huán)境狀態(tài)更新到s0,并且返回回報(bào)值r,并根據(jù)(6)更新獎勵值;
Step4:根據(jù)新定義的等式(5)狀態(tài)值函數(shù)更新Q值,隨后更新Critic網(wǎng)絡(luò);
Step5:觀察機(jī)器人是否到達(dá)目標(biāo)點(diǎn)或到達(dá)設(shè)定的最大學(xué)習(xí)次數(shù)。如果兩者遇到其中一個,學(xué)習(xí)回合結(jié)束。否則,返回到Step3
為了驗(yàn)證提出的改進(jìn)DDPG算法在路徑規(guī)劃中的收斂速度和路徑平滑度上優(yōu)異性,利用柵格地圖對提出的改進(jìn)方法與DDPG算法及其他相關(guān)改進(jìn)方法做了效果對比。在仿真實(shí)驗(yàn)中對DQN(Deep Q Network),DDPG以及基于IAPFDDPG算法進(jìn)行對比和實(shí)驗(yàn)分析。三種比較方法設(shè)置相同的神經(jīng)網(wǎng)絡(luò)機(jī)構(gòu)和網(wǎng)絡(luò)參數(shù)。算法中涉及到的參數(shù)設(shè)置如下:學(xué)習(xí)率α=0.5,折扣因子γ=0.9,經(jīng)驗(yàn)池大小設(shè)置為2000。人工勢場參數(shù)設(shè)置如下:k=1.6,η=1.2,ρ0=3.0。
在以上參數(shù)設(shè)置下,進(jìn)行路徑規(guī)劃實(shí)驗(yàn)。圖3和圖4中(a)~(c)分別對應(yīng)算法DQN,DDPG,IAPF-DDPG的路徑規(guī)劃和算法收斂情況。圖3對上述算法規(guī)劃的路徑進(jìn)行了比較,可以看出DQN算法規(guī)劃出的路徑較冗余且不平滑,相對而言DDPG算法規(guī)劃出的路徑?jīng)]有那么冗余但仍存在大量拐點(diǎn)。對比IAPF-DPG算法,在加入人工勢場并對獎賞函數(shù)做出改進(jìn)后,規(guī)劃出的路徑相對平滑,沒有多余的冗余路徑。
圖3 三種算法路徑規(guī)劃
圖4 算法收斂回合
提取了三種方法的實(shí)驗(yàn)數(shù)據(jù),并從總迭代時(shí)間,最佳決策時(shí)間,碰撞次數(shù)等方面進(jìn)行了比較,進(jìn)一步說明了改進(jìn)模型的有效性。如表1所示,基于離散空間的DQN算法在訓(xùn)練時(shí)間和收斂速度方面沒有DDPG算法的效果好,DDPG算法和DQN算法相比,在找到最佳決策是時(shí)間上減少31%,與障礙物發(fā)生碰撞的次數(shù)減少43%。對比IAPFDDPG算法和DDPG算法可知,在DDPG算法中引入人工勢場會使算法最佳決策時(shí)間減少16%,碰撞次數(shù)減少15%。從總轉(zhuǎn)角可以看出,改進(jìn)后的IAPF-DDPG算法規(guī)劃出的路徑較為平滑。與以上方法相比較,IAPF-DDPG算法具有較少的迭代時(shí)間和最佳決策時(shí)間。仿真結(jié)果表明,改進(jìn)后的方法不僅在收斂率上得到了提高,降低了試錯率。
表1 三種算法在路徑規(guī)劃中的性能比較
對于傳統(tǒng)的路徑規(guī)劃算法來說,歷史經(jīng)驗(yàn)數(shù)據(jù)無法回收用于在線訓(xùn)練和學(xué)習(xí),導(dǎo)致算法精度低,規(guī)劃的實(shí)際路徑不平滑,收斂速度慢。提出了一種改進(jìn)的DDPG算法在路徑規(guī)劃上的應(yīng)用方法。在算法前期引入人工勢場,使算法的速度得到提高,同時(shí)也降低了試錯率。為了避免機(jī)器人陷入局部最優(yōu),在獎勵函數(shù)做了改進(jìn),增加了直走獎勵。將改進(jìn)后的DDPG算法和其他經(jīng)典強(qiáng)化學(xué)習(xí)算法做了比較,實(shí)驗(yàn)結(jié)構(gòu)表明,改進(jìn)后的DDPG算法收斂速度快試錯率低,而且可以實(shí)現(xiàn)連續(xù)運(yùn)算輸出,驗(yàn)證了該方法的有效性。只將改進(jìn)后的算法在二維地圖上進(jìn)行了驗(yàn)證,沒有考慮到實(shí)際的驗(yàn)證環(huán)境。機(jī)器人移動時(shí)復(fù)雜環(huán)境的運(yùn)動模型和在真實(shí)環(huán)境中驗(yàn)證將是下一步研究的重點(diǎn)。