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