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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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