王健銘,王 欣,李養(yǎng)輝,王殿龍
(1.大連理工大學(xué)機械工程學(xué)院,遼寧 大連 116023;2.大連船舶重工集團(tuán)有限公司生產(chǎn)保障部,遼寧 大連 116023)
為解決泊車難的問題,泊車機器人應(yīng)運而生。自2014年第一臺Ray自動泊車機器人橫空出世以來,許多企業(yè)推出了不同類型的泊車機器人,如深圳怡豐國內(nèi)首創(chuàng)的梳齒型停車AGV 和車抬板停車AGV,??低晳?yīng)用視覺和慣性雙導(dǎo)航技術(shù)的“阡陌”泊車機器人[1]。目前泊車機器人技術(shù)已進(jìn)入快速發(fā)展階段,而路徑規(guī)劃是泊車機器人的重要技術(shù)支撐。
目前泊車機器人多是以A*及其改進(jìn)算法為主,存在規(guī)劃效率不高、規(guī)劃路徑長及冗余點多和難以適應(yīng)環(huán)境的改變等問題。在其所屬的移動機器人領(lǐng)域中,路徑規(guī)劃算法已逐步從人工勢場法[2]、A*算法[3]、Dijkstra 算法[4]等,向智能仿生算法發(fā)展,如模擬退火法[5]、遺傳算法[6]、神經(jīng)網(wǎng)絡(luò)算法[7]和蟻群算法[8]等。但智能仿真算法在狀態(tài)空間復(fù)雜的環(huán)境下計算量大、效率低,不易保證路徑規(guī)劃的實時性。進(jìn)而,許多學(xué)者又引入了深度強化學(xué)習(xí)(Deep Reinforcement Learning,DRL)算法[9]。該算法是深度學(xué)習(xí)(Deep Learning,DL)[10]與強化學(xué)習(xí)(Reinforcement Learning,RL)[11]的結(jié)合,利用神經(jīng)網(wǎng)絡(luò)提取特征信息并獲得機器人所需環(huán)境信息,實現(xiàn)狀態(tài)動作值函數(shù)的擬合和狀態(tài)到動作的映射。它充分發(fā)揮了深度學(xué)習(xí)的感知能力和強化學(xué)習(xí)的決策能力,有效解決了移動機器人的路徑規(guī)劃問題。
在此基礎(chǔ)上,Google 的DeepMind 團(tuán)隊首次提出將傳統(tǒng)RL 中的Q-Learning 算法與卷積神經(jīng)網(wǎng)絡(luò)結(jié)合,稱其為深度Q 網(wǎng)絡(luò)(Deep Q-Network,DQN),并在Atari 2600 游戲上有很好的表現(xiàn)[12]。但在動態(tài)復(fù)雜未知環(huán)境中,DQN 算法存在收斂速度慢、過估計的問題,導(dǎo)致最終規(guī)劃出的路徑并非最優(yōu)解。為此,Hasselt等[13]提出了一種深度雙Q網(wǎng)絡(luò)(Double DQN,DDQN)使智能體能夠選擇出Q值最大的動作,從而解決了DQN 算法存在的過估計問題。Wang 等[14]提出了一種競爭深度Q 網(wǎng)絡(luò)(Dueling DQN),通過優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)提高了網(wǎng)絡(luò)的收斂速度。Tai 等[15]首次采用DQN 算法解決移動機器人路徑規(guī)劃問題。董瑤等[16]提出了一種改進(jìn)的基于深度競爭網(wǎng)絡(luò)結(jié)構(gòu)的雙Q 網(wǎng)絡(luò)方法,用來改善機器人路徑規(guī)劃時收斂速度慢的情況。董永峰等[17]為解決機器人路徑規(guī)劃中的過估計問題,提出了一種動態(tài)融合深度雙Q算法。成怡等[18]采取改進(jìn)獎懲函數(shù)、優(yōu)化狀態(tài)空間的方法以解決獎勵稀疏和探索能力差問題。
近年來,深度強化學(xué)習(xí)算法被廣泛用于移動機器人技術(shù)中。鄧悟[19]基于多智能體DRL框架MADDPG提出了一種可用于雙智能體的路徑規(guī)劃算法,可在導(dǎo)航中同時處理每個智能體的任務(wù)需求。Lima 等[20]通過模擬車輛軌跡將DRL 用于路徑規(guī)劃任務(wù)中,使車輛的運動更安全且路徑更短。Bartolomei 等[21]提出了一種結(jié)合語義感知技術(shù)的無人機路徑規(guī)劃方法,利用深度強化學(xué)習(xí)實現(xiàn)復(fù)雜環(huán)境下基于視覺的導(dǎo)航。
由此可以看出,在DQN 算法基礎(chǔ)上發(fā)展的深度強化學(xué)習(xí)算法在路徑規(guī)劃方面具有很好的表現(xiàn)。而本文的研究對象為差速運動的泊車機器人,其狀態(tài)和動作空間是離散的,具有3 個動作,因此適合采用改進(jìn)的DQN 算法進(jìn)行路徑規(guī)劃。為提高路徑規(guī)劃效率,適應(yīng)未知環(huán)境場景,本文在D3QN 的基礎(chǔ)上,改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu),修改獎懲機制,增加優(yōu)秀動作判定,提出一種SE-RD3QN(Squeeze-and-Excitation Residual D3QN)路徑規(guī)劃算法,并應(yīng)用于泊車機器人路徑規(guī)劃中,最終通過實驗驗證SE-RD3QN 算法的優(yōu)異性和實用性。
D3QN(Dueling Double DQN)算法[22]是在Dueling DQN 算法的基礎(chǔ)上融入了Doubel DQN 算法的思想,它在目標(biāo)值的計算方式上較Dueling DQN 算法有所改進(jìn),可以有效解決算法由于對期望值Q值的過估計而導(dǎo)致未能選擇最優(yōu)動作的問題。
D3QN 算法網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,由卷積層和全連接層組成。卷積層提取輸入數(shù)據(jù)的目標(biāo)特征,然后送入全連接層。全連接層為競爭網(wǎng)絡(luò)結(jié)構(gòu),分為優(yōu)勢函數(shù)網(wǎng)絡(luò)A(s,a;β,θ)和價值函數(shù)網(wǎng)絡(luò)V(s;α,θ)。其中優(yōu)勢函數(shù)與智能體的狀態(tài)和動作都有關(guān),而價值函數(shù)只與狀態(tài)有關(guān)。最后組合輸出累計折扣獎勵的期望值Q值,即:
圖1 D3QN網(wǎng)絡(luò)結(jié)構(gòu)
式中,s表示狀態(tài),a表示動作,α是價值函數(shù)支路的網(wǎng)絡(luò)參數(shù),β是優(yōu)勢函數(shù)支路的網(wǎng)絡(luò)參數(shù),θ為公共部分的網(wǎng)絡(luò)參數(shù)。
D3QN 算法使用2個具有相同結(jié)構(gòu)和初始參數(shù)的網(wǎng)絡(luò),即估計網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)。狀態(tài)動作值函數(shù)用估計網(wǎng)絡(luò)計算,目標(biāo)值函數(shù)用目標(biāo)網(wǎng)絡(luò)計算,通過經(jīng)驗回放機制有效利用歷史數(shù)據(jù),有利于算法的收斂。
D3QN 算法使用ε-greedy 策略選擇智能體的動作,可兼顧探索和利用。該算法利用估計網(wǎng)絡(luò)獲取與St+1狀態(tài)中最大Q值對應(yīng)的動作amax,即:
然后根據(jù)所選動作計算出目標(biāo)網(wǎng)絡(luò)中的目標(biāo)Q值,即:
D3QN的損失函數(shù)為:
式中,Q(st+1,amax;θ-)和Q(s,a;θ)分別為目標(biāo)網(wǎng)絡(luò)和估計網(wǎng)絡(luò)的值函數(shù)。
D3QN 算法在實際訓(xùn)練任務(wù)中通常采用深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。隨著網(wǎng)絡(luò)深度的加深,會產(chǎn)生網(wǎng)絡(luò)退化和卷積層時間復(fù)雜度迅速增加的現(xiàn)象。網(wǎng)絡(luò)加深后,深層網(wǎng)絡(luò)模型的效果理論上不會低于淺層網(wǎng)絡(luò),但事實上,如果直接使用普通深層網(wǎng)絡(luò),效果反而會比淺層網(wǎng)絡(luò)更差。卷積層時間復(fù)雜度的迅速增加,會對硬件提出更高要求,這意味著深度模型的訓(xùn)練比淺層模型更難。為解決此問題,本文改進(jìn)卷積層網(wǎng)絡(luò)為殘差網(wǎng)絡(luò),并引入注意力機制,進(jìn)而提出SE-RD3QN算法。
針對網(wǎng)絡(luò)退化現(xiàn)象,在D3QN 算法的基礎(chǔ)上,將傳統(tǒng)卷積網(wǎng)絡(luò)改為殘差網(wǎng)絡(luò)ResNet(Residual Network)[23],并嵌入SE 注意力模塊(Squeeze-and-Excitation Block)[24],構(gòu)成SE-ResNet網(wǎng)絡(luò)。
與卷積網(wǎng)絡(luò)對比,如圖2 所示,ResNet 直接連接并組合了不同深度的卷積層的輸出,在深化卷積神經(jīng)網(wǎng)絡(luò)的同時控制了網(wǎng)絡(luò)的復(fù)雜度;還通過短路機制增加了1個剩余單元,并在網(wǎng)絡(luò)旁邊打開1個通道,以便輸入可以直接到達(dá)輸出。優(yōu)化的目標(biāo)由原來的擬合輸出F(x)變?yōu)檩敵雠c殘差路徑輸入x之和,即H(x)=F(x)+x。這樣,可防止模型訓(xùn)練過程中,由于網(wǎng)絡(luò)深度過深而丟失從前一層提取的特征信息。因此,使用ResNet在保持網(wǎng)絡(luò)深度和復(fù)雜度的條件下,避免了傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)因深度過深可能導(dǎo)致梯度消失和退化的問題,簡化了學(xué)習(xí)目標(biāo),更利于網(wǎng)絡(luò)收斂。
圖2 網(wǎng)絡(luò)單元
注意力機制(Attention Mechanism)是一種學(xué)習(xí)思想,源于生物視覺中的大腦信號處理過程,通過特征值提取、注意力計算等步驟,提高系統(tǒng)對象的學(xué)習(xí)性能,SE模塊是注意力機制模塊的一種。
一般情況下,在對深度卷積神經(jīng)網(wǎng)絡(luò)全連接層的最終輸出進(jìn)行維度轉(zhuǎn)換后,得到的特征信息會有一定程度的丟失,因此,本文將SE 模塊嵌入在殘差網(wǎng)絡(luò)中,如圖3 所示。SE 注意力模塊全稱為“擠壓-激勵”塊,是一種基于通道注意力機制的深度學(xué)習(xí)模型,包含Squeeze(壓縮)和Excitation(激勵)這2 個部分,以通道為單位的特征響應(yīng)可以通過明確地對通道之間的相互依賴關(guān)系進(jìn)行建模來適應(yīng)性地重新校準(zhǔn),增強有用特征信息并壓縮無效特征信息,提高模型中各個通道特征的辨識力,理論上有助于選擇最優(yōu)路徑。
圖3 SE-ResNet結(jié)構(gòu)
通道注意力機制可以讓模型自動學(xué)習(xí)輸入特征中每個通道的重要性,從而提高模型的性能。SE 模塊在壓縮結(jié)構(gòu)下,通過全局池化層的壓縮操作,將ResNet 最后的全連接層輸出的H×W×C(空間維度)的特征映射fi進(jìn)行壓縮。在激勵結(jié)構(gòu)下,通過瓶頸結(jié)構(gòu)(Bottleneck)的激勵操作,進(jìn)行全局學(xué)習(xí)獲得每個特征通道的作用程度,并根據(jù)學(xué)習(xí)到的注意力權(quán)重為相應(yīng)的特征通道賦值,最后輸出帶有注意力標(biāo)注的H×W×C特征映射f′i。通道注意力機制的具體實現(xiàn)方式如式(5)和式(6)所示,W1與W0表示2層全連接層操作,表示經(jīng)池化層壓縮后的1維通道特征,F(xiàn)i為輸入特征映射,F(xiàn)c表示輸出通道特征,Wc表示權(quán)重參數(shù),是1×1×C維的向量,每一維的數(shù)對應(yīng)該通道的權(quán)重,σ表示Sigmoid 激活函數(shù),用于將輸入值映射到0到1之間的概率值。
SE-RD3QN 算法網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示,輸入層為機器人當(dāng)前狀態(tài),如式(7)所示,是一個包含激光雷達(dá)16個角度的距離參數(shù)的向量,經(jīng)過SE-ResNet模塊傳遞給全連接層,其中256@3×3 代表該卷積層輸出通道為256、卷積核的大小為3×3。
圖4 SE-RD3QN網(wǎng)絡(luò)結(jié)構(gòu)
SE-ResNet模塊是一個具有3個卷積層的網(wǎng)絡(luò)結(jié)構(gòu),每個卷積層都包含卷積、批量歸一化、ReLU 激活函數(shù)和最大池化操作。每2 個卷積層之間連接一層包含2個殘差塊的SE殘差層,每個殘差塊包含2個卷積層、批量歸一化、ReLU 激活函數(shù)和SE 模塊。SE 模塊包含全局平均池化層、2 個全連接層、ReLU 激活函數(shù)和Sigmoid 激活函數(shù)。其中,ReLU 函數(shù)可以增強深度學(xué)習(xí)模型的非線性表達(dá)能力,最大池化操作可以減少參數(shù)數(shù)量,從而提高深度學(xué)習(xí)模型的效率和泛化能力。SE-ResNet網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 SE-ResNet網(wǎng)絡(luò)結(jié)構(gòu)
如圖6所示,SE模塊位于殘差模塊卷積操作與求和操作之間,它的作用是在前向傳播過程中自適應(yīng)地調(diào)整輸入特征的權(quán)重,在第一個殘差層中,SE 模塊的2 個全連接層維度分別為32×256 和256×32,在第二殘差層中為16×128 和128×16,在第三個殘差層中為8×64 和64×8,通過2 個全連接層的升維和降維處理,最后使用Sigmoid函數(shù)將特征歸一化得到每個通道的權(quán)重。這樣,網(wǎng)絡(luò)就可以自動地學(xué)習(xí)和提取每個通道中最為重要的特征,從而提高網(wǎng)絡(luò)的表達(dá)能力和泛化能力。
圖6 SE-ResNet網(wǎng)絡(luò)單元
全連接層將輸入均分為2 個部分,一部分作為價值函數(shù)網(wǎng)絡(luò)的輸入,其輸出狀態(tài)值與獎勵值經(jīng)過加權(quán)求和后作為輸出,另一部分作為優(yōu)勢函數(shù)網(wǎng)絡(luò)的輸入,其輸出為狀態(tài)動作Q值。通過選擇最大Q值的動作,并將其和價值函數(shù)的輸出結(jié)果相加,從而得到最終的輸出結(jié)果。
SE-RD3QN 算法的路徑規(guī)劃流程如圖7 所示,將采集的距離參數(shù)傳入到估計網(wǎng)絡(luò)中提取環(huán)境特征,得到機器人的當(dāng)前狀態(tài)St輸入至目標(biāo)網(wǎng)絡(luò),計算出Q值選擇當(dāng)前動作a,并根據(jù)獲取的獎勵值r評估該動作的好壞。機器人進(jìn)入到下一狀態(tài),并將與環(huán)境交互所獲取的樣本s、a、r、st+1存儲到經(jīng)驗回訪池中,通過隨機采樣進(jìn)行采樣訓(xùn)練,根據(jù)估計網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)的輸出A(st,a;θ)和ytarget計算出損失函數(shù),然后進(jìn)行反向傳播來循環(huán)迭代更新網(wǎng)絡(luò)參數(shù),直至訓(xùn)練完成。經(jīng)過不斷循環(huán)以上過程,以累積獎勵值Reward 最大為目標(biāo),最終得到最優(yōu)動作值函數(shù)A*(st+1,a;θ-)所對應(yīng)的最優(yōu)動作。SE-RD3QN算法流程如下:
圖7 路徑規(guī)劃流程圖
本文通過搭建仿真環(huán)境分別對D3QN、增加殘差層的RD3QN算法和本文提出的SE-RD3QN算法進(jìn)行訓(xùn)練,驗證殘差層和注意力模塊對模型訓(xùn)練效果的改善,通過對比Loss曲線驗證改進(jìn)結(jié)構(gòu)的有效性,并根據(jù)Loss曲線和Reward曲線驗證改進(jìn)獎懲機制的有效性。
泊車環(huán)境和泊車機器人模型在Gazebo 軟件下建立。本文實驗的操作系統(tǒng)為ROS 機器人操作系統(tǒng),考慮與ROS 的兼容性問題,選擇可進(jìn)行三維機器人運動學(xué)和動力學(xué)仿真的Gazebo 軟件來進(jìn)行路徑規(guī)劃實驗訓(xùn)練,該軟件可精準(zhǔn)地模擬出復(fù)雜環(huán)境下傳感器的作用及機器人的動態(tài)[25]。
在Gazebo 軟件中建立的仿真環(huán)境與泊車機器人模型如圖8所示。其中泊車環(huán)境為2.6 m×2.6 m的封閉空間,包含右側(cè)4個0.5 m×0.5 m的停車位,圖中機器人的位置即是起點,仿真過程默認(rèn)已經(jīng)將汽車放到機器人上方。機器人尺寸為0.3 m×0.2 m×0.11 m,車輪半徑為0.0325 m、寬為0.026 m,輪距為0.226 m。機器人采用四驅(qū)差速運動控制,具有前進(jìn)、左轉(zhuǎn)和右轉(zhuǎn)3個動作。
圖8 仿真環(huán)境和機器人模型
在仿真環(huán)境中,泊車機器人需要從起始點通過自主路徑規(guī)劃與導(dǎo)航到達(dá)目標(biāo)停車位,過程中需要不斷依靠傳感器與環(huán)境進(jìn)行交互,獲取所需的環(huán)境信息。本文中泊車機器人采用激光雷達(dá)傳感器來感知環(huán)境信息,并選用IMU(慣性傳感器)和里程計,分別獲取機器人實時線速度、角速度、角加速度和位置信息。
強化學(xué)習(xí)算法應(yīng)用OpenAI Gym 工具包[26]來開發(fā)和調(diào)試。應(yīng)用該工具包構(gòu)建SE-RD3QN 算法來訓(xùn)練機器人,再應(yīng)用openai_ros功能包將ROS、Gazebo與OpenAI Gym 三者聯(lián)合,來完成對機器人的訓(xùn)練任務(wù)。其中ROS 提供硬件驅(qū)動、動力學(xué)模擬、環(huán)境感知和控制器編程等功能,Gazebo 提供多模擬器、物理引擎和可視化系統(tǒng),而OpenAI Gym 則提供模擬環(huán)境和游戲引擎,以及用于訓(xùn)練機器學(xué)習(xí)模型的接口。三者的聯(lián)合使用可以模擬復(fù)雜的機器人和智能體行為,從而為機器人和智能體的訓(xùn)練提供強大的支持。
Gazebo 軟件與OpenAI Gym 工具包之間的通信通過創(chuàng)建節(jié)點和話題來實現(xiàn)。在ROS 中,節(jié)點是最小的進(jìn)程單元,通常一個節(jié)點負(fù)責(zé)控制機器人某個功能,節(jié)點和節(jié)點之間依靠話題進(jìn)行通訊。泊車機器人在仿真時,其必要的ROS節(jié)點關(guān)系圖如圖9所示。
圖9 ROS節(jié)點關(guān)系圖
泊車機器人在仿真環(huán)境中訓(xùn)練時角速度恒為1.0 rad/s,其環(huán)境狀態(tài)s∈S、動作空間a∈A,定義機器人的動作空間為:
其中每個動作對應(yīng)的名稱及線速度如表1 所示,根據(jù)SE-RD3QN算法得到每個動作對應(yīng)的一個Q值,然后選擇最大的Q值所對應(yīng)的動作執(zhí)行。
表1 泊車機器人訓(xùn)練時速度
環(huán)境狀態(tài)列表S如表2所示,其中,激光雷達(dá)參數(shù)作為神經(jīng)網(wǎng)絡(luò)的輸入狀態(tài),而將機器人位置信息和距離目標(biāo)點的距離作為環(huán)境狀態(tài)列表的一部分,在訓(xùn)練過程中進(jìn)行監(jiān)測和記錄,以便路徑規(guī)劃算法對環(huán)境進(jìn)行搜索和判斷,從而找到最佳路徑。
表2 環(huán)境狀態(tài)列表
SE-RD3QN 算法的神經(jīng)網(wǎng)絡(luò)超參數(shù)設(shè)置如表3所示。其中探索率ε 會逐漸衰減,計算公式如式(9)所示。為了促進(jìn)算法的收斂,本文使用CyclicLR 循環(huán)學(xué)習(xí)率,其學(xué)習(xí)率可進(jìn)行周期性變換,即:
表3 神經(jīng)網(wǎng)絡(luò)超參數(shù)
為提高SE-RD3QN 算法的訓(xùn)練速度,訓(xùn)練時僅提取激光雷達(dá)采集到的0°~360°數(shù)據(jù)列表中的16 個角度值,代表機器人與障礙物的距離。這些值與最小距離參數(shù)進(jìn)行比較,以檢測機器人是否與環(huán)境中的障礙物碰撞。泊車機器人的動作獎勵值列于表4 中。碰撞會導(dǎo)致機器人獲得-120 的獎勵值,并返回起點重新開始。到達(dá)目標(biāo)點時,機器人將獲得獎勵值240。本文通過修改算法超參數(shù)和優(yōu)化獎懲機制,不斷訓(xùn)練,以使損失函數(shù)曲線(Loss)平穩(wěn)下降并盡快收斂,同時獲得最大的獎勵值(Reward)。
表4 獎勵值設(shè)置
一般算法的訓(xùn)練效果可通過收斂速度和累積獎勵值2 項指標(biāo)來體現(xiàn)。收斂速度反映學(xué)習(xí)能力,收斂速度越快,則機器人在更少迭代次數(shù)下學(xué)習(xí)能力越好;累積獎勵值反映學(xué)習(xí)效果,累積獎勵值越多,則機器人訓(xùn)練時到達(dá)目標(biāo)點的次數(shù)越多,訓(xùn)練效果越好。
為了驗證殘差層和注意力模塊對模型訓(xùn)練效果的改善,在仿真環(huán)境中分別對D3QN 算法、增加殘差層的RD3QN 算法和SE-RD3QN 算法進(jìn)行訓(xùn)練,神經(jīng)網(wǎng)絡(luò)超參數(shù)設(shè)置見表3。比較3種算法的損失曲線如圖10 所示,DQN 算法在3800 步左右Loss 值突然上升,發(fā)生了網(wǎng)絡(luò)退化現(xiàn)象;RD3QN 算法解決了網(wǎng)絡(luò)退化問題,并且算法收斂速度較D3QN 算法明顯提升,Loss 最小值小于D3QN;SE-RD3QN 算法的收斂速度進(jìn)一步提升,且Loss 最小值在3 種算法中最低,說明本算法在相同用時能夠?qū)崿F(xiàn)更好的性能,并且對數(shù)據(jù)集的擬合效果更好。
圖10 D3QN、RD3QN、SE-RD3QN算法Loss曲線
SE-RD3QN 算法的網(wǎng)絡(luò)性能如表5 所示,相比D3QN 算法擁有更多的模型參數(shù)量和更長的單集運行時間,但是在實驗中,SE-RD3QN 算法首次找到目標(biāo)點的步數(shù)顯著減少,從1127步減少到了432步。這說明SE-RD3QN 算法在解決復(fù)雜問題時具有更強的搜索能力和學(xué)習(xí)能力,能夠更快找到最優(yōu)解。因此,SE-RD3QN算法具有更高的可行性和優(yōu)勢,可以作為一種有效的強化學(xué)習(xí)算法來解決復(fù)雜問題。仿真實驗訓(xùn)練過程中使用的硬件配置中,CPU 的型號為Intel Core i7-10870H,圖形處理器GPU 為NVIDIA Ge-Force GTX1650Ti。
表5 D3QN、RD3QN、SE-RD3QN算法性能
獎懲機制對訓(xùn)練效果有顯著影響。為了縮短機器人到達(dá)目標(biāo)點的時間,本文改進(jìn)了獎勵機制。優(yōu)化前,機器人采取直行或轉(zhuǎn)向動作時獲得相應(yīng)獎勵,到達(dá)目標(biāo)點時獲得終極獎勵,碰撞則扣除一半終極獎勵。優(yōu)化后,在此基礎(chǔ)上增加了有效步、無效步和更優(yōu)步的判定。機器人采取直行或轉(zhuǎn)向動作時,獲得相應(yīng)獎勵并進(jìn)行判定。若自身與目標(biāo)點的絕對距離小于上個位置的絕對距離,則視為有效步并再次獲得相應(yīng)獎勵;反之為無效步,不獲得獎勵,若絕對距離的縮減量超過步長的一半,則獲得2 倍的動作獎勵。優(yōu)化后的獎勵機制可使機器人更快到達(dá)目標(biāo)點且獲得更大獎勵,有助于路徑規(guī)劃訓(xùn)練。
為了進(jìn)一步驗證SE-RD3QN 算法的訓(xùn)練效果,將其Loss曲線和Reward曲線與D3QN算法對比,并增加有無獎懲機制的對比實驗,將應(yīng)用獎懲機制的SERD3QN算法和D3QN算法命名為SE-RD3QN′算法和D3QN′算法,驗證改進(jìn)獎懲機制的有效性。將算法訓(xùn)練后得到的損失函數(shù)曲線(Loss)如圖11所示,結(jié)果表明:SE-RD3QN 算法Loss 曲線在2000 步左右處開始收斂,收斂速度較快,而D3QN算法在9000步左右開始收斂,收斂速度較慢,而D3QN′算法收斂速度有了明顯的提升,在5000 步左便開始收斂,而SE-RD3QN′算法收斂速度并未明顯改變。這表明SE-RD3QN 算法解決了網(wǎng)絡(luò)退化問題,并提高了學(xué)習(xí)能力,已具有較好的收斂速度,因此再應(yīng)用優(yōu)化的獎懲機制提升的進(jìn)一步收斂速度沒有D3QN′算法表現(xiàn)得那么明顯。
圖11 D3QN、D3QN′、SE-RD3QN、SE-RD3QN′算法Loss曲線
4 種算法的獎勵值曲線對比如圖12 和表6 所示,可以看出SE-RD3QN 算法每一步的獎勵值都在D3QN 算法之上,并在使用優(yōu)化獎懲機制后有了更明顯的提升。SE-RD3QN 算法的平均獎勵值為2.854,比D3QN算法的1.812高出了57.5%,而優(yōu)化了獎懲機制的SE-RD3QN′算法為3.785 比原算法高出32.6%,說明在躲避障礙物上和動作選擇方面,SE-RD3QN比D3QN 算法更有優(yōu)勢,優(yōu)化的獎懲機制作用效果也十分顯著。
表6 平均獎勵值對比
圖12 D3QN、D3QN′、SE-RD3QN、SE-RD3QN′算法Reward曲線
為進(jìn)一步體現(xiàn)本文方法在泊車機器人路徑規(guī)劃上的優(yōu)勢,這里與目前常用的A*+TEB 算法進(jìn)行對比。其中A*算法用于全局路徑規(guī)劃,TEB[27]算法用于局部路徑規(guī)劃,并在差速運動機器人的路徑規(guī)劃上表現(xiàn)較好。對比的2 種算法設(shè)置相同的起點和目標(biāo)點,仿真過程如圖13和圖14所示。
圖13 應(yīng)用SE-RD3QN算法仿真過程
圖14 應(yīng)用A*+TEB算法仿真過程
對比泊車機器人從起點到目標(biāo)點花費的時間、規(guī)劃路徑的長度和路徑的平滑程度,如圖15和表7所示,可以明顯看出SE-RD3QN 算法獲得軌跡曲線更加連貫平穩(wěn),運動軌跡更加平滑;而A*+TEB算法獲得軌跡曲線有轉(zhuǎn)折,軌跡冗余點較多且拐點多,表明運動存在驟行驟停,轉(zhuǎn)向與前進(jìn)結(jié)合自如性較差。SE-RD3QN算法獲得的路徑略短于A*+TEB 算法,而規(guī)劃時間僅是A*+TEB 算法的1/2,具有明顯的優(yōu)勢。A*+TEB 算法的規(guī)劃時間更多花費在轉(zhuǎn)彎處的計算量上,因此難以適用于環(huán)境復(fù)雜、計算維度高的路徑規(guī)劃中。
表7 不同算法規(guī)劃的路徑
圖15 路徑軌跡曲線
為了驗證訓(xùn)練的網(wǎng)絡(luò)模型在真實環(huán)境中的實用性,如圖16 所示,建立與仿真環(huán)境等比例縮放的真實場景(見圖16(a))以四輪小車代替泊車機器人(見圖16(b))。此小車由四驅(qū)差速底盤、stm32單片機、樹莓派4b以及激光雷達(dá)等硬件組成,上位機主機為樹莓派,安裝有Ubuntu MATE 操作系統(tǒng)和ROS Melodic,下位機從機為筆記本電腦(PC),安裝有Ubuntu18.04 和ROS Melodic,PC端通過SSH協(xié)議遠(yuǎn)程控制四輪小車。
圖16 實驗場景與機器人實驗平臺
將SE-RD3QN 算法在仿真環(huán)境中訓(xùn)練得到的網(wǎng)絡(luò)模型移植到四輪小車上,其路徑規(guī)劃的實驗截圖如圖17 所示,圖中對應(yīng)位置的激光雷達(dá)數(shù)據(jù)如圖18 所示,小車可以在未知環(huán)境中感知環(huán)境狀態(tài),并選擇合適的動作達(dá)到目標(biāo)狀態(tài),說明該模型可以實現(xiàn)實物小車的實時路徑規(guī)劃,表明該算法的有效性與實用性。
圖17 四輪小車的路徑規(guī)劃實驗截圖
圖18 Rviz中激光雷達(dá)信息
針對A*算法對泊車機器人路徑規(guī)劃時存在普適性差、不適用于復(fù)雜運動和復(fù)雜多變環(huán)境的問題,本文提出了SE-RD3QN 算法應(yīng)用于該類型機器人的路徑規(guī)劃。該算法在D3QN 算法的基礎(chǔ)上,將卷積網(wǎng)絡(luò)修改為殘差網(wǎng)絡(luò),嵌入注意力機制,改善了D3QN 算法存在的網(wǎng)絡(luò)退化和收斂速度慢的問題,并結(jié)合優(yōu)化的獎懲機制,進(jìn)一步縮短了算法訓(xùn)練的時間,提高了路徑規(guī)劃決策能力。仿真實驗表明,應(yīng)用SE-RD3QN算法的泊車機器人在路徑規(guī)劃中的表現(xiàn)從路徑的平滑程度、運行的平穩(wěn)性、路徑長度和規(guī)劃時間等方面明顯優(yōu)于應(yīng)用A*算法。最后將訓(xùn)練模型用于真實環(huán)境下的實驗場景中,進(jìn)一步驗證了本文算法的訓(xùn)練效果。