鄭 帥 賈寶柱,2* 張昆陽 張 程
1(大連海事大學輪機工程學院 遼寧 大連 116026) 2(廣東海洋大學海運學院 廣東 湛江 524088)
海上應急救援往往受海況惡劣、時間緊迫等因素限制,救援成功的關鍵在于遇險目標位置的確定和如何快速靠近遇險目標。海上遇險目標會隨著風、浪、流的作用而發生漂移,由于各種海洋漂浮物的受風面積與水下面積不盡相同,即使在同一風場與流場中,落水物的漂移軌跡也不相同[1]。相關研究表明,落水人員在20 ℃海水中最長存活時間為16小時20分鐘,而在0 ℃海水中最長存活時間僅為12 分鐘[2],即使遇險人員能夠利用救生艇、筏等延長存活時間,但也受到淡水、食物等補給限制。
目前,海上救援主要依靠人工的經驗駕駛船舶應對海上多變的復雜環境追蹤遇險目標,但是海上環境惡劣,使執行救援任務時有較高的安全風險。隨著船舶無人駕駛技術的發展,海上無人救援研究受到了廣泛重視[3]。
針對遇險目標位置漂移問題,多數研究采用了預測遇險目標漂移軌跡的辦法。曠芳芳等[4]結合風場和流場的數值模擬,給出了落水人員和救生筏的風致漂移系數,用于預測落水人員以及救生筏的實時位置。劉同木等[5]基于MMG模型研究了風、浪、流的作用下船舶的漂移數學模型。Gao等[6]通過蒙特卡洛方法在疑似馬航370航班遇難海域對其殘骸的漂移軌跡進行預測。漂移模型預測方法的不足在于無法找到一個通用的預測模型對不同漂移目標的位置進行預測。同時,已有的多數研究工作僅僅關注預測方法準確度,卻沒有考慮遇險目標的快速追蹤及靠近的問題。根據SOLAS公約規定,每艘救生艇、筏要求至少配備一臺搜救雷達應答器(Search and Rescue Radar Transponder,SART),用來近距離確定遇難船舶、救生艇、救生筏,以及幸存者位置[7]。因此,實際救援場景中更可靠的是根據SART所提供的實時目標位置信號開展營救。
當遇險目標的位置已知,就要考慮如何快速靠近遇險目標的問題。Park等[8]基于視覺的估計和制導方法,控制無人機追蹤移動目標。李靜等[9]提出交通道路網絡環境下的局部搜索樹移動目標追蹤算法。Woo等[10]設計了強化學習控制器,使無人船具備了自主路徑跟蹤的能力。本文嘗試將DDPG深度強化學習算法應用于海上無人救援,結合SART所提供遇險目標位置信號,設計了基于機器人操作系統[11](Robot Operating System,ROS)仿真實驗平臺。在Gazebo物理仿真器中模擬水文環境以及船舶的運動特性,使搜救無人船在感知環境信息的同時,通過對不同漂移軌跡的落水物進行追蹤實驗,訓練其追蹤漂移遇險目標的能力。
一般情況下,船舶運動研究通常只考慮三個自由度的運動,通過 Gazebo插件實現雙體船操縱的非線性運動學模型,船舶操縱公式[12]如下:
Mv+C(v)v+D(v)v=τ+τenv
(1)
η=J(η)v
(2)
式中:M是慣性矩陣;C(v)是科里奧利矩陣;D(v)是阻尼矩陣;τ是推進系統產生的力和力矩向量;τenv是通過Gazebo插件模擬的風、浪、流干擾力;向量η描述了慣性參考系北(N)、東(E)中的位置和繞Z軸的轉首角度φ;η= [x,y,φ]T和向量v包含船體固定坐標系中的船體的縱向速度u、橫向速度v和轉首角速度r,即v=[u,v,r]T。船體坐標系到慣性坐標系的坐標轉換關系為:

(3)
為追蹤到不同的遇險目標,使算法具有一定的泛化性,搜救船的環境模型需要考慮遇險目標的位置,得到遇險目標與搜救船的相對位置關系,這種關系包括二者之間的距離d以及船舶的首向與二者連線方向的夾角φ,環境模型狀態如圖1所示,定義狀態s為:
s=[d,φ]T
(4)

圖1 狀態示意圖
當搜救船捕獲到SART反射的雷達信號,在雷達屏幕上形成12個一連串的光點,這種顯示方式用來區別于其他雷達回波信號,其中最靠近雷達中心點的光點便是遇險目標的位置(xt,yt)。另外,通過船舶運動模型計算我們船的位置信息(xv,yv),可以計算出二者之間的距離d。
(5)
φ=φ1-φ2(-180<φ,φ1,φ2≤180);φ1通過模型計算得出,其為首向角,即船首方向與正北方向的夾角;φ2為遇險目標和搜救船的相對方位,即二者連線與正北方向的夾角。
φ2=arctan((xt-xv)/(yt-yv))
(6)
對環境狀態的改變依賴于智能體通過驅動裝置使船舶發生運動,雙體船通過電機指令驅動兩個螺旋槳產生差速推力來驅動搜救船移動。動作空間由一組電機指令組成,指令發布時間間隔為1 s,定義動作空間a為:
a={[m+n,m-n]T|m∈[-0.5,0.5],n∈[-0.5,0.5]}
(7)
式中:m表示雙體船的雙槳轉速值;n表示左右螺旋槳差動值。參考文獻[12]中的系柱實驗得出的單漿推力與電機指令之間映射關系,得到搜救船的驅動力τ,根據船舶操縱模型以及坐標轉換公式可以計算出當前指令執行后船舶的位置姿態。
由于救援任務具有時間相關性,所以獎勵函數的設計需要考慮時間與距離因素。獎勵函數用rt表示。
(8)
式中:t表示時間環境反饋獎勵值為(2-0.01×t),設計成為時間相關函數,目的是引導搜救船用盡量短的時間完成追蹤任務;dt表示當前采樣獲得的搜救船與遇險目標的距離;dt-1表示上一次采樣的距離。將上一次的距離與當前的距離做差,如果當前距離比上次距離短,差值為正,反之為負,φ角同理,這種設計目的是引導搜救船朝著遇險目標的方向逐漸靠近,獲得相對較高的獎勵值。
環境觀測值與動作值由深度確定性策略梯度下降(Deep Deterministic Policy Gradient,DDPG)[13]算法進行處理。DDPG算法需要兩套神經網絡,分別為主網絡與目標網絡。每套網絡都由一個Actor(演員)網絡與一個Critic(評論家)網絡構成。兩套網絡的網絡結構完全相同,只是參數不同。
該算法是在梯度下降法的基礎上,對Actor-Critic算法進行改進,將輸出動作選擇概率轉變為輸出確定動作值的強化學習算法,這個確定性的zs915121動作是隨機策略梯度的極限值。Actor-Critic算法框架由兩個網絡構成,包含了以求解值函數為核心的Critic網絡,還有以策略為核心的Actor網絡。其中Actor網絡的輸入為狀態矩陣,輸出確定的動作值at,而Critic網絡的輸入為動作值at與狀態值st,輸出動作的Q值,Q值對當前回合的一系列動作策略做出評價,因此,訓練該網絡的過程是判斷動作策略優劣的學習過程,通過訓練,得出Q值最大的一系列動作策略。
每一步采集的樣本(st,at,r,st+1)輸入到主網絡中訓練,采樣過程如圖2所示,同時開辟一個記憶庫來存儲采樣的結果,目標網絡則隨機抽取記憶庫中的數據作為輸入,記憶庫的數據不斷更新,切斷了樣本數據間的相關性。主網絡的參數通過回合更新的方式,若干回合后,將主網絡參數賦值給目標網絡,進行目標網絡的參數更新。

圖2 樣本采集過程
算法具體流程如下:
(1) 構建Actor網絡與Critic網絡,主網絡參數分別為θμ、θQ,并進行隨機初始化。Critic網絡得到的Q值為Q(s,a|θQ),Actor網絡得到狀態到動作的映射μ(s|θμ)。
(2) 通過網絡參數θμ、θQ來初始化所要求解的目標網絡的參數θμ′、θQ′,同時開辟一個記憶庫存儲空間。
(3) 初始化狀態s1,通過主網絡加上高斯擾動Nt,從動作庫中選擇一個動作at進行探索:
at=u(s|θμ)+Nt
(9)
(4) 執行該動作,得到相應的獎勵rt和下一個狀態st+1,并且形成元組(st,at,rt,st+1),作為一條采樣值存到記憶庫存儲空間中。
(5) 通過當前網絡Q(s,a|θQ)進行估計,同時從記憶庫中選取一小批元組數據,通過Bellman方程對Q值進行估計,估計結果表示為:
q(ai)=ri+γQ(si+1,μ(st+1|θμ′)|θQ′)
(10)
式中:γ表示折扣率,反映未來估計的獎勵對當前決策的影響程度,如果γ=0,則不考慮未來任何價值;如果γ=1,則未來的價值不會隨時間衰減。
將計算出的兩個值做差,得到損失函數TD_error。然后使用梯度下降法對Critic網絡的參數進行更新。
(6) 主要采取策略梯度的方式進行Actor網絡的更新,即:
▽θμμ(s|θμ)|si
(11)
在得到策略梯度后,通過最大化期望獎勵的方式對總獎勵進行梯度上升更新參數。
(7) 若干回合后,將主網絡的參數賦值給目標網絡,對目標網絡參數更新。
(12)
算法結構如圖3所示。

圖3 DDPG算法結構圖
使用TensorFlow搭建Actor網絡和Critic網絡,Actor網絡的輸入為狀態矩陣,網絡結構有兩個隱藏層,每個隱藏層的節點分別為400、300,輸出動作矩陣。將狀態矩陣輸入到Critic網絡中,該網絡第二層有400個節點,第三層有300個節點。動作矩陣也輸入到Critic網絡,第二層有300個神經元節點,并將狀態空間矩陣輸入的網絡的第三層神經元與動作矩陣輸入的網絡的第二層神經元節點合并進行線性變換,輸入到第四層網絡神經元節點上,該層共有300個神經元節點,最后輸出動作的Q值。網絡的所有神經元節點之間的連接方式均為全連接方式,網絡結構圖如圖4所示。

圖4 Actor-Critic網絡結構圖
實驗設計基于ROS,在Gazebo物理仿真器中創建三維實驗環境與智能體,模擬海上救援場景,設定環境場景邊界為50×50的范圍,初始狀態下搜救船位于(0,0)的位置,并在環境擾動的干擾下運動,遇險目標位于(20,10)的位置。當搜救船與遇險目標的距離小于5時,視為滿足成功救援的條件。Actor網絡的學習率為0.000 1,Critic網絡的學習率為0.001,折扣因子為0.99。每次實驗的總回合數為1 000,每個回合最多采集200個樣本數據,由于搜救船執行電機指令需要一定的時間,設置樣本采集的時間間隔為1 s。記憶庫的容積為10 000,批數據的容量為64。獎勵函數的系數為ξ,ζ均為1,目標網絡更新參數κ為0.01。
3.2.1直線軌跡目標追蹤
從圖5中可以看出,實驗初期(前200回合),由于探索的概率比較大,這一階段搜救船在探索環境,采集環境樣本數據,很難準確追蹤到遇險目標,平均Q值Qa也較低,只有少數成功的情況,Q值較高。從圖6中可以看出,這一階段用時都相對較長。實驗中期(200~500回合),隨著樣本數量的累積,逐漸建立起了獎勵函數與動作策略之間的聯系,搜救船從探索環境知識逐漸轉為利用環境知識,逐漸可以追蹤到遇險目標,算法快速收斂,但是會走一些彎路。隨著訓練的不斷深入,搜救船會不斷地調整自己的運動趨勢,以最短的時間靠近遇險目標,最終Qa穩定在10,平均時長ta穩定在70 s。從Q值以及時間的變化趨勢來看,算法符合救援過程中時間緊迫性的要求。

圖5 Q值以及平均Q值(Qa)變化曲線一

圖6 回合時長以及平均時長(ta)變化曲線一
從三個階段中選取第105回合、第263回合、第634回合,以及第975回合訓練過程進行分析,如圖7所示,分別對應(a)、(b)、(c)、(d)的四幅軌跡圖,其中虛線軌跡為搜救船的運動軌跡,實線軌跡為遇險目標的漂移軌跡。可以看出只有第105回合訓練失敗,結合圖5可以看出,獎勵值最低,其他三個回合均成功追蹤到了遇險目標。隨著訓練深入,第263、第634、第975回合搜救船的軌跡漸短,Q值越高,結合圖6可以看出所用的時間也越來越短。

圖7 搜救船及遇險目標運動軌跡一
在Gazebo仿真環境中可以觀察到以上四個回合結束時搜救船與遇險目標的相對位置如圖8所示,其中黑色的圓點為回合結束時遇險目標的位置。

圖8 回合結束時Gazebo場景一
由圖9可以直觀地看出上述四個回合的樣本的實時獎勵值變化趨勢。第105回合(曲線a)獎勵值多數情況下是負數,表明搜救船一直在遠離遇險目標,因此Q值比較低,為-21。而第975回合(曲線d)則每一個動作都是在靠近遇險目標,因此獎勵值很高,高達20.4。其他兩個回合(曲線b和曲線c)均有正有負,表明追蹤過程有遠離的情況,這兩個過程中的動作策略不是最優的策略。從圖7的軌跡圖中也可以看出這一點,證明獎勵函數的設計可以引導搜救船快速追蹤到救援目標,是有效的。

圖9 單個回合獎勵值隨時間的變化曲線對比一
3.2.2不規則軌跡目標追蹤
由于不同落水物體在海上的軌跡不同,為證明算法的有效性,補充了不規則軌跡落水物的追蹤實驗。從圖10中可以看出與直線軌跡追蹤實驗結果相似,隨著環境狀態樣本采樣數量的增加,搜救船由探索環境轉變為利用環境知識,從第200回合開始算法逐漸收斂;平均Q值(Qa)逐漸增加,最終穩定在15左右。從圖11中可以看出完成任務所需的平均時間(ta)逐漸減少,用時較少的回合可達28 s。由此可見,盡管不同的遇險目標漂移的軌跡不同,甚至軌跡變得不規則,搜救船仍然可以通過DDPG算法達到快速追蹤到遇險目標的目的,算法仍能夠收斂。

圖10 Q值以及平均Q值(Qa)變化曲線二

圖11 回合時長以及平均時長(ta)變化曲線二
選擇第50、第330、第840、第915回合,運動軌跡分別如圖12(a)、(b)、(c)、(d)所示,同樣虛線軌跡為搜救船的運動軌跡,實線軌跡為遇險目標的漂移軌跡。第50回合中搜救船沒有能夠追蹤到遇險目標,而第330、第840、第915回合均完成了對遇險目標的追蹤任務,并且第915回合的軌跡是最短的,用時最少,Q值也是最高的。

圖12 搜救船及遇險目標運動軌跡二
上述四個回合在回合結束時, Gazebo中顯示的相對位置如圖13所示,黑點表示回合結束時遇險目標的位置。

圖13 回合結束時Gazebo場景二
通過對以上四個回合中的每一次采樣獲得的獎勵值變化進行分析,如圖14所示。從曲線e可以看出,算法未建立起獎勵函數與動作策略之間的關系,與遇險目標的距離時遠時近,曲線在0附近波動。而曲線g和曲線h表示在這兩個回合中每次采樣的獎勵值大多位于0.5以上,表明搜救船與遇險目標正在快速靠近,再一次說明獎勵函數的設計是有效的。

圖14 單個回合獎勵值隨時間的變化曲線對比二
在海上無人救援過程中,針對遇險目標漂移問題,本文提出一種基于DDPG算法的目標追蹤方法,本文所做的研究工作及相應結論可為實船實驗提供參考。主要結論如下:
(1) 分析了強化學習算法應用于海上無人救援情景的技術難點,在未知遇險目標的漂移模型情況下,當獲取遇險目標與自身相對位置時,算法可以使搜救船自主做出恰當的操縱決策,以較短的時間靠近遇險目標,通過直線漂移軌跡的遇險目標追蹤實驗和不規則漂移軌跡的遇險目標追蹤仿真實驗得以驗證。
(2) 將強化學習算法與海上實際救援情況相結合,設計狀態、動作空間、相應的獎勵函數,獎勵函數的設計考慮了時間因素與距離因素。經過仿真實驗驗證,獎勵函數能夠引導無人搜救船快速地追蹤到遇險目標,并且具有一定的泛化性,符合海上搜救時間緊迫性的要求以及目標追蹤距離逐漸縮短的要求。