楊 嬌 張慶年 楊 杰 阮 軍 吳績偉 凌 強
(武漢理工大學交通與物流工程學院1) 武漢 430063) (武漢理工大學信息工程學院2) 武漢 430070)
(上海國際港務(集團)股份有限公司3) 上海 200135)
隨著無人駕駛技術的推廣應用,無人船已成為繼無人機、無人車后新的研究熱點,并且某些領域有逐步取代普通有人駕駛船的趨勢.
目前,對無人船駕駛行為決策的研究較少,且大多基于知識規則庫和學習的方法研究[1],而基于知識規則庫[2]的方法常難以應用于復雜、不確定的場景.基于學習的深度強化學習方法,近年被廣泛用于無人駕駛決策問題.其中,DDPG因其簡化了求解過程而被廣泛運用[3],但其對超參數敏感,總導致策略次優[4],針對其缺點進行改進后得TD3算法,其性能等遠超過DDPG.
近幾年,無人船的避碰決策及避碰路徑規劃是駕駛行為決策的研究熱點.Zhang等[5]提出了一種基于層次深度強化學習的自主導航決策模型,結果表明改進的DRL算法可提高導航安全性和避免碰撞.Wang等[6]為實現未知環境下USV的智能避碰和路徑規劃,建立了基于強化學習的路徑規劃算法模型.Guo等[7]提出了將DDPG與人工勢場相結合獲得改進的DRL來實現無人船的自主路徑規劃,結果證明此方法可以更好的實現自主路徑,但文中未考慮船舶的運動模型和實際驗證環境.Liu等[8]為解決多船避碰問題,建立了目標船舶避碰風險度分級的交互界面以提高船員的決策速度.但因碰撞風險的相對性和不確定性,船舶會遇時無法快速、準確地獲得統一的碰撞風險評估.Jie等[9]提出一種智能船舶類人決策識別模型和一種新的機動決策因素標準化原則.但其需數據驅動,模型的準則也過于粗略,不具有實際操作意義.
文中基于TD3算法,結合《內河避碰規則》(以下簡稱《內規》)和駕駛經驗,建立內河無人船的駕駛行為決策模型.
圖1 基于TD3算法的無人船自主決策學習過程
步驟1初始化價值網絡Qθ1,Qθ2和策略網絡πφ的參數θ1,θ2,φ.
步驟3初始化經驗池R.
步驟5直到無人船到達終點狀態或周期數達到設計值.
當無人船自主決策時,其自身為“本船”(OS),而其他船舶,即避碰的目標船視為“礙航船”(TSs).根據《內規》第10~12條的規定,將會遇船分別定義為直行船和讓路船.為保證安全,OS作為直行船時也保持警惕,隨時進行避讓.圖2為以OS為中心會遇態勢.具體場景的航行規則見表1,圖3為部分會遇態勢的圖示.
圖3 不同會遇態勢下的行為決策示意圖
表1 內河船舶航行規則
圖2 船舶會遇態勢
選取彭延領[10]對船舶領域定義的航行領域和碰域來衡量碰撞危險度.據文獻[11]選取適用的參數,得四種領域的相對位置關系圖(見圖4),得出航行領域和碰域的表達式,分別為
圖4 船舶的四種領域相對位置圖
(1)
式中:vo為實際航速;vA為平均速度;d+d′為水線面以下深度的最大值;d為最大吃水;d′為富裕水深;h+h′為水線面以上高度的最大值;h為船舶的凈空高;h′為高度安全余量.
(2)
參數解釋同式(1).
2.3.1狀態空間設置
假設本研究中的OS及其周圍檢測范圍內的一切礙航物及水域情況等信息,均可獲得.將狀態s定義為智能體 (Agent) 在給定的單位時間步長t接收到的環境信息.狀態空間為s((x0,y0),v0,φ0,(xT,yT),vT,φT).其中,(x0,y0)為OS的位置[19];v0為OS的航速;φ0為航向;(xT,yT)、vT、φT為TS對應的量.這些指標也作為神經網絡的輸入.其相關的量均可根據計算公式由以上四個量得到,其表示的幾何意義見圖5.
vR-兩船的相對速度;φR-相對速度方向;D-兩船的相對距離;aT-TS相對于OS的真方位;QT-TS相對于OS的舷角;DCPA-最近會遇距離.
2.3.2動作空間
在避碰時,Agent通過更改航向和(或)速度來確保在復雜水域中的航行安全,同時需結合專家經驗和內河避碰規則等進行最終決策.在自主決策系統中,無人船需經過充分的訓練才能自主決策.定義無人船右轉時,取其航向的改變量at為正值;當左轉時取負值.定義其決策動作空間的范圍為[-Δφ,Δφ],Δφ為在給定的單位時間t內無人船的航向改變量.
2.3.3勵函數設計
獎勵函數由三部分組成:安全性獎勵函數、經濟性獎勵函數和協調性獎勵函數,見式 (3).獎懲值由查閱文獻后,放入模型進行仿真,采用效果最佳的值.
R=ηRc+(1-η)RD+Rg
(3)
式中:Rc為安全性獎勵函數;RD為經濟性獎勵函數;Rg為協調性獎勵函數;η為調節安全性獎勵函數和經濟性獎勵函數的比例參數.本文經調整后取0.8.
1) 安全性獎勵函數 采用OS與TS(s)之間的距離D的變化來定義安全性獎勵函數,見式 (4).當D(t)>D(t-1)時,給獎勵值20;當D(t) (4) 2) 經濟性獎勵函數 采用船舶與目的地的距離L和與航線中心線的距離C的變化來定義經濟性獎勵函數,見式(5).在避碰過程中,當L(t) (5) 3) 協調性獎勵函數 協調性獎勵函數是針對OS避讓時采取的避碰動作來設計,見式 (6).無人船在滿足規則的策略中進行動作選擇,如果采取的動作符合內河避碰規則和駕駛經驗知識為T,給獎勵值5;反之,不符合時為F,給較大的懲罰值-100. (6) 3.1.1無人駕駛決策仿真設置 在Window10系統下,搭建Anaconda3的python3.7編譯環境,用于對無人駕駛船舶的駕駛決策的各模型進行編碼,并用tensorflow1.13深度學習框架搭建神經網絡.調用pyglet模塊來實現仿真結果的可視化,它可視化的模擬環境包括船、礙航物和生成的路徑等.表2為程序中相關參數的設置,在所有模擬情況下,都使用相同的參數設置,且指定無人駕駛船舶以避碰并以最佳路徑收斂到其預定航域,最后到達目的地. 表2 TD3算法用于駕駛行為決策時的參數 3.1.2無人駕駛決策模型訓練 構造一段天然內河河道為無人駕駛船舶駕駛決策模型的訓練環境,設寬度800 m,直線長度2 000 m,設置有障礙物.設置OS的長度L為106 m、型寬B為17.1 m、型深H為8.3 m、滿載吃水T為5.8 m,船舶初始速度為18 kn,平均航速設置為15 kn,由此可計算出避讓領域中比例系數k和碰域邊界等其他參數的值.將OS置于搭建的仿真環境中,設置其目的地為(1 600,600),完成任務時即結束一個episode.定義TS的速度為16 kn,給定OS確定的初始位置、隨機的航向,若OS與TS發生碰撞,則讓其退后到事故發生前距離為Dd的某一位置,Dd為L.而TS在每個episode中,位置、航向都隨機.訓練結束時,訓練得出的數據以文件的形式保存,后續可繼續訓練(為了對模型的性能提出更高的要求,故文中設定的仿真航速大于內河通常航速,因航速越大避碰難度越大). 圖6為經過一段時間訓練的效果圖.由圖6可知:其碰撞次數從開始的五千多次,波動下降到訓練最后的幾十次,波動是無人船學習時在利用與探索之間平衡導致的.圖7為TD3算法與DDPG算法的結果對比圖,TD3的平均獎勵值約為3 500,而DDPG的約為2 000;且TD3的收斂速度也更快,故綜合而言,前者明顯優于后者. 圖6 無人駕駛船舶決策訓練碰撞次數趨勢圖 圖7 算法效果對比圖 3.2.1對駛會遇 在對駛會遇時,模擬目標是讓OS自主決策,讓其在遵守內河避碰規則和良好駕駛經驗的情況下避免與TS發生碰撞,同時遵循預定路徑并達到目的地.在此任務中,使用TD3算法訓練DRL智能體程序來避免TS.令點(150,300)為OS的初始坐標,航向為90(,令點(1 800,300)為目的地坐標.TS的船長也為106 m,航速為16 kn,航向為270(,點(900,300)為TS的初始坐標,目的地坐標為(200,300).仿真后結果見圖8.進一步改變OS的航速為20 kn,其余保持不變,進行仿真,結果見圖9.然后,改變OS的船長為146 m,再進行仿真,得到結果見圖10. 圖8 對駛會遇場景仿真結果圖 圖9 改變航速后的對駛會遇仿真結果圖 圖10 改變船長后的對駛會遇仿真結果圖 圖8a)為無人駕駛船舶在對駛會遇時的船舶決策航跡,這種場景下,OS與TS均為讓路船,但是文中只是單船的自主決策,所以采用了TS狀態不變,OS避讓的措施.深色為TS航跡,淺色為OS,而虛線框為OS的假設預定航行區域.由圖8a)可知:OS右轉變速避讓,但船舶之間恢復安全距離后,OS并沒有直接大幅度轉向回到預定航線上,而是決策出一條較優的回歸路徑.由圖8b)可知:在15 s時,OS進入避碰決策狀態,右轉10°,在30 s時,預測判斷不需要再左轉之后,采取了右轉20°,然后進一步判斷無碰撞危險時,在40 s采取小幅度左轉10°.當駛近預定航行區域時才右轉20(回到預定路徑駛向目的地.由上可知,無人駕駛船舶可以進行正確判斷會遇態勢,并據內河避碰規則以及駕駛經驗進行自主決策,且當TS不采取措施時,OS能決策出安全的航線,最終完成給定任務.同理分析改變航速和改變船型之后的仿真結果圖9~10.由圖8~9可知:船舶提前進入避碰決策,且保持的船間安全距離更大;且因船舶初速度較大,在避碰過程中其采取大幅度轉向避碰.由圖8和圖10可知:船舶因為船長變大,所以計算出安全距離更大,提前采取措施避碰.在避碰時,因考慮到船長較大,所以沒有直接采取大幅度轉向,而是連續小幅度轉向開始避碰;在避碰過程中保持的安全距離也更大. 3.2.2交叉會遇 令點(150,300)為OS的起始位置,點(1 600,300)為目的地位置,航向為90°.TS的船長船速保持不變,航向為300°,起始坐標為(580,50),目的地坐標為(150,500).此時是右舷大角度會遇,而vT/vO≤0.95,應左轉向避讓,見圖11.進一步改變OS的航速為20 kn,其余保持不變,進行仿真,結果見圖12.改變OS的船長為146 m后進行仿真,結果見圖13. 圖11 交叉相遇場景仿真圖 圖12 改變航速后的交叉相遇場景仿真圖 圖13 改變船長后的交叉相遇場景仿真圖 由圖11a)可知:無人船正確辨識會遇態勢為右舷大角度會遇,為避讓船;同時根據TS與OS的航速比決策出應左轉向避讓.在采取轉向避讓后,為盡快解除碰撞危險,對船舶進行了加速.由圖11b)可知:船舶采取小角度轉向避讓,結合變速,在保證船舶安全的情況下,是一個良好的避碰決策.而在判斷船舶解除碰撞危險后,為了避免船舶偏離航線太遠,在40 s進行右轉30°,然后保持航行到接近航域時,左轉回到預定航線并駛向目的地.同理可分析圖12~13,同對駛相遇情況一樣,通過改變航速與船長之后進行仿真結果的比較,船舶依然可以很好的進行避碰,且可根據航速、船長等的改變調整避碰措施. 3.2.3追越場景 令點(100,300)為OS的起始位置,點(1 600,300) 為目的地,航向為90°.TS的船長保持不變,船速為12 kn,航向為90°,起始坐標為(280,300),目的地坐標為(1 600,300).此時是右舷大角度會遇,而DCPA>0,應右轉向避讓,見圖14.然后改變OS的航速為20 kn,其余保持不變,進行仿真,結果見圖15.改變OS的船長為146 m后進行仿真,結果見圖16. 圖14 追越場景仿真圖 圖15 改變航速后的追越場景仿真圖 圖16 改變船長后的追越場景仿真圖 由圖14~16可知:無人船在初始航速、船長變大之后,在避碰決策時均相應增大安全距離.在航速與船長變化后,采取的轉角措施有變化,在初始航速和船長變大時,其更早地采取轉角,角度也更大.再對比對駛和交叉會遇場景的仿真分析可以看出,追越場景對兩船的航速差要求大,且對追越地理位置的要求更高,同時,為避免船吸、浪損等現象的危害,保持較大的安全距離.無人船可很好的識別會遇態勢并做出準確及時的決策,此算法可行性、魯棒性、時效性、泛化性等均較好. 1) 內河避碰規則和駕駛經驗可用于基于TD3算法的無人駕駛行為決策中. 2) 基于TD3算法的無人駕駛決策模型可很好的判別各種會遇態勢,并采取正確決策. 3) 通過改變船舶的初速度和船長,對比仿真結果分析可知,無人船均可靈敏準確決策,且在不同航速及不同船長之間保持的安全距離,及開始采取措施時間的不同,可為衡量船舶碰撞危險度提供參考. 4) 通過對無人駕駛船舶的綜合訓練仿真結果,可為有人船的駕駛提供駕駛決策策略庫.3 模型訓練仿真
3.1 訓練仿真準備
3.2 決策模型仿真
4 結 論