周思雨,白成超
(哈爾濱工業(yè)大學航天學院,哈爾濱 150001)
近太空技術的不斷發(fā)展與逐步成熟,掀起了人類不斷向深外太空拓展的熱潮。近年來,世界主要航天大國都相繼制定了宏偉的深空探測長遠規(guī)劃與實施方案,例如美國、歐洲、日本以及俄羅斯[1-2]。在這些規(guī)劃中,重返月球(Return to the moon)、火星2020(Mars2020)、火星外空生物學(Exobiology on Mars,ExoMars)等探測任務都將研制最先進的行星車。中國的嫦娥三號探測器攜帶玉兔號月球車實現(xiàn)了深空測控通信技術的突破;嫦娥四號探測器攜帶玉兔二號月球車實現(xiàn)了月球背面巡視探測技術的突破;未來計劃發(fā)射的嫦娥五號探測器將對月面土壤進行采樣并返回。2016年由國務院發(fā)布的《“十三五”國家科技創(chuàng)新規(guī)劃》指出,“到2020年發(fā)射首顆火星探測器,突破一系列核心關鍵技術,在一次發(fā)射的基礎上,實現(xiàn)火星環(huán)繞以及著陸巡視探測”。由此可見,行星車在航天領域的深空探測方向具有重大的研究意義。
行星車在星體表面運動時,要求其具備良好的自主能力,按照《新一代人工智能發(fā)展規(guī)劃》中的論述,其關鍵技術為規(guī)劃、感知和控制等。其中,路徑規(guī)劃是指在起點和目標點(給定環(huán)境)之間搜索出一條最優(yōu)路徑,它是行星車的中樞神經(jīng)系統(tǒng),是其能夠安全高效地開展科學巡視探測的重要保證[3]。
按照地圖信息獲取方式的不同,將行星車的路徑規(guī)劃分為全局路徑規(guī)劃(基于先驗地圖信息)和局部路徑規(guī)劃(基于傳感器信息)。研究方法可以分為傳統(tǒng)方法和基于學習的方法。在傳統(tǒng)方法中,行星車的所有行為都是預先定義好的。典型代表如美國噴氣推進實驗室(Jet Propulsion Laboratory,JPL)為一系列火星車開發(fā)的車輛任務序列與可視化系統(tǒng)(The Rover Sequencing and Visualization Program,RSVP)。地面工作人員可以通過RSVP快速復現(xiàn)的精確三維環(huán)境信息來制定行星車的任務序列[4-5]。選用RSVP是由于行星表面地形復雜,容易引起滑移和滾翻,導致任務失敗。傳統(tǒng)的方法在這種情況下可以增加系統(tǒng)的可靠性。
然而,未來的行星車需要做出戰(zhàn)略轉變,將以大規(guī)??茖W探測為主。高價值的科學探測目標往往需要宇航員與多移動機器人協(xié)同作業(yè),因此伴隨著更為復雜的環(huán)境。對于行星車而言,作業(yè)環(huán)境不是完全已知的,需要其具備一定的對環(huán)境變化的自適應能力和自學習能力。因此需要研制出更高級的智能規(guī)劃模塊。此時,基于學習的規(guī)劃框架就充分發(fā)揮了它的優(yōu)勢。在基于學習的方法中,深度學習(Deep Learning,DL)可以成功處理高維信息;強化學習(Reinforcement Learning,RL)可以在復雜環(huán)境下執(zhí)行連續(xù)決策任務。如圖1所示,將RL和DL結合在一起的深度增強學習(Deep Reinforcement Learning,DRL)可以學習一個端到端(End-to-end)的模型,盡可能地簡化從感知到?jīng)Q策之間的人為操作,從而避免精密而脆弱的人工設計,進一步提升任務的穩(wěn)定性和智能性。
圖1 深度強化學習框架Fig.1 Deep reinforcement learning framework
基于以上需求背景,本文以行星車為應用背景,研究一種在行星探測環(huán)境中應用的基于DRL的路徑規(guī)劃方法。首先通過DL處理從環(huán)境中獲取的多源傳感器組成的狀態(tài)信息,然后利用RL基于預期回報評判動作價值,將當前狀態(tài)映射到相應動作,并將動態(tài)指令分配給行星車。作為算法驗證,本文將深入探索較為高效的基于DRL的方法,并將其應用于多傳感器行星車的路徑規(guī)劃中,賦予行星車對環(huán)境變化的自適應能力和自學習能力,同時在基于機器人操作系統(tǒng)(Robot Operating System,ROS)及Gazebo的仿真場景中驗證算法的有效性。這種DRL算法具有非常廣泛的應用,對于航天領域以及機器人領域中的自主規(guī)劃等都有非常重要的意義。
早期,研究者就嘗試將神經(jīng)網(wǎng)絡與RL進行集成,但當把離策略(Off-policy)、函數(shù)近似和引導(Bootstapping)結合在一起時,RL會表現(xiàn)出不穩(wěn)定,甚至開始發(fā)散。直到DeepMind團隊的Mnih等[6]創(chuàng)造出DQN,這才點燃了DRL領域。
此后,DQN得到了廣泛的發(fā)展,圖2給出了DQN的發(fā)展歷程,將其中的DQN、Double DQN和Dueling DQN算法融合在一起,結合PER算法就構成了D3QN PER算法。
2.1.1 經(jīng)驗回放
在DQN中使用經(jīng)驗回放的動機是:作為有監(jiān)督學習模型,深度神經(jīng)網(wǎng)絡(Deep Neural Network,DNN)要求數(shù)據(jù)滿足獨立同分布假設;但樣本來源于連續(xù)幀,這與簡單的RL問題(比如走迷宮)相比,樣本的關聯(lián)性大大增加。假如沒有經(jīng)驗回放,算法在連續(xù)一段時間內基本朝著同一個方向做梯度下降,那么在同樣的步長下,這樣直接計算梯度就有可能不收斂。所以經(jīng)驗回放的主要作用是:克服經(jīng)驗數(shù)據(jù)的相關性,減少參數(shù)更新的方差;克服非平穩(wěn)分布問題。經(jīng)驗回放的做法是從以往的狀態(tài)轉移(經(jīng)驗)中隨機采樣進行訓練,提高數(shù)據(jù)利用率,可以理解為同一個樣本被多次使用。
2.1.2 算法原理
神經(jīng)網(wǎng)絡的訓練可以理解為通過最優(yōu)化損失函數(shù)使其最小化,這里的損失函數(shù)指的是標簽和網(wǎng)絡輸出的偏差。為此,DQN算法利用Q-learning為Q網(wǎng)絡提供有標簽的樣本,再通過反向傳播使用梯度下降的方法更新神經(jīng)網(wǎng)絡的參數(shù)。
(1)采用DNN作為Q值的網(wǎng)絡:
其中,w為DNN的參數(shù)。
(2)在Q值中使用均方差(Mean Square Error,MSE)定義損失函數(shù):
(3)計算參數(shù)w關于損失函數(shù)的梯度:
圖2 DQN的發(fā)展歷程Fig.2 Development of DQN
(4)使用隨機梯度下降法(Stochastic Gradient Descent,SGD)更新參數(shù),從而實現(xiàn)端到端的優(yōu)化目標。
本文采用的DQN算法還引入了一個與當前值網(wǎng)絡結構一致的目標值網(wǎng)絡,負責生成訓練過程的目標,即。每訓練C步,將當前值網(wǎng)絡的參數(shù)完全復制給目標值網(wǎng)絡,那么,接下來C步參數(shù)更新的目標將由更新后的目標值網(wǎng)絡負責提供。
2.2.1 優(yōu)先經(jīng)驗回放
PER的思路來源于優(yōu)先清理(Prioritized Sweeping),它以更高的頻率回放對學習過程更有用的樣本,本文使用TD-error來衡量作用的大小。TD-error的含義是某個動作的估計價值與當前值函數(shù)輸出的價值之差。TD-error越大,則說明當前值函數(shù)的輸出越不準確,換而言之,能從該樣本中“學到更多”。為了保證TD-error暫時未知的新樣本至少被回放一次,將它放在首位,此后,每次都回放TD-error最大的樣本。
本文結合純粹的貪婪優(yōu)先和均勻隨機采樣。確保樣本的優(yōu)先級正比于TD-error,與此同時,確保最低優(yōu)先級的轉移概率也是非零的。
具體的,定義采樣轉移i 的概率為:
其中,pi是第i 個經(jīng)驗的優(yōu)先級;指數(shù)α決定使用優(yōu)先級的多少,當α=0時是均勻隨機采樣的情況。主要存在兩種實踐途徑,第一種是成比例的優(yōu)先(Proportional Prioritization),即
其中,δi為TD-error;ε是為了防止經(jīng)驗的TD-error為0后不再被回放。
在實現(xiàn)時采用二叉樹結構,它的每個葉子節(jié)點保存了經(jīng)驗的優(yōu)先級,父節(jié)點存儲了葉子節(jié)點值的和,這樣,頭節(jié)點的值就是所有葉子結點的總和。采樣一個大小為k 的minibatch時,范圍[0,ptotal]被均分為k 個小范圍,每個小范圍均勻采樣,各種經(jīng)驗都有可能被采樣到。
第二種是基于排行的優(yōu)先級(Rank-Based Prioritization),即:
其中,rank(i)是經(jīng)驗池中根據(jù)TD-error排行的第i個經(jīng)驗的排行。
在概率統(tǒng)計中,使用某種分布采樣樣本會引入偏差,加入重要性采樣(Importance-sampling)可以消除偏差。這里的重要性采樣權重為:
其中,β用于調節(jié)偏差程度,因為在學習的初始階段有偏差是無所謂的,但在后期就要消除偏差。為了歸一化重要性采樣權重:
2.2.2 算法原理
Q-learning中存在嚴重的過估計問題,這個問題同樣被帶入到DQN算法中。假設所有動作在當前狀態(tài)下的實際返回值都是0,但由于估計必定存在誤差,所以一些動作可能返回正值(假設為+0.5),一些動作可能返回負值(假設為-0.5)。在Q函數(shù)返回所有動作在當前狀態(tài)下的估計值后,Q-learning選擇最大Q值的動作。但此時這個最大值是+0.5,并且每一步(在每個狀態(tài)下)都存在該問題。隨著迭代往前進行,過估計問題可能導致策略逐漸變?yōu)橐粋€次優(yōu)解。為解決過估計問題,Double DQN應運而生[7]。它將目標Q值中動作的選擇和動作的評估分開,讓它們使用不同的Q網(wǎng)絡。在DQN中的目標Q值為:,而在Double DQN中的目標Q值為
如圖3所示,Dueling DQN[8]相比于DQN在網(wǎng)絡結構上做出了改進,在得到中間特征后,一邊預測狀態(tài)值函數(shù)v(s;θ,β),另一邊預測相對優(yōu)勢函數(shù)A (s,a;θ,α),兩個相加才是最終的動作值函數(shù):
其中,s、a分別為當前狀態(tài)和動作;θ為卷積層參數(shù);β和α是兩支路全連接層參數(shù)。這樣做的好處是v(s)和A(s,a)分別評定遠近目標,v(s)是對當前狀態(tài)的長遠判斷,而A(s,a)則衡量在當前狀態(tài)下不同動作的相對好壞。
圖3 Dueling DQN的網(wǎng)絡結構示意圖Fig.3 Network structure diagram of dueling DQN
訓練時,如果按照式(9)的做法,給定一個Q值無法得到唯一的ν和A,比如,ν和A分別加上和減去一個值能夠得到同樣的Q值,但反過來顯然不行。根據(jù)式(9),最優(yōu)狀態(tài)值函數(shù)ν*來源于使Q值最大的那個貪婪動作,即。由此,可通過強制使得選擇貪婪動作的優(yōu)勢函數(shù)為0,來保證分離出來的ν就是最優(yōu)策略下的ν*。所以?。?/p>
這個操作會偏離目標函數(shù),A不再為0,但可以保證該狀態(tài)下各動作的優(yōu)勢函數(shù)相對排序不變,而且可以縮小Q值的范圍,去除多余的自由度,提高算法的穩(wěn)定性。
圖4 自身信息處理方法示意圖Fig.4 Schematic diagram of its own information processing method
激光雷達(Light Detection And Ranging,LIDAR)能適應不同的光照,同時對環(huán)境具有較好的魯棒性,因此成為近期行星車發(fā)展中最重要的傳感器之一。
LIDAR產(chǎn)生的點云屬于長序列信息,比較難直接拆分成單個獨立的樣本通過CNN進行訓練。本文采用長短期記憶(Long Short-Term Memary,LSTM)網(wǎng)絡處理LIDAR點云信息,其中cell單元為512個,具體的網(wǎng)絡結構如圖5所示。
圖5 處理LIDAR點云信息的LSTM網(wǎng)絡結構示意圖Fig.5 Schematic diagram of LSTM network structure for processing LIDAR point cloud information
為了方便,控制LIDAR輸出的點云信息為360維,更新頻率是50Hz,探測范圍為-90o~90o,探測距離為0.1~10.0m。
盡管LIDAR擅長測量障礙物的距離和形狀,但實際上它并不能用于確定障礙物的類型。計算機視覺可通過分類完成這項任務,即給定相機的圖像,可以標記圖像中的對象。
本文采用CNN處理視覺圖像信息。輸入圖像(1024×728)經(jīng)過預處理和疊幀(4幀)后變?yōu)?0×80×4的單通道灰色圖。這里共采用了三個卷積層,它們分別是conv1、conv2和conv3。Conv1、conv2和conv3的具體參數(shù)可參見表1。
表1 卷積核參數(shù)Table 1 Convolution kernel parameter
結合前面所提出的針對自身狀態(tài)信息、LIDAR點云信息和視覺圖像信息的處理方法,再結合D3QN PER算法,由此可以給出行星車的環(huán)境特征融合方案,如圖6所示。
考慮到大規(guī)模行星探測作業(yè)環(huán)境的復雜性,首先將行星車的動作空間劃分為11個單元,如表2所示。
表2 動作劃分表Table 2 Action partition table
圖6 環(huán)境特征融合方案示意圖Fig.6 Schematic diagram of environmental feature fusion scheme
算法的基礎參數(shù)設置如表3所示。為了加快收斂速度,?-貪婪法的?參數(shù)從初始值1.0開始按照訓練步數(shù)線性下降,如式(12)所示,直到?等于?final后不再變化。
表3 參數(shù)設置表Table 3 Parameter settings table
PER算法的參數(shù)設置如表4所示。值得注意的是,β參數(shù)也按照訓練步數(shù)線性下降:
表4 PER算法參數(shù)設置表Table 4 PER algorithm parameter setting table
獎勵函數(shù)的設置參見表5。其中,vt和vt-1分別為t時刻和t-1時刻行星車的速度信息;ωt和ωt-1為t時刻和 時刻行星車的角速度信息;dt和dt-1為t時刻和t-1時刻行星車相對終點的距離信息;θt和θt-1為t時刻和t-1時刻行星車相對終點的角度信息。
表5 獎勵函數(shù)的設置Table 5 Setting of reward function
將沙礫和巖石簡化為靜態(tài)障礙,搭建的仿真環(huán)境如圖7所示。
圖7 仿真環(huán)境示意圖Fig.7 Schematic diagram of simulation environment
其中,靜態(tài)障礙為邊長為1m的黑色正方體,影響半徑為1.5m。在每一幕訓練時,行星車的起點和終點以及靜態(tài)障礙的位置都是隨機的,為了模擬行星探測環(huán)境的復雜程度,它們需要滿足以下條件:行星車的起點和終點之間的距離不小于20m;各靜態(tài)障礙之間的距離不小于5m;各靜態(tài)障礙與行星車的起點和終點之間的距離不小于5m。
訓練過程中獎勵隨幕數(shù)的變化趨勢如圖8所示,由圖可知,網(wǎng)絡收斂。
隨機生成的500幅地圖進行測試,測試過程中獎勵隨幕數(shù)的變化趨勢如圖9所示。由圖可知,500次測試中行星車全部到達了終點。
圖8 訓練過程中獎勵隨幕數(shù)的變化圖Fig.8 Change of reward with episode during training
圖9 測試過程中獎勵隨幕數(shù)的變化圖Fig.9 Chart of reward change with episode during testing
展示測試中的地圖,如圖10所示,規(guī)劃的路徑不僅能夠成功避障,并且較短較直。
圖10 路徑規(guī)劃結果示意圖Fig.10 Schematic diagram of path planning results
本文研究了行星車端到端的路徑規(guī)劃問題,將其應用于大規(guī)模行星探測背景下宇航員和多機器人協(xié)同作業(yè)的復雜環(huán)境中。使用CNN和LSTM處理多傳感器信息,結合DQN、Double DQN、Dueling DQN和PER算法的優(yōu)點,采用D3QN PER算法,賦予了行星車自主決策、自主學習以及自適應的能力。在靜態(tài)障礙環(huán)境中進行了一系列實驗,驗證了該方法對不同環(huán)境的適應性,展示了其在航天領域深空探測行星車上的應用價值。