劉國名,李彩虹,李永迪,張國勝,張耀玉,高騰騰
(山東理工大學 計算機科學與技術(shù)學院,山東 淄博 255000)
路徑規(guī)劃是機器人領域的重要組成部分,主要分為全局路徑規(guī)劃和局部路徑規(guī)劃[1]。全局路徑規(guī)劃是從整體環(huán)境出發(fā),依據(jù)已知地圖信息規(guī)劃出一條從起點到目標位置的安全無碰撞路徑;而局部路徑規(guī)劃是在未知環(huán)境下,通過雷達傳感器探測周圍環(huán)境信息來進行路徑規(guī)劃[2-3]。常用的局部路徑規(guī)劃方法有人工勢場[4]、模糊控制[5]、神經(jīng)網(wǎng)絡[6]、強化學習[7]等。其中,強化學習不需要任何先驗知識,其通過機器人與環(huán)境交互、累積獎勵來優(yōu)化策略;而神經(jīng)網(wǎng)絡能夠解決傳統(tǒng)強化學習算法無法處理的高維連續(xù)狀態(tài)和連續(xù)動作信息,可以很好地對機器人避障問題進行建模[8-9]。隨著深度學習、神經(jīng)網(wǎng)絡以及計算能力的提升,深度學習和強化學習結(jié)合的深度強化學習已經(jīng)成為目前機器人路徑規(guī)劃研究的熱點[10]。
強化學習方法主要分為基于值函數(shù)的方法和基于策略梯度的方法[11]。傳統(tǒng)強化學習通常使用基于值函數(shù)的方法,如CHRISTOPHER等[12]提出的通過Q 值表來對不同狀態(tài)進行打分,但該方法需要大量資源來維護Q 值表,當狀態(tài)和動作空間高維連續(xù)時,Q 值表無法完成存儲。Google Deepmind 團隊提出深度強化Q 學習(Deep Q-Learning,DQN)算法[13],利用神經(jīng)網(wǎng)絡把Q 值表的更新問題變成一個函數(shù)擬合問題;隨后又證明了確定性策略梯度(Deterministic Policy Gradient,DPG),提出深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法實現(xiàn)了連續(xù)動作的學習,該算法更接近于基于值函數(shù)的方法[14]。與基于值函數(shù)的方法不同,基于策略梯度的方法是模型直接輸出具體動作,并通過環(huán)境反饋利用梯度上升來直接修改策略參數(shù)[11]。WILLIAMS等[15]提出的Reinforce 算法,通過蒙特卡洛采樣來更新策略所需梯度,但算法中指導更新方向的狀態(tài)價值通過回溯方法獲得,采樣效率較低。SCHULMAN等[16]提出置信域策略優(yōu)化(Trust Region Policy Optimization,TRPO)方法限制輸出域更新范圍,但影響了算法的實現(xiàn)效率和更新速度。OPENAI 團隊提出近端策略優(yōu)化(Proximal Policy Optimization,PPO)算法,實現(xiàn)了更簡潔的一階更新限制幅度方法[17]。PPO 算法對于連續(xù)控制問題有很好的表現(xiàn),其以馬爾可夫決策過程(Markov Decision Process,MDP)為基礎,延續(xù)了置信域策略優(yōu)化算法的步長選擇機制,借鑒了基于策略的估計思想以及Actor-Critic 框架中策略與價值雙網(wǎng)絡的經(jīng)驗[18]。申怡等[19]提出基于自指導動作的SDAS-PPO 算法,利用增加的同步更新經(jīng)驗池提高了樣本的利用率,但該方法在訓練過程中容易產(chǎn)生梯度爆炸的問題。對于機器人路徑規(guī)劃任務,通過深度強化學習算法收集到的數(shù)據(jù)具有時序性且環(huán)境狀態(tài)存在相關(guān)性,而神經(jīng)網(wǎng)絡可以通過強大的表征能力來解決連續(xù)狀態(tài)動作空間問題。長短期記憶(Long Short-Term Memory,LSTM)神經(jīng)網(wǎng)絡是一種特殊的循環(huán)神經(jīng)網(wǎng)絡,能夠解決長序列訓練過程中的梯度消失和梯度爆炸問題,因此,LSTM 神經(jīng)網(wǎng)絡能夠很好地滿足任務需要[20]。
PPO 算法能夠解決連續(xù)動作和高維連續(xù)狀態(tài)的問題,但存在收斂速度慢、易陷入死鎖區(qū)域等不足[21]。本文對PPO 算法進行改進,引入LSTM 神經(jīng)網(wǎng)絡,將機器人6 個雷達傳感器探測的信息以及機器人與目標點之間的距離和夾角作為網(wǎng)絡輸入,將機器人的角速度和線速度作為網(wǎng)絡輸出,記憶獎勵值高的樣本,遺忘獎勵值低的樣本;在訓練過程中,通過判斷機器人所處狀態(tài)決定是否啟用虛擬目標點,幫助機器人走出陷阱區(qū)域,從而減少模型學習時間,提高算法收斂速度。
本文設計合理的狀態(tài)、動作空間以及獎懲函數(shù),利用傳感器探測并收集環(huán)境信息,然后將數(shù)據(jù)信息作為狀態(tài)特征向量輸入到網(wǎng)絡中,根據(jù)策略選擇最優(yōu)動作、獲取獎勵,通過累積獎勵來優(yōu)化策略。
本文采用兩輪差分驅(qū)動機器人作為仿真測試平臺[22],利用全方位激光雷達傳感器檢測環(huán)境信息。雷達傳感器探測范圍設置如圖1 所示。
圖1 雷達傳感器探測范圍Fig.1 Radar sensor detection range
在圖1中,扇形區(qū)域代表傳感器180°探測范圍,每5°返回一組該區(qū)域內(nèi)距離機器人最近障礙物的距離信息,共測得36 組數(shù)據(jù)。把測得的36 組數(shù)據(jù)相鄰分為6組,每組6 個數(shù)據(jù),將每組數(shù)據(jù)信息經(jīng)特征融合之后作為該30°區(qū)域傳感器測得的信息。
機器人的狀態(tài)空間由8 個特征向量組成,分別為6 個方向傳感器返回的最近障礙物的距離信息di(i=1~6)、機器人與目標點之間的距離信息Dr和機器人運行方向與目標點方向之間的夾角θr。狀態(tài)空間s定義為:
動作空間包括角速度ωr和線速度vr。參考機器人運動學并考慮實際需求,對角速度ωr和線速度vr的范圍進行歸一化,機器人角速度ωr∈[-1,1],線速度vr∈[0,1][23]。動作空間a定義為:
獎勵函數(shù)是決定強化學習算法能否成功收斂的關(guān)鍵[24]。本文設計的獎勵函數(shù)R主要由三部分組成,分別為距離獎懲R1、方向獎懲R2和累加轉(zhuǎn)角和獎懲R3。R1和R2表示機器人執(zhí)行動作之后,如果距離目標點更近或者與目標點之間的夾角更小,則給予適當獎勵,反之則給予懲罰;考慮到機器人前期可能會頻繁轉(zhuǎn)彎導致訓練過程中不必要的訓練,添加執(zhí)行n次動作后的累加轉(zhuǎn)角和獎懲R3,超過閾值則給予懲罰。獎勵函數(shù)設計如下:
其中:r1表示機器人到達目標點獲得的獎勵;r2表示機器人碰到障礙物獲得的懲罰;Db表示機器人未執(zhí)行動作前與目標點之間的距離;Dr表示機器人當前狀態(tài)與目標點之間的距離;θb表示機器人未執(zhí)行動作前與目標點連線之間的夾角;θr表示機器人當前狀態(tài)運行方向與目標點連線之間的夾角;θs表示機器人連續(xù)執(zhí)行動作后的累加轉(zhuǎn)角和。
為加快算法收斂速度并解決訓練過程中易陷入死鎖區(qū)域的問題,本文對PPO 算法進行改進:將與環(huán)境交互收集到的相關(guān)性樣本信息作為特征向量輸入到LSTM 神經(jīng)網(wǎng)絡中,利用LSTM 神經(jīng)網(wǎng)絡中的記憶單元選擇樣本中需要記憶和遺忘的信息,基于PPO 算法選擇最優(yōu)動作并獲取獎勵優(yōu)化策略;同時在陷入死鎖區(qū)域時啟用虛擬目標點,在不同場景中設置不同位置的虛擬目標點,引導機器人走出各種死鎖區(qū)域。
PPO 算法的原理是將策略參數(shù)化,即πθ(a|s),利用參數(shù)化的線性函數(shù)或者神經(jīng)網(wǎng)絡來表示策略。PPO 算法框架如圖2 所示。
圖2 PPO 算法框架Fig.2 PPO algorithm framework
PPO 策略梯度算法通過計算估計量結(jié)合隨機梯度上升算法來實現(xiàn),更新公式為:
其中:θb為更新前的策略參數(shù);θr為更新后的策略參數(shù);α為學習率;?θ為重要性權(quán)重;J為優(yōu)化目標,即在狀態(tài)s下未來獎勵的期望值[25]。
策略梯度算法存在難以確定更新步長的問題,當更新步長不合適時,更新后的參數(shù)對應的策略回報函數(shù)值會降低,越學越差導致算法最終無法收斂。通過式(5)將新舊策略網(wǎng)絡的動作輸出概率的變化范圍r(θ)限制在一定區(qū)域內(nèi),可以解決此問題,這也是PPO 算法的核心。
其中:CLIP 是python 中的函數(shù),是指取區(qū)間;ε為超參數(shù),一般設置為0.2;為優(yōu)勢函數(shù);Q(sr,ar)為在狀態(tài)sr下采取動作ar的累積獎勵值;V(sr,ar)為狀態(tài)估計值。當>0時,說明此動作比平均動作要好,增大選擇該動作的概率;當<0時,說明此動作比平均動作要差,減少選擇此動作的概率。但是網(wǎng)絡得到的動作的概率分布不能差太遠,因此,分別在1+ε和1-ε處截斷,限制策略更新的幅度。圖3(a)和圖3(b)分別說明了這兩種情況。
圖3 目標函數(shù)的限制范圍Fig.3 Restricted range of objective function
LSTM 神經(jīng)網(wǎng)絡之所以能夠在應對長序列問題時有很好的表現(xiàn),主要是其在神經(jīng)網(wǎng)絡結(jié)構(gòu)中引入了門控概念,通過計算遺忘門、輸入門和輸出門的狀態(tài)信息來控制記憶單元[26]。LSTM 神經(jīng)網(wǎng)絡結(jié)構(gòu)如圖4 所示。其中:t表示當前時刻;xt表示當前輸入;ht-1表示上一時刻輸出;ht表示當前輸出;ct-1表示上一時刻單元狀態(tài)信息;ct表示當前單元狀態(tài)信息;σ表示sigmoid 函數(shù),輸出為0~1 之間的數(shù)字,表示一個神經(jīng)元有多少信息可以通過;tanh 表示雙曲正切層。
圖4 LSTM 神經(jīng)網(wǎng)絡結(jié)構(gòu)Fig.4 LSTM neural network structure
當有新的狀態(tài)輸入到達之后,ht-1和xt通過遺忘門層中的sigmoid 函數(shù)決定在神經(jīng)元細胞中遺忘什么信息,輸出為0~1 之間的數(shù)字,“1”代表“完全保留”,“0”代表“完全遺忘”,計算公式如下:
下一步?jīng)Q定在神經(jīng)元細胞中保存的信息,包括兩部分:一部分是通過輸入門層中的sigmoid 函數(shù)決定的更新數(shù)值it;另一部分是通過tanh 層生成的新候選數(shù)值。
將這兩部分信息添加到神經(jīng)元狀態(tài)中,可得到當前時刻狀態(tài)信息ct,如式(9)所示:
通過輸出門層中的sigmoid 函數(shù)決定輸出的神經(jīng)元狀態(tài),記為ot。將當前時刻狀態(tài)信息ct通過tanh函數(shù)歸一化到-1~1 之間,兩者相乘得到當前時刻輸出值ht,計算公式如下:
根據(jù)機器人局部路徑規(guī)劃任務的需求以及雷達傳感器的數(shù)據(jù)信息,本文將LSTM-PPO 網(wǎng)絡設計為8 輸入、2 輸出結(jié)構(gòu)。以機器人運動軌跡的狀態(tài)信息作為輸入,當前時刻機器人采取的動作作為輸出,每一次執(zhí)行動作后獲得獎勵值,通過策略梯度更新網(wǎng)絡參數(shù)以及自適應優(yōu)化算法訓練得到最終模型。LSTM-PPO 網(wǎng)絡結(jié)構(gòu)如圖5 所示。
圖5 LSTM-PPO 網(wǎng)絡結(jié)構(gòu)Fig.5 LSTM-PPO network structure
LSTM-PPO 網(wǎng)絡主要包含4 層神經(jīng)網(wǎng)絡,如圖6所示。第1、2 層為全連接層,分別包含128 和64 個隱藏神經(jīng)元節(jié)點,將機器人的狀態(tài)信息序列作為輸入的特征向量,使用ReLU 非線性函數(shù)作為激活函數(shù),進行更好的特征提??;第3 層為LSTM 神經(jīng)網(wǎng)絡層,包含3 個隱含的LSTM 記憶單元,用于獲取一系列時間序列上的記憶信息,控制之前狀態(tài)信息和當前狀態(tài)信息的遺忘和記憶程度;第4 層為全連接層,輸出策略均值μ和策略方差σ,分別利用sigmoid 函數(shù)和tanh 函數(shù)作為激活函數(shù),通過高斯分布N=(μ,σ)采樣,獲得機器人運動的線速度vr和角速度ωr。
圖6 LSTM-PPO 神經(jīng)網(wǎng)絡結(jié)構(gòu)Fig.6 LSTM-PPO neural network structure
與離散障礙物場景不同,在特殊障礙物場景中,存在著死鎖狀態(tài),機器人在學習趨向目標點的過程中,會頻繁碰到“一”型和“U”型場景中的障礙物,導致難以走出死鎖區(qū)域。本文通過設計虛擬目標點來幫助機器人學習繞過特殊障礙物環(huán)境趨向目標點的經(jīng)驗,解決遠離目標點獎勵值減小的問題。在判斷機器人進入特殊障礙物場景中的死鎖狀態(tài)后,棄用目標點,啟動虛擬目標點,利用虛擬目標點引導機器人;在判斷走出死鎖區(qū)域之后,棄用虛擬目標點,重新啟用目標點,給予機器人正確的引導。
將傳感器Di(i=1~6)方向存在障礙物設為狀態(tài)“1”,無障礙物設為“0”,虛擬目標點設置的距離Dv設為傳感器探測距離100 cm。通過讀取機器人6 個傳感器返回的障礙物數(shù)據(jù)信息,判斷機器人是否進入死鎖狀態(tài),如果已進入,讀取當前機器人與目標點之間的夾角θr,利用表1 設計的虛擬目標點規(guī)則計算出當前虛擬目標點設置的方向θv,盡可能遠離障礙物。虛擬目標點的位置坐標(x1,y1)為:
表1 虛擬目標點規(guī)則 Table 1 Virtual target point rules
其中:(x,y)為機器人當前位置坐標。
圖7 為虛擬目標點位置示意圖(彩色效果見《計算機工程》官網(wǎng)HTML版,下同)。在圖7(a)中,機器人處于“U”型場景中的陷阱區(qū)域內(nèi),此時雷達傳感器探測到運行前方出現(xiàn)障礙物,根據(jù)表1 中虛擬目標點規(guī)則,將虛擬目標點設置在機器人運行方向的左前方向,引導機器人左轉(zhuǎn),減少碰到障礙物的概率;在圖7(b)中,機器人左轉(zhuǎn)后,雷達傳感器在D3、D4、D5、D6方向探測到障礙物,繼續(xù)在運行方向左前方設置虛擬目標點,解決遠離目標點獲得獎勵減少的問題;在圖7(c)中,機器人在走出死鎖區(qū)域之后,需要在其右前方設置虛擬目標點,引導機器人繞過障礙物,否則會因為目標點的引導重新進入死鎖區(qū)域。
圖7 虛擬目標點位置示意圖Fig.7 Schematic diagram of virtual target point position
本文在離散障礙物場景和特殊障礙物場景下進行模型訓練,將傳統(tǒng)PPO 算法、SDAS-PPO 算法作為對比算法。仿真環(huán)境為二維,大小設置為700 cm×700 cm。以黑色實線表示利用訓練好的模型規(guī)劃出的路徑,其他符號意義同圖7(d)中的圖例所示。
3.1.1 離散障礙物場景
在離散障礙物場景下,通過初始化LSTM-PPO算法的參數(shù),隨機設置起始點、目標點和障礙物位置來構(gòu)建隨機環(huán)境,使機器人能夠?qū)W習到趨向目標點和避障的經(jīng)驗。模型訓練參數(shù)如表2 所示。
表2 離散障礙物場景的訓練參數(shù) Table 2 Training parameters under discrete obstacle scene
分別記錄訓練過程中機器人每一輪獲得的平均獎勵和每一次到達目標點的路徑長度,如圖8 和圖9所示。由圖8 可以看出:隨著迭代輪數(shù)的增加,在LSTM-PPO 算法迭代到50 輪左右時,平均獎勵已經(jīng)從負值提升至0,說明算法已經(jīng)學習到部分避障經(jīng)驗;當算法迭代到第80 輪時,每輪的平均獎勵基本在0.02~0.04 之間波動且波動很小。由圖9 可以看出:在機器人初次到達目標點后,路徑長度下降迅速;在到達目標點100 次后,路徑長度基本趨于穩(wěn)定并維持在80 步上下波動,說明LSTM-PPO 算法基本趨于收斂狀態(tài)。
圖8 平均獎勵(離散障礙物場景)Fig.8 Average reward(discrete obstacle scene)
圖9 路徑長度(離散障礙物場景)Fig.9 Path length(discrete obstacle scene)
圖10 為利用LSTM-PPO 算法在2 種離散場景下訓練模型規(guī)劃的路徑,可以看出,模型已學習到趨向目標點和避障的經(jīng)驗,路徑平滑度較高且模型泛化能力強。
圖10 規(guī)劃路徑(離散障礙物場景)Fig.10 Planning path(discrete obstacle scene)
3.1.2 特殊障礙物場景
特殊障礙物場景包括“一”型和“U”型場景,存在的問題主要是陷入死鎖狀態(tài)導致目標點不可達,因此,通過設計虛擬目標點來引導機器人走出死鎖區(qū)域,減少在死鎖環(huán)境中訓練的時間,加快模型收斂速度。
圖11 和圖12 分別為在特殊障礙物場景訓練過程中機器人每一輪獲得的平均獎勵和每一次到達目標點的路徑長度。由圖11 可以看出:機器人在特殊障礙物場景中獲得的平均獎勵在前50 輪處于負值,說明還未學習到足夠走出死鎖區(qū)域的經(jīng)驗;隨著訓練輪數(shù)的增加,每輪獲得的平均獎勵呈上升趨勢,且在150 輪時達到峰值。由圖12 可以看出:通過虛擬目標點的引導,在機器人第一次到達目標點之后,通過訓練模型,規(guī)劃路徑的長度一直處于減小的狀態(tài)且在訓練后期趨于穩(wěn)定,在訓練期間,虛擬目標點的引導使機器人學習到了走出陷阱區(qū)域的經(jīng)驗,且具有足夠的穩(wěn)定性,說明算法已收斂。
圖11 平均獎勵(特殊障礙物場景)Fig.11 Average reward(special obstacle scene)
圖12 路徑長度(特殊障礙物場景)Fig.12 Path length(special obstacle scene)
圖13 為機器人分別在“一”型和“U”型場景中規(guī)劃出的路徑??梢钥闯?,通過虛擬目標點的引導訓練出的模型,可以在雷達傳感器探測到特殊障礙物狀態(tài)時繞過死鎖區(qū)域,在不碰到障礙物的同時規(guī)劃出一條較短的路線。
圖13 規(guī)劃路徑(特殊障礙物場景)Fig.13 Planning path(special obstacle scene)
針對特殊障礙物場景和混合障礙物場景,分別基于傳統(tǒng)PPO 算法、SDAS-PPO 算法和所提出的LSTM-PPO 算法實現(xiàn)機器人的局部路徑規(guī)劃任務,對比在相同場景下獲得的平均獎勵和路徑規(guī)劃長度。
圖14 和圖15 分別為“U”型障礙物環(huán)境下傳統(tǒng)PPO算法、SDAS-PPO 算法和LSTM-PPO 算法所獲得的平均獎勵和規(guī)劃路徑長度對比??梢钥闯觯篖STM-PPO 算法相對于傳統(tǒng)PPO 算法和SDAS-PPO算法在前期訓練過程中波動較小,且借助LSTM 神經(jīng)網(wǎng)絡的記憶功能,在虛擬目標點的引導下累積獎勵更快,機器人能夠更快找到目標點;在訓練后期,規(guī)劃的路徑長度基本無波動,模型穩(wěn)定性強,說明LSTM-PPO 算法能夠使模型更快地到達收斂狀態(tài)且具備更高的泛化能力。
圖14 3 種算法的平均獎勵對比(特殊障礙物場景)Fig.14 Average reward comparison of three algorithms(special obstacle scene)
圖15 3 種算法的路徑長度對比(特殊障礙物場景)Fig.15 Path length comparison of three algorithms(special obstacle scene)
圖16 給出了3 種特殊障礙物場景下3 種算法的規(guī)劃路徑對比,其中,傳統(tǒng)PPO 算法規(guī)劃路徑為紅色實線,SDAS-PPO 算法規(guī)劃路徑為橙色實線,LSTMPPO 算法規(guī)劃路徑為黑色實線。顯然,傳統(tǒng)PPO 算法規(guī)劃出的路徑摻雜了太多冗余路段,而本文提出的虛擬目標點法可以很好地幫助機器人走出死鎖區(qū)域,減少規(guī)劃路徑過程中出現(xiàn)的冗余路段,大幅縮短了路徑長度。3 種算法路徑長度對比如表3 所示。
圖16 3 種算法的規(guī)劃路徑對比(特殊障礙物場景)Fig.16 Planning path comparison of three algorithms(special obstacle scene)
表3 3 種算法的路徑長度對比(特殊障礙物場景)Table 3 Path length comparison of three algorithms(special obstacle scene)
圖17 和圖18 分別為混合障礙物場景下3 種算法所獲得的平均獎勵和規(guī)劃路徑長度對比??梢钥闯?,3 種算法在收斂后所獲得平均獎勵都能達到峰值且規(guī)劃路徑長度基本相同,但LSTM-PPO 收斂速度相對較快,且每輪獎勵以及路徑規(guī)劃長度更加穩(wěn)定,波動較小,說明LSTM-PPO 算法訓練出的模型魯棒性更好,泛化能力更強。
圖17 3 種算法的平均獎勵對比(混合障礙物場景)Fig.17 Average reward comparison of three algorithms(mixed obstacle scene)
圖18 3 種算法的路徑長度對比(混合障礙物場景)Fig.18 Path length comparison of three algorithms(mixed obstacle scene)
圖19 給出了混合障礙物場景中3 種算法的規(guī)劃路線對比圖??梢钥闯?,LSTM-PPO 模型規(guī)劃出的路徑平滑度更高,轉(zhuǎn)彎角度更小且長度更短。3 種算法的路徑長度對比如表4 所示。
圖19 3 種算法的規(guī)劃路徑對比(混合障礙物場景)Fig.19 Planning path comparison of three algorithms(mixed obstacle scene)
表4 3 種算法的路徑長度對比(混合障礙物場景)Table 4 Path length comparison of three algorithms(mixed obstacle scene)
本文對PPO 算法進行改進,提出基于PPO 算法和LSTM 神經(jīng)網(wǎng)絡的LSTM-PPO 算法,并在特殊障礙物場景下引入虛擬目標點,與傳統(tǒng)PPO 算法和SDAS-PPO算法在各場景中進行仿真對比。LSTM-PPO算法引入了具有記憶功能的LSTM 神經(jīng)網(wǎng)絡,能夠加快模型的收斂速度,使訓練好的模型具有更強的泛化能力,同時其利用直接搜索策略更新參數(shù),能夠處理連續(xù)動作和高維連續(xù)狀態(tài),有更好的收斂性以及更強的魯棒性。設計的虛擬目標點法能夠在陷入死鎖區(qū)域時啟用虛擬目標點來引導機器人走出陷阱,解決特殊障礙物場景下容易陷入死鎖狀態(tài)造成目標不可達的問題。本文假設的障礙物位置固定且通過傳感器獲取的障礙物信息是沒有偏差的,下一步將對所提算法進行改進,使其適用于障礙物數(shù)目更多以及存在動態(tài)障礙物的實際應用場景。