孫傳禹,張 雷,辛 山,劉 悅
(北京建筑大學(xué) 電氣與信息工程學(xué)院,北京 100044)
目前機(jī)器人開始被廣泛應(yīng)用于醫(yī)療、救援、軍事、太空等領(lǐng)域.在這些領(lǐng)域中,機(jī)器人所處的工作環(huán)境是復(fù)雜、動(dòng)態(tài)和非結(jié)構(gòu)化的場景.現(xiàn)有經(jīng)典全局路徑規(guī)劃算法如人工勢場法、快速探索隨機(jī)樹法等,需要已知環(huán)境的先驗(yàn)信息.并存在計(jì)算量大、通用性差及無法適應(yīng)動(dòng)態(tài)應(yīng)用場景等難題.基于反應(yīng)式的局部導(dǎo)航方法,如神經(jīng)網(wǎng)絡(luò)、強(qiáng)化學(xué)習(xí)算法等,則不需要已知環(huán)境的先驗(yàn)信息,可以自主學(xué)習(xí)提升規(guī)劃策略,與經(jīng)典算法相比具有優(yōu)越性[1],可以應(yīng)用于復(fù)雜的、動(dòng)態(tài)的、地圖殘缺的場景中,但存在缺乏隨機(jī)探索能力,學(xué)習(xí)效率較低,收斂速度較慢等問題.
為了改善上述方法,人們采用先由全局規(guī)劃算法獲取初始環(huán)境信息,再由局部路徑規(guī)劃算法實(shí)時(shí)獲取復(fù)雜場景的障礙物信息的方法,以增強(qiáng)算法的穩(wěn)定性.Van Hasselt等人[2]提出一種深度雙重Q網(wǎng)絡(luò)的算法以解決DQN算法存在的過估計(jì)問題.董永峰等人[3]提出動(dòng)態(tài)目標(biāo)雙深Q網(wǎng)絡(luò)算法,將DDQN與平均DQN結(jié)合,緩解DDQN在路徑規(guī)劃中價(jià)值低估的問題.Oscar等人[4]提出改進(jìn)人工勢場法并應(yīng)用于動(dòng)態(tài)環(huán)境下的有源濾波器避障分析.U Orozco等人[5]將Bacterial-Potential field技術(shù)引入人工勢場法,提高了人工勢場法路徑規(guī)劃器的性能.但基于人工勢場的改進(jìn)算法在實(shí)時(shí)環(huán)境中移動(dòng)避障依然存在性能相對較差和較容易陷入局部最優(yōu)陷阱的問題.深度強(qiáng)化學(xué)習(xí)算法(Deep Reinforcement Learning,DRL)的提出使得強(qiáng)化學(xué)習(xí)技術(shù)在現(xiàn)實(shí)場景中的復(fù)雜問題中具有良好的性能和魯棒性[6].Oualid等人[7]提出一種DRL改進(jìn)算法,使配備激光測距儀的微型飛行器系統(tǒng)能夠在沒有GPS的環(huán)境中自主導(dǎo)航,緩解了DRL路徑規(guī)劃算法計(jì)算消耗大的問題.Huang R等人[8]提出了一種改進(jìn)DQN算法,解決了動(dòng)態(tài)障礙物與移動(dòng)機(jī)器人之間因?yàn)橄鄬\(yùn)動(dòng)引起異常獎(jiǎng)勵(lì),導(dǎo)致移動(dòng)機(jī)器人與動(dòng)態(tài)障礙物之間的碰撞的問題,但算法的收斂速率較慢.Yao Q等人[9]將改進(jìn)人工勢場法與DQN結(jié)合緩解了環(huán)境中存在多個(gè)目標(biāo)位置造成的勢場重疊,機(jī)器人易陷入局部最優(yōu)陷阱的問題,但實(shí)驗(yàn)在動(dòng)態(tài)環(huán)境中效果沒有得到驗(yàn)證.Chiang H等人[10]通過結(jié)合基于抽樣的規(guī)劃、快速探索的隨機(jī)樹和DRL,提出了一種動(dòng)態(tài)運(yùn)動(dòng)規(guī)劃的有效解決方案,但存在復(fù)雜環(huán)境中效率較低的問題.
DRL方法中基于DQN路徑規(guī)劃算法是利用不同的狀態(tài)-動(dòng)作對作為神經(jīng)網(wǎng)絡(luò)的輸入,以Q函數(shù)值作為輸出.神經(jīng)網(wǎng)絡(luò)每一次更新,目標(biāo)Q網(wǎng)絡(luò)都會(huì)采取最大化操作,這樣的操作會(huì)導(dǎo)致動(dòng)作值偏高,出現(xiàn)過估計(jì)的問題,移動(dòng)機(jī)器人可能會(huì)陷入局部最優(yōu)陷阱,收斂速度較慢.DDQN通過改進(jìn)DQN神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)可以有效解決DQN過估計(jì)問題[11],但它在選擇動(dòng)作時(shí),是利用當(dāng)前估計(jì)網(wǎng)絡(luò)參數(shù),而不是利用不斷更新的先驗(yàn)知識(shí),所以會(huì)造成價(jià)值低估的問題.在傳統(tǒng)DQN路徑規(guī)劃算法中,移動(dòng)機(jī)器人的狀態(tài)集為當(dāng)前位置相鄰的四個(gè)狀態(tài),這使得算法規(guī)劃的每一個(gè)步長路徑之間存在直角夾角,平滑度較差.
傳統(tǒng)人工勢場方法可以快速獲取路徑,但存在以下3個(gè)不足之處[12]:1)當(dāng)機(jī)器人距離目標(biāo)位置較遠(yuǎn)時(shí),機(jī)器人所受引力較大,斥力相對較小,容易撞上環(huán)境中的障礙物;2)當(dāng)目標(biāo)位置附近存在障礙物時(shí),機(jī)器人移動(dòng)至目標(biāo)位置附近時(shí),所受引力較小而斥力相對較大,容易導(dǎo)致機(jī)器人無法到達(dá)目標(biāo)位置;3)當(dāng)機(jī)器人在環(huán)境中某一位置所受引力和斥力恰好相等,例如機(jī)器人當(dāng)前位置、障礙物位置與目標(biāo)位置處于一條直線時(shí),容易導(dǎo)致局部震蕩或者陷入局部最優(yōu)陷阱.
針對上述傳統(tǒng)DQN和人工勢場路徑規(guī)劃算法的問題,本文將DRL強(qiáng)大的學(xué)習(xí)能力和對未知環(huán)境的處理能力與人工勢場快速獲得路徑的特點(diǎn)結(jié)合,提出了一種基于人工勢場法和改進(jìn)深度雙重Q網(wǎng)絡(luò)路徑規(guī)劃算法PF-IDDQN.將人工勢場法中的勢能引入到DDQN獎(jiǎng)勵(lì)模塊中,緩解DDQN中獎(jiǎng)勵(lì)稀疏問題,使得學(xué)習(xí)器的探索更具目的性,減少盲目探索,降低DDQN因動(dòng)態(tài)障礙物移動(dòng)陷入局部最優(yōu)陷阱的概率.同時(shí)人工勢場法中由于引力與斥力合力為零導(dǎo)致局部最優(yōu)陷阱時(shí),DDQN算法的隨機(jī)探索策略可以讓學(xué)習(xí)器嘗試不同的路徑,有效緩解人工勢場的不足.
本文主要工作如下:首先,對移動(dòng)機(jī)器人所在環(huán)境中的靜態(tài)障礙物和動(dòng)態(tài)障礙物人工勢場進(jìn)行建模,構(gòu)建勢能地圖.其次,將勢能地圖引入DDQN算法中,將不同狀態(tài)的勢能差作為DDQN算法的密集獎(jiǎng)勵(lì),同時(shí)對移動(dòng)機(jī)器人的狀態(tài)集進(jìn)行了優(yōu)化,增加了4個(gè)狀態(tài);最后,移動(dòng)機(jī)器人在動(dòng)態(tài)環(huán)境中進(jìn)行訓(xùn)練仿真,對比傳統(tǒng)DRL算法,驗(yàn)證提出算法的性能.實(shí)驗(yàn)結(jié)果表明,該算法不僅可以在具有動(dòng)態(tài)障礙物的環(huán)境中快速推導(dǎo)出路徑提升算法成功率,緩解了DDQN算法收斂緩慢的問題,而且可以解決人工勢場方法中存在的局部最優(yōu)解的問題.
人工勢場(APF)方法是一種全局路徑規(guī)劃算法,通過在環(huán)境中構(gòu)建虛擬勢場的路徑規(guī)劃方法[13].勢場由兩種位場組成:重力場和斥力場.目標(biāo)物對主體施加重力,形成重力勢場,引導(dǎo)機(jī)器人向目標(biāo)位置移動(dòng).同時(shí),障礙物產(chǎn)生脈沖力,形成排斥勢場,引導(dǎo)機(jī)器人躲避障礙物[14].在人工勢場中,勢能受重力場和排斥場的影響.障礙物附近位置的勢能較高,而目標(biāo)附近位置的勢能較低,如圖1所示.因此,在排斥勢場和引力勢場合力的驅(qū)動(dòng)下,移動(dòng)機(jī)器人從高勢能位置移動(dòng)到低勢能位置,同時(shí)找到一條能夠到達(dá)目標(biāo)位置的無碰撞路徑.地圖上目標(biāo)位置的引力(即重力)覆蓋了整個(gè)環(huán)境地圖,因此移動(dòng)機(jī)器人可以從地圖上的任何位置向目標(biāo)位置移動(dòng)[15].
圖1 人工勢場中機(jī)器人受力分析Fig.1 Force analysis of robot in artificial potential field
人工勢場法機(jī)器人受力分析如圖1所示.2D空間的引力場示意圖如圖2所示.
圖2 2D空間引力場[16]Fig.2 Gravitational field in 2D space[16]
傳統(tǒng)的引力場函數(shù)如下:
(1)
其中η是尺度因子,d(q,qgoal)是機(jī)器人當(dāng)前位置與目標(biāo)位置的距離.目標(biāo)位置對機(jī)器人的引力為引力場對距離的導(dǎo)數(shù):
Fatt(q)=-Uatt(q)=ζ(qgoat-q)
(2)
傳統(tǒng)的斥力場函數(shù)如公式(3)所示:
(3)
其中η是斥力因子,d(q,qobs)是機(jī)器人到距離機(jī)器人最近的障礙物的歐幾里得距離,d0是每個(gè)障礙物的影響半徑.當(dāng)機(jī)器人和障礙物的距離大于障礙物影響半徑時(shí),機(jī)器人不受障礙物影響.
斥力場產(chǎn)生的斥力為:
Frep(q)=
(4)
總勢場為斥力場與引力場的疊加,機(jī)器人所受合力為對應(yīng)分力的疊加.
U(q)=Uatt(q)+Urep(q)
(5)
F(q)=-U(q)
(6)
在強(qiáng)化學(xué)習(xí)中,學(xué)習(xí)器在不同時(shí)間步中將與實(shí)驗(yàn)環(huán)境交互.在實(shí)驗(yàn)中,每一個(gè)時(shí)間步內(nèi)學(xué)習(xí)器都將接收一個(gè)狀態(tài)st,同時(shí)根據(jù)實(shí)驗(yàn)中的策略π如隨機(jī)策略等,從動(dòng)作集合A中選擇一個(gè)動(dòng)作at.策略π是學(xué)習(xí)器從當(dāng)前狀態(tài)到選擇的動(dòng)作的影射.學(xué)習(xí)器執(zhí)行動(dòng)作at并進(jìn)入到下一個(gè)狀態(tài)st′,得到一個(gè)獎(jiǎng)勵(lì)rt作為st的反饋.Rt是從當(dāng)前位置開始到一次訓(xùn)練或測試結(jié)束所得到的獎(jiǎng)勵(lì)的折扣累積,Rt計(jì)算公式如公式(7)所示:
(7)
其中γ是折扣因子,設(shè)置折扣因子的目的是弱化遠(yuǎn)期狀態(tài)對現(xiàn)在狀態(tài)的影響,越近的狀態(tài)對當(dāng)前狀態(tài)影響越大.學(xué)習(xí)器的最終目標(biāo)是最大化每個(gè)狀態(tài)的期望累積獎(jiǎng)勵(lì).
動(dòng)作值函數(shù)是描述學(xué)習(xí)器在不同狀態(tài)一直根據(jù)策略π選擇動(dòng)作a,直到一次訓(xùn)練或測試結(jié)束得到期望獎(jiǎng)勵(lì),如公式(8)所示:
Qπ(s,a)=E[Rt|st=s,at=a,π]
(8)
值函數(shù)定義為:
Vπ(s)=E[Rt|st]
(9)
對于環(huán)境中所有狀態(tài)的集合S,如果一個(gè)策略π的期望回報(bào)大于或等于其他策略的期望回報(bào),那么該策略為最優(yōu)策略π*,定義為:
(10)
如果當(dāng)前狀態(tài)的下一個(gè)狀態(tài)st′已知所有動(dòng)作的Q值函數(shù),那么π*可以選擇最大化期望回報(bào)的動(dòng)作.
(11)
Mnih等人[17]將卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)的Q-learning算法結(jié)合,提出了DQN算法模型,該模型的提出開創(chuàng)了深度強(qiáng)化學(xué)習(xí)新的研究領(lǐng)域.DQN的訓(xùn)練更新流程如圖3所示.
圖3 DQN訓(xùn)練更新流程Fig.3 DQN training update process
DQN算法使用了固定Q目標(biāo)的方法,即采用了兩個(gè)網(wǎng)絡(luò),在神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)時(shí)通過網(wǎng)絡(luò)來估算Q的真實(shí)值,通過網(wǎng)絡(luò)W對參數(shù)進(jìn)行優(yōu)化,當(dāng)滿足規(guī)定迭代次數(shù)后用網(wǎng)絡(luò)W來更新網(wǎng)絡(luò)W-,這樣將Q的真實(shí)值和預(yù)測值區(qū)分開,減少實(shí)驗(yàn)結(jié)果振蕩.
針對非線性神經(jīng)網(wǎng)絡(luò)表示值函數(shù)的穩(wěn)定性較差等問題,DQN算法主要對傳統(tǒng)的Q-learning算法做了2處改進(jìn)[6].
1)DQN算法引入兩個(gè)卷積神經(jīng)網(wǎng)絡(luò)分別用來近似表示當(dāng)前的狀態(tài)值函數(shù)和產(chǎn)生目標(biāo)值函數(shù)Q值.DQN在每次迭代i中優(yōu)化損失函數(shù)如公式(12)所示:
Li(θi)=Es,a,r,s′[(Yt-Q(s,a|θi))2]
(12)
(13)
當(dāng)前狀態(tài)值函數(shù)網(wǎng)絡(luò)的權(quán)值θ是實(shí)時(shí)更新的,每經(jīng)過N輪迭代,算法將當(dāng)前狀態(tài)值函數(shù)網(wǎng)絡(luò)的參數(shù)復(fù)制傳遞給目標(biāo)值函數(shù)網(wǎng)絡(luò).初始化時(shí),θ=θ-.DQN通過最小化當(dāng)前狀態(tài)Q值和目標(biāo)狀態(tài)Q值之間的均方誤差來更新神經(jīng)網(wǎng)絡(luò)參數(shù).如公式(14)所示:
L(θt)=Es,a,r,s′[Yt-q(s,a|θt))2]
(14)
DQN算法引入了目標(biāo)函數(shù)值網(wǎng)絡(luò),目標(biāo)Q值在N次迭代時(shí)間內(nèi)是保持不變的,有效降低了當(dāng)前狀態(tài)Q值和目標(biāo)狀態(tài)Q值之間的關(guān)聯(lián)性,相較于傳統(tǒng)Q-learning算法提升了算法的穩(wěn)定性.
Li(θi)E(s,a,r,s′)~U(D)[(Yt-Q(s,a|θi))2]
(15)
深度學(xué)習(xí)訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),通常要求訓(xùn)練樣本相互獨(dú)立.DQN算法通過隨機(jī)采樣的方式,顯著降低了訓(xùn)練樣本之間的關(guān)聯(lián)性,從而提升了算法的穩(wěn)定性.
DDQN算法與DQN算法相同,具有兩個(gè)Q網(wǎng)絡(luò)結(jié)構(gòu),同時(shí)也具備經(jīng)驗(yàn)回放機(jī)制.不同點(diǎn)在于DDQN在傳統(tǒng)DQN算法的基礎(chǔ)上,通過當(dāng)前正在更新的Q網(wǎng)絡(luò)的參數(shù)選擇最優(yōu)動(dòng)作,來緩解傳統(tǒng)DQN算法過度估計(jì)的問題.DDQN計(jì)算目標(biāo)Q值的方法如公式(16)所示:
(16)
本文假設(shè)移動(dòng)機(jī)器人在[0,90],[0,60]的長方形實(shí)驗(yàn)空間中,空間中有4個(gè)邊長為10的靜態(tài)障礙物,6個(gè)邊長為1的動(dòng)態(tài)隨機(jī)障礙物.人工勢場法是全局路徑規(guī)劃算法,本文首先對實(shí)驗(yàn)環(huán)境中的障礙物、目標(biāo)位置勢場進(jìn)行建模構(gòu)建勢場地圖;然后基于勢場地圖定義強(qiáng)化學(xué)習(xí)獎(jiǎng)勵(lì)模塊;最后訓(xùn)練Agent在動(dòng)態(tài)環(huán)境中躲避障礙物并移動(dòng)到目標(biāo)位置.
基于傳統(tǒng)人工勢場方法對移動(dòng)機(jī)器人實(shí)驗(yàn)空間中的引力勢場和斥力勢場進(jìn)行了建模.目標(biāo)位置的引力勢場計(jì)算方法如公式(1)所示.
建立所有靜態(tài)和動(dòng)態(tài)障礙物位置的斥力勢場模型,障礙物的斥力勢場計(jì)算方法如公式(3)所示.
在機(jī)器人的環(huán)境中,目標(biāo)位置處的勢場值最小,距離目標(biāo)位置較遠(yuǎn)的勢場值較大.在障礙物附近的勢場中,越靠近障礙物,勢場值越大.
本文提出的算法根據(jù)上述勢場模型定義了強(qiáng)化學(xué)習(xí)中的動(dòng)作空間、狀態(tài)空間和獎(jiǎng)勵(lì)函數(shù).本文將強(qiáng)化學(xué)習(xí)中的動(dòng)作定義為機(jī)器人的當(dāng)前位置與下一個(gè)位置之間的距離差值.這個(gè)動(dòng)作是一個(gè)二維連續(xù)矢量,其中二維分別表示機(jī)器人沿x軸和y軸的位移.針對傳統(tǒng)DDQN算法中規(guī)劃的路徑平滑度較差的問題,本文將機(jī)器人的動(dòng)作空間,增加左前、右前、左后及右后方向4個(gè)方向[12],機(jī)器人可以向8個(gè)方向移動(dòng).動(dòng)作空間改進(jìn)后,機(jī)器人可移動(dòng)方向示意圖如圖4所示.
圖4 改進(jìn)DQN算法動(dòng)作集示意圖Fig.4 Schematic diagram of the action set of the improved DQN algorithm
勢能地圖中每一個(gè)已知點(diǎn)都有其對應(yīng)的二維坐標(biāo),所以實(shí)驗(yàn)?zāi)P偷臓顟B(tài)空間S可以表示為:
S={(x,y)|0≤x≤W,0≤y≤H}
(17)
其中W為勢能地圖的寬度,H為勢能地圖的高度.
在路徑規(guī)劃問題中,本文希望機(jī)器人每一次移動(dòng)都盡可能接近目標(biāo)位置,并且盡可能遠(yuǎn)離障礙物影響范圍.因此,本文將算法獎(jiǎng)勵(lì)進(jìn)行如下定義:根據(jù)勢能地圖中每個(gè)狀態(tài)的勢能值,計(jì)算當(dāng)前狀態(tài)與下一狀態(tài)的勢能差值即為該動(dòng)作的獎(jiǎng)勵(lì)值;目標(biāo)位置的獎(jiǎng)勵(lì)應(yīng)為較大值.當(dāng)出現(xiàn)如下情況時(shí)機(jī)器人結(jié)束一次訓(xùn)練或測試:
1)機(jī)器人移動(dòng)100個(gè)步長未到達(dá)目標(biāo)位置;
2)機(jī)器人觸碰障礙物或者地圖邊界;
3)機(jī)器人移動(dòng)到目標(biāo)位置
將相鄰兩個(gè)狀態(tài)的勢能差值作為RL的密集獎(jiǎng)勵(lì),可以有效緩解DDQN算法獎(jiǎng)勵(lì)稀疏的問題,加快算法收斂的速度,減少Agent的無效探索.本文設(shè)置100個(gè)步長內(nèi)到達(dá)目標(biāo)位置作為算法的一個(gè)性能指標(biāo),傳統(tǒng)離散RL算法采用隨機(jī)策略探索環(huán)境空間,算法往往需要付出大量的步長去探索未知空間和移動(dòng)到目標(biāo)位置,本文算法在訓(xùn)練和測試過程中可以使用較少的步長到達(dá)目標(biāo)位置,性能相比傳統(tǒng)DRL算法有很大的提升.RL是一種試錯(cuò)的算法,但在實(shí)際生活中,機(jī)器人試錯(cuò)的成本非常高,在本文仿真中,本文設(shè)計(jì)機(jī)器人如果與障礙物或環(huán)境空間邊界發(fā)生碰撞,該輪訓(xùn)練或測試結(jié)束,盡可能避免機(jī)器人在訓(xùn)練或現(xiàn)實(shí)測試時(shí)與障礙物發(fā)生碰撞.
根據(jù)DDQN算法中神經(jīng)網(wǎng)絡(luò)的訓(xùn)練流程,本文設(shè)計(jì)了基于人工勢場法和改進(jìn)DDQN算法神經(jīng)網(wǎng)絡(luò)一次更新流程圖,如圖5所示,其中Batchsize為算法進(jìn)行一次訓(xùn)練所需的樣本數(shù)量.本文提出算法中,使用ε-greedy作為探索策略,為了算法更好更快的收斂,同時(shí)提升Agent實(shí)驗(yàn)后期探索效率,探索率ε初始值較大,但隨著迭代次數(shù)的增加而逐漸變小.
圖5 算法一次訓(xùn)練更新流程圖Fig.5 Algorithm for one-time training update flowchart
本文提出改進(jìn)算法框架圖如圖6所示,首先,對環(huán)境地圖進(jìn)行采集獲取State,將采集的地圖轉(zhuǎn)化為勢能地圖;其次,將獲取的勢能地圖引入DDQN網(wǎng)絡(luò)中;最后,通過得到的價(jià)值函數(shù)Q進(jìn)行動(dòng)作選擇,將動(dòng)作反饋給環(huán)境,得到獎(jiǎng)勵(lì)R,將R反饋給DDQN網(wǎng)絡(luò)進(jìn)行迭代更新.
圖6 本文提出算法網(wǎng)絡(luò)框架圖Fig.6 This paper proposes the algorithm network framework diagram
本文提出的算法流程如算法所示:
算法.基于人工勢場和DDQN路徑規(guī)劃算法
輸入:環(huán)境信息及算法參數(shù)
輸出:Q網(wǎng)絡(luò)參數(shù)信息
a)初始化經(jīng)驗(yàn)池D,初始化Q目標(biāo)網(wǎng)絡(luò)參數(shù)和當(dāng)前網(wǎng)絡(luò)參數(shù)容量為N,初始化所有狀態(tài)及動(dòng)作的值
b)for episode=1 M T
c)初始化實(shí)驗(yàn)環(huán)境狀態(tài),根據(jù)環(huán)境中的機(jī)器人位置、目標(biāo)位置和障礙物位置,計(jì)算環(huán)境位置勢能,根據(jù)計(jì)算的勢能得出總的勢能地圖
d)通過總的勢能地圖,機(jī)器人根據(jù)當(dāng)前位置周圍5X5的環(huán)境勢能,選擇勢能最小的最優(yōu)動(dòng)作
e)得到機(jī)器人執(zhí)行動(dòng)作 后的獎(jiǎng)勵(lì) 和下一個(gè)網(wǎng)絡(luò)的輸入s′,同時(shí)將機(jī)器人獲取的環(huán)境特征信息(s,a,r,s′)保存到經(jīng)驗(yàn)池D中(經(jīng)驗(yàn)池中的記憶矩陣保存著前N個(gè)時(shí)刻的狀態(tài))
f)隨機(jī)從經(jīng)驗(yàn)池D 中取出n個(gè)樣本,按照公式(9)對Q值進(jìn)行更新,并將更新后的Q值作為目標(biāo)值,計(jì)算樣本中每一個(gè)狀態(tài)的目標(biāo)值
g)使用均方差損失函數(shù),通過神經(jīng)網(wǎng)絡(luò)的梯度反向傳播來更新Q網(wǎng)絡(luò)的所有參數(shù)
h)每C次迭代后更新目標(biāo)網(wǎng)絡(luò)參數(shù)
i)如果下一狀態(tài)是障礙物、地圖邊界或目標(biāo)位置,當(dāng)前輪迭代完畢,否則轉(zhuǎn)到步驟d)
j)end for.
本文實(shí)驗(yàn)環(huán)境為CPU AMD 銳龍5 5600X,Pytorch 1.10對DDQN網(wǎng)絡(luò)進(jìn)行訓(xùn)練.本文移動(dòng)機(jī)器人仿真實(shí)驗(yàn)采用全局路徑規(guī)劃算法與局部路徑規(guī)劃算法結(jié)合的方式.實(shí)驗(yàn)中,首先構(gòu)建全局勢場地圖,構(gòu)建的勢場地圖如圖7所示,Agent每移動(dòng)一個(gè)步長,勢能地圖將更新一次,定位動(dòng)態(tài)障礙物的位置.
圖7 實(shí)驗(yàn)環(huán)境勢場地圖Fig.7 Potential field map of the experimental environment
其中4個(gè)大正方形為靜態(tài)障礙物,6個(gè)小正方形為動(dòng)態(tài)障礙物,動(dòng)態(tài)障礙物在20×20范圍內(nèi)隨機(jī)移動(dòng).起始位置在地圖右下角,目標(biāo)位置在地圖左上角,右下角黑色點(diǎn)為機(jī)器人當(dāng)前位置,地圖顏色越深勢能越高.本文中勢場公式參數(shù)的設(shè)定為ζ=1,η=20,d0=3.
本文中獎(jiǎng)勵(lì)模塊設(shè)置參數(shù)如表1所示.
在實(shí)際實(shí)驗(yàn)中,可以使用激光雷達(dá)獲取實(shí)驗(yàn)場景地圖如圖8所示,再將地圖轉(zhuǎn)化為勢能地圖,在像素地圖中,每一個(gè)黑色像素點(diǎn)可視為障礙物,Agent每移動(dòng)兩個(gè)像素點(diǎn),更新一次局部勢能地圖,本文實(shí)驗(yàn)中實(shí)時(shí)更新Agent前方60×60的勢能地圖,該大小的地圖更新造成的延遲對Agent的實(shí)際移動(dòng)的影響可以忽略不計(jì).
圖8 激光雷達(dá)獲取實(shí)際環(huán)境地圖Fig.8 Lidar obtains actual environment map
為驗(yàn)證算法在動(dòng)態(tài)環(huán)境中的性能、探索效率以及收斂速度,本文限制移動(dòng)機(jī)器人每次訓(xùn)練最多移動(dòng)100個(gè)步長.實(shí)驗(yàn)參數(shù)如表2所示.
表2 實(shí)驗(yàn)參數(shù)Table 2 Experimental parameters
將本文提出的算法與基于改進(jìn)DQN算法的DDQN算法在相同實(shí)驗(yàn)環(huán)境中進(jìn)行實(shí)驗(yàn)對比,兩種算法每輪訓(xùn)練的獎(jiǎng)勵(lì)值如圖9~圖10所示.
圖9 本文提出算法訓(xùn)練中獎(jiǎng)勵(lì)值曲線圖Fig.9 In this paper,the curve of reward values in algorithm training is proposed
圖10 傳統(tǒng)DDQN算法訓(xùn)練中獎(jiǎng)勵(lì)值曲線圖Fig.10 Reward value curve graph in the training of traditional DDQN algorithms
由圖9可以看出本文提出的算法在迭代150次以上得到了170左右的較高的獎(jiǎng)勵(lì)值,算法獎(jiǎng)勵(lì)值集中在150~200區(qū)間;而基于傳統(tǒng)DDQN算法在限制的探索次數(shù)下無法探索到目標(biāo)位置,在迭代約40次后陷入了局部最優(yōu)陷阱或無法越過動(dòng)態(tài)障礙物,由圖10可以看出該算法在陷入局部最優(yōu)陷阱后的獎(jiǎng)勵(lì)值趨于相似值,故實(shí)驗(yàn)只進(jìn)行了500次迭代.
本文實(shí)驗(yàn)中,有3條結(jié)束本次訓(xùn)練或測試的條件,由圖11~圖12可知,當(dāng)移動(dòng)次數(shù)小于60時(shí)機(jī)器人可能與障礙物或地圖邊界發(fā)生碰撞;當(dāng)移動(dòng)次數(shù)大于60小于100時(shí),可認(rèn)為機(jī)器人有較高概率成功到達(dá)目標(biāo)位置;當(dāng)移動(dòng)次數(shù)為100時(shí),可認(rèn)為機(jī)器人有較高概率受到動(dòng)態(tài)障礙物影響未能在規(guī)定移動(dòng)次數(shù)內(nèi)到達(dá)目標(biāo)位置.本文提出的算法在機(jī)器人移動(dòng)60~70個(gè)步長收斂.
圖11 基于人工勢場和改進(jìn)DQN算法收斂回合Fig.11 Convergence round based on artificial potential field and improved DQN algorithm
圖12 訓(xùn)練中機(jī)器人成功到達(dá)目標(biāo)位置Fig.12 Robot successfully reached the target position during training
如圖11所示,基于人工勢場和改進(jìn)DDQN算法在3000次訓(xùn)練迭代中,移動(dòng)機(jī)器人在約150次迭代后路徑規(guī)劃成功率在89%以上,基于傳統(tǒng)DDQN算法無法規(guī)劃出到達(dá)目標(biāo)位置的路徑.
移動(dòng)機(jī)器人在實(shí)驗(yàn)環(huán)境中測試的效果如圖13所示.可以看出,實(shí)驗(yàn)中移動(dòng)機(jī)器人在遇到左下角靜態(tài)障礙物時(shí),出現(xiàn)了呈Z字型移動(dòng),這是由于獎(jiǎng)勵(lì)模塊總是驅(qū)動(dòng)移動(dòng)機(jī)器人向目標(biāo)位置移動(dòng),即總是相左上方移動(dòng),但在實(shí)驗(yàn)中,為降低移動(dòng)機(jī)器人與障礙物的碰撞,本文設(shè)計(jì)移動(dòng)機(jī)器人與障礙物保持一定距離,所以出現(xiàn)上述現(xiàn)象;雖然在實(shí)驗(yàn)中移動(dòng)機(jī)器人在遇到動(dòng)態(tài)障礙物時(shí),會(huì)額外付出一定步長尋找通行路徑,但本文提出算法依舊可以規(guī)劃出通往目標(biāo)位置的路徑.在實(shí)驗(yàn)300次測試中,移動(dòng)機(jī)器人在規(guī)定移動(dòng)次數(shù)內(nèi)路徑規(guī)劃成功率在97%以上.
圖13 機(jī)器人在靜態(tài)及動(dòng)態(tài)障礙物環(huán)境中測試結(jié)果Fig.13 Test results of the robot in static and dynamic obstacle environments
本文提出的基于人工勢場法和改進(jìn)DDQN算法可以應(yīng)用于動(dòng)態(tài)實(shí)驗(yàn)環(huán)境,算法中值函數(shù)的估計(jì)更加準(zhǔn)確,移動(dòng)機(jī)器人可以在有限移動(dòng)次數(shù)下快速地識(shí)別出相對最優(yōu)的動(dòng)作,收斂速度更快.本文采用DDQN算法更新Q值,緩解了Q值估計(jì)過高的問題.引入人工勢場緩解了DQN算法獎(jiǎng)勵(lì)稀疏的問題,加快了算法網(wǎng)絡(luò)收斂的速度,提高了移動(dòng)機(jī)器人在動(dòng)態(tài)環(huán)境路徑規(guī)劃的成功率.綜上所述,本文提出的算法可以利用更少的移動(dòng)次數(shù)在較少迭代次數(shù)內(nèi)得到更大的獎(jiǎng)勵(lì)值,從而使得移動(dòng)機(jī)器人可以在更短時(shí)間內(nèi)更準(zhǔn)確的獲得最優(yōu)路徑.