国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于雙延遲深度確定性策略梯度的船舶自主避碰方法*

2022-07-20 01:43周壯壯張明陽(yáng)劉敬賢
交通信息與安全 2022年3期
關(guān)鍵詞:航向危險(xiǎn)船舶

劉 釗 周壯壯 張明陽(yáng) 劉敬賢▲

(1.武漢理工大學(xué)航運(yùn)學(xué)院 武漢 430063;2.武漢理工大學(xué)內(nèi)河航運(yùn)技術(shù)湖北省重點(diǎn)實(shí)驗(yàn)室 武漢 430063;3.武漢理工大學(xué)國(guó)家水運(yùn)安全工程技術(shù)研究中心 武漢 430063;4.阿爾托大學(xué)工程學(xué)院機(jī)械工程系 芬蘭艾斯堡 20110)

0 引 言

船舶作為水路運(yùn)輸?shù)闹黧w,是國(guó)家綜合立體交通網(wǎng)的重要構(gòu)成要素,其智能化已然成為了水運(yùn)發(fā)展的必然趨勢(shì)。《全球海洋技術(shù)趨勢(shì)2030》《智能航運(yùn)發(fā)展指導(dǎo)意見(jiàn)》《中國(guó)制造2025》《智能船舶發(fā)展行動(dòng)計(jì)劃(2019—2021)》和《交通強(qiáng)國(guó)建設(shè)綱要》等重要文件已明確指出:智能船舶是未來(lái)重要科技創(chuàng)新的新領(lǐng)域,人工智能、現(xiàn)代信息等高科技技術(shù)應(yīng)用于航運(yùn)業(yè)也是未來(lái)發(fā)展的必然趨勢(shì)。自主避碰技術(shù)是船舶智能化發(fā)展面臨的關(guān)鍵科學(xué)問(wèn)題[1],其研究受到各國(guó)學(xué)者的關(guān)注。

Lyu 等[2]通過(guò)將本船周?chē)鷦澐譃? 個(gè)區(qū)域,并在每個(gè)區(qū)域設(shè)置不同的斥力勢(shì)場(chǎng)函數(shù),實(shí)現(xiàn)在多物標(biāo)場(chǎng)景下及來(lái)船不協(xié)調(diào)行動(dòng)時(shí)的安全避碰,但該方法航向變化波動(dòng)較大,在部分場(chǎng)景下不滿(mǎn)足大角度避讓的要求。黃立文等[3]通過(guò)分析船舶會(huì)遇過(guò)程,結(jié)合船舶領(lǐng)域量化碰撞危險(xiǎn),并運(yùn)用速度障礙法求解船舶在特定會(huì)遇態(tài)勢(shì)下的動(dòng)態(tài)避碰操縱區(qū)間,但是該方法假定1 次避讓行動(dòng)就能讓清所有船舶,沒(méi)有對(duì)整個(gè)避碰過(guò)程求解操縱區(qū)間。丁志國(guó)等[4]利用模糊理論評(píng)估船舶碰撞危險(xiǎn),結(jié)合《1972年國(guó)際海上避碰規(guī)則》(Convention on the International Regulations for Preventing Collisions at Sea 1972,COLREGs,以下簡(jiǎn)稱(chēng)《避碰規(guī)則》),對(duì)典型會(huì)遇場(chǎng)景進(jìn)行仿真,實(shí)現(xiàn)在未知環(huán)境下2 船之間的安全避碰,但該方法未考慮多船避讓問(wèn)題。Wang等[5]提出了1種基于目標(biāo)船舶意圖推斷的分布式避碰決策模型,該方法考慮了船舶操縱特性及《避碰規(guī)則》要求,但在一些極端情況下會(huì)出現(xiàn)對(duì)目標(biāo)船意圖的推斷混亂情況,并造成避碰決策延遲。劉冬冬等[6]使用模糊理論方法結(jié)合四元船舶領(lǐng)域量化船舶碰撞危險(xiǎn),并應(yīng)用粒子群優(yōu)化算法以偏航距離、偏航時(shí)間為約束條件求解最短避碰路徑,實(shí)現(xiàn)了2船之間的快速避碰,但該方法得到的避碰路徑不符合船舶的操縱特性。Kim 等[7]使用遺傳算法,通過(guò)避碰效果評(píng)價(jià)、是否到達(dá)終點(diǎn),以及最小化航程等指標(biāo)來(lái)對(duì)船舶轉(zhuǎn)向角變量進(jìn)行優(yōu)化,得到了對(duì)于靜態(tài)障礙物的有效避碰策略,然而該方法并不能做到實(shí)時(shí)避讓且未考慮船舶之間的避碰問(wèn)題。Zhang 等[8]提出了適用于多船會(huì)遇場(chǎng)景下的分布式避碰決策方法,該方法在特定場(chǎng)景下目標(biāo)船操縱行動(dòng)不協(xié)調(diào)或未按照《避碰規(guī)則》進(jìn)行避碰操縱時(shí)依然具有較好的可靠性。朱凱歌等[9]引入Coldwell 船舶領(lǐng)域計(jì)算動(dòng)態(tài)避讓決策參數(shù),并基于決策參數(shù)設(shè)計(jì)船舶避碰流程,實(shí)現(xiàn)了2 船之間的安全避碰;Kang 等[10]通過(guò)構(gòu)建目標(biāo)船的船舶領(lǐng)域來(lái)評(píng)估本船的碰撞危險(xiǎn),并結(jié)合差分進(jìn)化算法設(shè)計(jì)受障礙物約束的適應(yīng)度函數(shù)來(lái)尋找避碰最優(yōu)路徑,但路徑的生成時(shí)間長(zhǎng),避碰效率低。

目前,深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)、語(yǔ)音識(shí)別、自然語(yǔ)言處理等諸多領(lǐng)域取得的突破性進(jìn)展,極大地促進(jìn)了人工智能的發(fā)展,深度神經(jīng)網(wǎng)絡(luò)極強(qiáng)的表征能力使得強(qiáng)化學(xué)習(xí)能夠應(yīng)用到更加復(fù)雜的決策問(wèn)題上。目前已經(jīng)有很多學(xué)者將深度Q 網(wǎng)絡(luò)(Deep Q-learning network,DQN)[11]、深度確定性策略梯度(deep deterministic policy gradient,DDPG)、近端策略?xún)?yōu)化(proximal policy optimization,PPO)、SAC(soft actor-critic)等深度強(qiáng)化學(xué)習(xí)算法應(yīng)用到船舶自主避碰中。Cheng 等[12]考慮外部環(huán)境干擾與船舶操縱性能,利用DQN算法實(shí)現(xiàn)對(duì)多個(gè)靜態(tài)障礙物的轉(zhuǎn)向與變速避讓?zhuān)窃摲椒ㄎ纯紤]船舶之間的避碰操縱;王程博等[13]依據(jù)馬爾可夫決策過(guò)程構(gòu)建船舶避碰要素,利用深度強(qiáng)化學(xué)習(xí)算法進(jìn)行訓(xùn)練,實(shí)現(xiàn)船舶與靜態(tài)障礙物以及小角度交叉相遇局面下的安全避碰;周怡等[14]通過(guò)AIS 數(shù)據(jù)構(gòu)建船舶的安全領(lǐng)域模型,并設(shè)計(jì)了基于避碰失敗區(qū)域重點(diǎn)學(xué)習(xí)的DDPG 算法,實(shí)現(xiàn)了航道內(nèi)2 船之間的避碰;Zhao等[15-16]依據(jù)《避碰規(guī)則》將本船周?chē)鷦澐譃? 個(gè)區(qū)域來(lái)確定會(huì)遇局面,并結(jié)合船舶運(yùn)動(dòng)模型,利用PPO算法訓(xùn)練得到在2 船和多船場(chǎng)景下的避碰策略,但這些避碰策略都是針對(duì)特定場(chǎng)景訓(xùn)練得到的;Xie等[17]提出1 種基于異步優(yōu)勢(shì)演員-評(píng)論家算法和Q-learning算法的復(fù)合自適應(yīng)避碰決策模型,該模型考慮了安全性與經(jīng)濟(jì)性,實(shí)現(xiàn)了多船避碰,但是該方法只針對(duì)1 種避碰場(chǎng)景進(jìn)行訓(xùn)練,且避讓過(guò)程認(rèn)定目標(biāo)船保向保速;周雙林等[18]依據(jù)《避碰規(guī)則》劃分讓路船與直航船,并設(shè)計(jì)各自的獎(jiǎng)懲函數(shù),利用DQN 算法得到了不同會(huì)遇局面的避碰策略,但算法的訓(xùn)練是針對(duì)特定場(chǎng)景的,不具有普適性;Shen等[19]通過(guò)在目標(biāo)船上添加規(guī)則線,使本船行動(dòng)符合《避碰規(guī)則》的要求,并利用船舶領(lǐng)域構(gòu)建適用于船舶避碰過(guò)程的強(qiáng)化學(xué)習(xí)模型,經(jīng)過(guò)隨機(jī)場(chǎng)景的訓(xùn)練得到了多船會(huì)遇場(chǎng)景下的避碰策略;Sawada 等[20]結(jié)合船舶領(lǐng)域構(gòu)建目標(biāo)障礙區(qū)并用來(lái)評(píng)估碰撞風(fēng)險(xiǎn),利用連續(xù)動(dòng)作空間下的PPO 算法在23 種多船會(huì)遇場(chǎng)景中進(jìn)行訓(xùn)練,得到了基本符合《避碰規(guī)則》的避碰模型,同時(shí)通過(guò)對(duì)比實(shí)驗(yàn)得出了使用連續(xù)動(dòng)作空間得到的避碰策略性能更高,但是該方法在避讓過(guò)程中航向穩(wěn)定性差,路徑不平滑,避碰效果不佳;Chun 等[21]利用最小會(huì)遇距離(distance to closest point of approach,DCPA)、最小會(huì)遇時(shí)間(time to closest point of approach,TCPA)和船舶領(lǐng)域構(gòu)建船舶碰撞危險(xiǎn)度模型,結(jié)合PPO 算法對(duì)特定避碰場(chǎng)景進(jìn)行訓(xùn)練并得到符合《避碰規(guī)則》的避碰策略,但是針對(duì)特定場(chǎng)景適用的模型很難推廣到復(fù)雜的會(huì)遇局面中。

綜上,已有研究中較好地解決了遵守《避碰規(guī)則》以及避讓靜態(tài)障礙物和單一目標(biāo)船等問(wèn)題,但在處理多船避碰時(shí)還存在避讓實(shí)時(shí)性差、決策動(dòng)作震蕩嚴(yán)重、路徑不平滑、普遍假設(shè)目標(biāo)船保向保速等問(wèn)題,特別是利用深度強(qiáng)化學(xué)習(xí)算法得到的避碰模型只針對(duì)特定會(huì)遇場(chǎng)景有效,模型泛化能力較弱[21-23]。針對(duì)上述不足以及船舶避碰決策信息的高維性和動(dòng)作的連續(xù)性等特點(diǎn),結(jié)合《避碰規(guī)則》與良好船藝,利用雙延遲深度確定性策略梯度(twin delayed deep deterministic policy gradient,TD3)算法,提出1 種連續(xù)動(dòng)作空間下的船舶自主實(shí)時(shí)避碰方法。該方法在隨機(jī)場(chǎng)景下利用神經(jīng)網(wǎng)絡(luò)對(duì)船舶避碰算法進(jìn)行迭代訓(xùn)練,提高模型的泛化能力,使其適用性更廣。

1 基于強(qiáng)化學(xué)習(xí)的船舶自主避碰框架

為確保船舶在航行過(guò)程中能夠安全有效的實(shí)時(shí)避讓具有碰撞危險(xiǎn)的目標(biāo)船舶,提出基于TD3 的船舶自主避碰方法,其流程框架見(jiàn)圖1。

圖1 船舶自主避碰框架Fig.1 Ship autonomous collision avoidance framework

首先,依據(jù)本船與目標(biāo)船的實(shí)時(shí)航行信息,判斷2船之間是否存在碰撞危險(xiǎn);其次,確定船舶自主避碰問(wèn)題的強(qiáng)化學(xué)習(xí)要素,根據(jù)本船實(shí)時(shí)觀測(cè)信息設(shè)計(jì)狀態(tài)空間,依據(jù)船舶操縱特性設(shè)計(jì)動(dòng)作空間,結(jié)合非稀疏化思想,考慮船舶與環(huán)境的交互情況設(shè)計(jì)符合《避碰規(guī)則》與良好船藝的獎(jiǎng)勵(lì)函數(shù);然后,在船舶隨機(jī)會(huì)遇場(chǎng)景下,結(jié)合強(qiáng)化學(xué)習(xí)要素,構(gòu)成經(jīng)驗(yàn)數(shù)組,利用Adam 優(yōu)化算法更新深度神經(jīng)網(wǎng)絡(luò)參數(shù),訓(xùn)練得到船舶自主避碰網(wǎng)絡(luò)模型;最后,應(yīng)用得到的避碰模型,實(shí)現(xiàn)2船會(huì)遇和多船會(huì)遇場(chǎng)景下的安全避碰。

2 面向避碰決策的強(qiáng)化學(xué)習(xí)要素設(shè)計(jì)

2.1 基于強(qiáng)化學(xué)習(xí)的船舶避碰原理

強(qiáng)化學(xué)習(xí)以馬爾可夫決策過(guò)程(Markov decision process,MDP)作為基礎(chǔ)理論框架,是解決復(fù)雜序貫優(yōu)化決策問(wèn)題的有效方法[24]。與其他機(jī)器學(xué)習(xí)算法相比,強(qiáng)化學(xué)習(xí)不需要事先給定標(biāo)記過(guò)的訓(xùn)練數(shù)據(jù),而是通過(guò)智能體(agent)與環(huán)境(environment)的不斷交互試錯(cuò)來(lái)更新模型并習(xí)得策略。

船舶在航行中與環(huán)境發(fā)生交互得到連續(xù)避碰動(dòng)作的過(guò)程可以視為序列決策過(guò)程,使用馬爾可夫決策過(guò)程可以對(duì)其建模,使用強(qiáng)化學(xué)習(xí)算法能夠?qū)ζ淝蠼?。如圖2 所示,船舶作為智能體是強(qiáng)化學(xué)習(xí)的學(xué)習(xí)者和決策者,環(huán)境代表與船舶相互作用的所有事物,在時(shí)刻t,船舶觀測(cè)得到環(huán)境的狀態(tài)st,依據(jù)此狀態(tài),船舶根據(jù)習(xí)得策略執(zhí)行動(dòng)作at,此時(shí),船舶根據(jù)航行環(huán)境轉(zhuǎn)移概率p進(jìn)入下1 個(gè)狀態(tài)st+1,并獲得獎(jiǎng)勵(lì)rt+1。通過(guò)在環(huán)境中不斷嘗試采樣,不斷更新船舶避碰策略,使其獲得最大累積獎(jiǎng)勵(lì)Gt(見(jiàn)式(1)),從而學(xué)習(xí)到最優(yōu)避碰策略π*,見(jiàn)式(2)。

圖2 強(qiáng)化學(xué)習(xí)基本原理圖Fig.2 Reinforcement learning fundamentals diagram

式中:γ∈[0,1]為1個(gè)用于確定短期獎(jiǎng)勵(lì)優(yōu)先級(jí)的折扣因子,對(duì)于距離當(dāng)前時(shí)間步越遠(yuǎn)的獎(jiǎng)勵(lì),其重要性越低,通過(guò)減小γ的值,即可降低遠(yuǎn)期獎(jiǎng)勵(lì)影響當(dāng)前決策程度;E表示期望。

由式(2)可見(jiàn):最優(yōu)避碰策略是指使累積獎(jiǎng)勵(lì)Gt的期望最大化的策略,累積獎(jiǎng)勵(lì)的期望一般以狀態(tài)值函數(shù)Vπ(s)和動(dòng)作值函數(shù)Qπ(s,a)表示。Vπ(s)是對(duì)未來(lái)獎(jiǎng)勵(lì)的預(yù)測(cè),表示在狀態(tài)s下,執(zhí)行動(dòng)作a會(huì)得到的未來(lái)獎(jiǎng)勵(lì)期望值,見(jiàn)式(3);Qπ(s,a)主要用來(lái)評(píng)估船舶在當(dāng)前狀態(tài)s下選擇動(dòng)作a的好壞程度,見(jiàn)式(4)。

船舶避碰決策問(wèn)題的強(qiáng)化學(xué)習(xí)基本要素主要為其在航行過(guò)程的狀態(tài),由1個(gè)狀態(tài)轉(zhuǎn)換到下1個(gè)狀態(tài)對(duì)應(yīng)的動(dòng)作及執(zhí)行動(dòng)作后與環(huán)境交互所得到的獎(jiǎng)勵(lì)。

2.2 碰撞危險(xiǎn)判斷

判定船舶在航行過(guò)程中是否存在碰撞危險(xiǎn)[2],首先設(shè)定以dc為半徑的碰撞危險(xiǎn)監(jiān)測(cè)范圍圓,避碰模型會(huì)忽略監(jiān)測(cè)范圍以外的來(lái)船,然后設(shè)定船舶之間的安全距離ds,見(jiàn)圖3。碰撞危險(xiǎn)監(jiān)測(cè)范圍半徑dc和安全距離ds可根據(jù)海況與會(huì)遇場(chǎng)景復(fù)雜程度進(jìn)行適當(dāng)調(diào)整,在寬闊水域,會(huì)遇場(chǎng)景簡(jiǎn)單等條件下更大,較大的dc與ds意味著船舶會(huì)盡早采取更大幅度的避碰行動(dòng)。

圖3 碰撞危險(xiǎn)判斷示意圖Fig.3 Collision risk judgment diagram

當(dāng)來(lái)船進(jìn)入監(jiān)測(cè)范圍時(shí),依據(jù)本船與目標(biāo)船的和速度延長(zhǎng)線是否穿越半徑為ds的圓來(lái)判斷是否具有碰撞危險(xiǎn)。如圖3 所示,在t時(shí)刻,從本船位置坐標(biāo)到半徑為ds的船舶安全距離圓繪制2條切線,βt定義為任1 條切線與相對(duì)位置矢量(即)之間的角度,見(jiàn)式(5)。

另外,當(dāng)2船之間距離小于安全距離時(shí),βt無(wú)法用式(5)計(jì)算。為此,在訓(xùn)練時(shí),為了能讓神經(jīng)網(wǎng)絡(luò)學(xué)到目標(biāo)船不應(yīng)進(jìn)入本船的安全距離范圍內(nèi)這一策略,在訓(xùn)練過(guò)程中當(dāng)本船與目標(biāo)船的距離小于安全距離時(shí)認(rèn)定為存在碰撞危險(xiǎn),設(shè)置βt=π。但是在船舶避碰實(shí)際應(yīng)用中,當(dāng)本船與目標(biāo)船的距離小于安全距離且本船已經(jīng)駛過(guò)DCPA點(diǎn)時(shí),船舶間不存在碰撞危險(xiǎn),因此在避碰算法應(yīng)用時(shí)設(shè)置βt=π/2。

圖3 中αt是相對(duì)位置矢量與相對(duì)速度矢量(即)之間的夾角。當(dāng)αt<βt時(shí),即表明與目標(biāo)船存在碰撞危險(xiǎn),船舶應(yīng)當(dāng)采取避碰行動(dòng)。具體來(lái)說(shuō),當(dāng)船舶間距離大于安全距離時(shí),若的延長(zhǎng)線穿過(guò)半徑為ds的圓則表明存在碰撞危險(xiǎn)。當(dāng)本船與目標(biāo)船的距離小于安全距離ds時(shí),在算法訓(xùn)練過(guò)程認(rèn)為存在碰撞危險(xiǎn),并采取更大幅度的避碰行動(dòng)。但在實(shí)際應(yīng)用中,還需通過(guò)判斷本船是否已經(jīng)駛過(guò)DCPA點(diǎn),即αt是否大于π 2 來(lái)確定是否存在碰撞危險(xiǎn),若大于π 2 則表明碰撞危險(xiǎn)已經(jīng)消失。

2.3 狀態(tài)空間設(shè)計(jì)

式中:di為第i個(gè)區(qū)域內(nèi)的目標(biāo)船距離;hi為第i個(gè)區(qū)域內(nèi)的目標(biāo)船是否與本船存在碰撞危險(xiǎn)。

式(6)所示的目標(biāo)船狀態(tài)信息指明了目標(biāo)船的相對(duì)位置以及2 船是否存在碰撞危險(xiǎn)。但是,為了使避碰模型做出合理決策還需要2船的相對(duì)航向和相對(duì)速度信息,因此,將連續(xù)4個(gè)時(shí)刻的目標(biāo)船狀態(tài)信息進(jìn)行堆疊,構(gòu)成自主避碰模型的可觀測(cè)目標(biāo)船信息狀態(tài)空間,見(jiàn)式(7)。

另外目標(biāo)船狀態(tài)信息中的2船距離信息在輸入到避碰算法時(shí)標(biāo)準(zhǔn)化到[-1,1],標(biāo)準(zhǔn)化方式見(jiàn)式(9)。

對(duì)距離信息進(jìn)行標(biāo)準(zhǔn)化,一方面能夠使神經(jīng)網(wǎng)絡(luò)訓(xùn)練速度加快,另一方面方便在避碰算法實(shí)際應(yīng)用時(shí)可以根據(jù)航行條件與會(huì)遇場(chǎng)景復(fù)雜程度隨時(shí)調(diào)整碰撞危險(xiǎn)監(jiān)測(cè)范圍圓半徑dc與安全距離ds的大小。

2.4 動(dòng)作空間設(shè)計(jì)

在船舶航行過(guò)程中遇到有碰撞危險(xiǎn)的來(lái)船時(shí),按照船員習(xí)慣做法通常采取改變航向的方式而不是改變航速大小以避免發(fā)生碰撞,并且頻繁改變航速大小容易對(duì)主機(jī)造成損害。為保證船舶自主避碰算法給出的決策動(dòng)作,具有良好的可操縱性,選擇航向改變量作為動(dòng)作空間,即at=Δψ。由于采用的TD3算法適用于連續(xù)動(dòng)作空間,因此將本船避讓操作所采取的航向改變量設(shè)計(jì)為:Δψ∈[-ψmax,ψmax] ,左轉(zhuǎn)為負(fù),右轉(zhuǎn)為正,ψmax為單次決策可執(zhí)行的最大轉(zhuǎn)向角,不同船舶可根據(jù)自身操縱性進(jìn)行設(shè)置。

避讓船舶會(huì)依據(jù)可觀測(cè)的狀態(tài)信息做出避碰決策,當(dāng)本船監(jiān)測(cè)范圍內(nèi)存在具有碰撞危險(xiǎn)的船舶時(shí)進(jìn)行轉(zhuǎn)向避讓?zhuān)敝榴傔^(guò)讓清后繼續(xù)朝目標(biāo)點(diǎn)航行。

2.5 獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì)

船舶自主避碰算法的收斂性依賴(lài)于合理的獎(jiǎng)勵(lì)函數(shù)設(shè)置,是船舶能夠?qū)W習(xí)到安全有效的避碰策略的依據(jù)。結(jié)合非稀疏獎(jiǎng)勵(lì)思想設(shè)計(jì)獎(jiǎng)勵(lì)函數(shù),使本船在無(wú)碰撞危險(xiǎn)時(shí)朝向目標(biāo)點(diǎn)航行,當(dāng)本船與來(lái)船存在碰撞危險(xiǎn)時(shí)采取符合《避碰規(guī)則》要求與良好船藝的避碰行動(dòng),進(jìn)行安全有效的避讓?zhuān)敝榴傔^(guò)讓清。

1)駛向目標(biāo)點(diǎn)獎(jiǎng)勵(lì)。當(dāng)本船碰撞危險(xiǎn)監(jiān)測(cè)范圍內(nèi)不存在需要避讓的船舶時(shí),首要任務(wù)是成功到達(dá)目標(biāo)點(diǎn)。為應(yīng)對(duì)稀疏獎(jiǎng)勵(lì)問(wèn)題,采用基于勢(shì)能的塑形獎(jiǎng)勵(lì),以本船到達(dá)目標(biāo)點(diǎn)為虹吸狀態(tài),當(dāng)接近目標(biāo)點(diǎn)時(shí)給予獎(jiǎng)勵(lì),遠(yuǎn)離時(shí)給予懲罰,并且在到達(dá)目標(biāo)點(diǎn)時(shí)給予1個(gè)較大的獎(jiǎng)勵(lì),獎(jiǎng)勵(lì)函數(shù)見(jiàn)式(10)。

2)航向保持獎(jiǎng)勵(lì)。為了使本船在無(wú)碰撞危險(xiǎn)時(shí)能夠快速平滑的到達(dá)目標(biāo)點(diǎn),不發(fā)生偏航,以及存在碰撞危險(xiǎn)時(shí)在避讓完成后能夠快速恢復(fù)航向,設(shè)計(jì)了航向保持獎(jiǎng)勵(lì)函數(shù)。當(dāng)本船偏離航向時(shí),對(duì)其進(jìn)行懲罰,特別是目標(biāo)點(diǎn)的相對(duì)方位角絕對(duì)值超過(guò)半個(gè)羅經(jīng)點(diǎn)(π 32)時(shí),持續(xù)得到值為rcourse的懲罰。航向保持獎(jiǎng)勵(lì)函數(shù)見(jiàn)式(11)。

3)碰撞危險(xiǎn)獎(jiǎng)勵(lì)。當(dāng)本船在航行中依據(jù)狀態(tài)信息判定與來(lái)船存在碰撞危險(xiǎn)時(shí),本船應(yīng)采取避讓行動(dòng),保持與目標(biāo)船的距離始終大于安全距離ds。為此設(shè)置為當(dāng)目標(biāo)船進(jìn)入碰撞危險(xiǎn)監(jiān)測(cè)范圍圓后,判斷2 船之間是否存在碰撞危險(xiǎn),若存在碰撞危險(xiǎn)給予懲罰,若本船與目標(biāo)船發(fā)生碰撞,則獲得1個(gè)較大的懲罰,獎(jiǎng)勵(lì)函數(shù)見(jiàn)式(12)。

4)規(guī)則量化獎(jiǎng)勵(lì)。當(dāng)船舶間存在碰撞危險(xiǎn)時(shí),《避碰規(guī)則》明確要求了讓路船與直航船應(yīng)當(dāng)采取的行動(dòng)。由于本文主要研究開(kāi)闊水域避碰過(guò)程中的讓路行動(dòng),因此簡(jiǎn)要分析《避碰規(guī)則》第13~16 條中被要求采取行動(dòng)船舶的避碰策略(見(jiàn)圖4),船舶的當(dāng)前航向用實(shí)線箭頭表示,虛線箭頭則表示讓路船為避讓來(lái)船可能采取的轉(zhuǎn)向方向。在對(duì)遇局面下,構(gòu)成碰撞危險(xiǎn)的2 船各應(yīng)向右轉(zhuǎn)向,各從他船的左舷駛過(guò);在交叉相遇局面下,《避碰規(guī)則》明確指出如果當(dāng)時(shí)環(huán)境條件許可,讓路船應(yīng)避免橫越他船的前方;在追越局面下,《避碰規(guī)則》沒(méi)有明確讓路船的具體行動(dòng),但是結(jié)合良好船藝的要求,當(dāng)與被追越船航向會(huì)聚時(shí),追越船應(yīng)適當(dāng)?shù)馗淖兒较颍瑥谋蛔吩酱拇厚傔^(guò),當(dāng)船舶間沒(méi)有發(fā)生航向會(huì)聚時(shí),可以根據(jù)本船的計(jì)劃航線采取行動(dòng),如果被追越船在計(jì)劃航線左側(cè)時(shí),追越船右轉(zhuǎn)進(jìn)行避讓?zhuān)粗畡t左轉(zhuǎn)進(jìn)行避讓。

圖4 船舶會(huì)遇避碰策略Fig.4 Collision avoidance strategy under the situation of ship encounter

通過(guò)分析3 種會(huì)遇局面下《避碰規(guī)則》的要求,結(jié)合駕駛員在避碰時(shí)的習(xí)慣做法,在開(kāi)闊水域?qū)τ龊徒徊婢置嫦逻M(jìn)行右轉(zhuǎn)避讓來(lái)避免形成緊迫局面是有效的,而在追越局面下追越船要依靠2 船的航向是否會(huì)聚來(lái)采取左轉(zhuǎn)或右轉(zhuǎn)的避讓行動(dòng)。考慮到設(shè)置獎(jiǎng)勵(lì)函數(shù)時(shí)難以對(duì)《避碰規(guī)則》詳細(xì)量化,因此將右轉(zhuǎn)避讓策略作為神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)目標(biāo),此設(shè)置可以保證在開(kāi)闊水域滿(mǎn)足對(duì)遇、交叉相遇和右轉(zhuǎn)追越的場(chǎng)景。在左轉(zhuǎn)追越場(chǎng)景中,通過(guò)取目標(biāo)船和目標(biāo)點(diǎn)相對(duì)于本船方位角的相反數(shù),輸出避讓動(dòng)作的負(fù)值,實(shí)現(xiàn)船舶的左轉(zhuǎn)避讓。

因此,對(duì)構(gòu)成碰撞危險(xiǎn)的目標(biāo)船進(jìn)行右轉(zhuǎn)避讓時(shí)給予獎(jiǎng)勵(lì),相反則給予懲罰,同時(shí)設(shè)置規(guī)則量化獎(jiǎng)勵(lì)值遠(yuǎn)小于碰撞危險(xiǎn)獎(jiǎng)勵(lì)值,保證本船以安全避讓來(lái)船為最終目的,獎(jiǎng)勵(lì)函數(shù)見(jiàn)式(13)。

式中:λrule為調(diào)整獎(jiǎng)勵(lì)大小的系數(shù);ψmax為單次避讓決策的最大轉(zhuǎn)向角度;訓(xùn)練時(shí)設(shè)置λrule=2。

綜上所述,為使船舶安全有效的避讓目標(biāo)船并到達(dá)目標(biāo)點(diǎn),設(shè)置了4 個(gè)獎(jiǎng)勵(lì)函數(shù),其中Rgoal與Rcourse使本船快速平滑的向目標(biāo)點(diǎn)航行,Rdanger和Rrule使本船周?chē)嬖谄渌安⒂信鲎参kU(xiǎn)時(shí)能夠快速有效的采取符合《避碰規(guī)則》的安全避讓行動(dòng)。由于該避碰模型適用于多船避碰,需要考慮在碰撞危險(xiǎn)監(jiān)測(cè)范圍內(nèi)避讓多個(gè)目標(biāo)船獲得的獎(jiǎng)勵(lì),因此總的獎(jiǎng)勵(lì)函數(shù)設(shè)置見(jiàn)式(14)。

式中:n為處于本船碰撞危險(xiǎn)監(jiān)測(cè)范圍內(nèi)的目標(biāo)船數(shù)量;Rdangers為第s艘目標(biāo)船產(chǎn)生的碰撞危險(xiǎn)獎(jiǎng)勵(lì);Rrules為第s艘目標(biāo)船產(chǎn)生的規(guī)則量化獎(jiǎng)勵(lì)。

3 基于TD3算法的船舶避碰決策

基于策略的深度強(qiáng)化學(xué)習(xí)算法可以分為隨機(jī)性策略和確定性策略。隨機(jī)性策略通過(guò)概率分布來(lái)表示,即在狀態(tài)st下以一定的概率選擇動(dòng)作at;而確定性策略根據(jù)狀態(tài)st直接選擇動(dòng)作at,這是1 個(gè)確定性過(guò)程,即中間沒(méi)有出現(xiàn)概率,不需要進(jìn)行選擇。因此,確定性策略深度強(qiáng)化學(xué)習(xí)算法相比于隨機(jī)性策略,可以在低采樣數(shù)據(jù)下提高計(jì)算效率。

TD3算法是1種無(wú)模型(model-free)確定性策略的深度強(qiáng)化學(xué)習(xí)算法,適用于具有連續(xù)動(dòng)作空間的決策任務(wù)。TD3主要針對(duì)DDPG算法對(duì)Q值的過(guò)高估計(jì)等問(wèn)題進(jìn)行改進(jìn),使其訓(xùn)練更穩(wěn)定,性能更強(qiáng)。目前,TD3 已經(jīng)成為支持高維空間連續(xù)型控制任務(wù)的高性能算法,相比DQN、DDPG、PPO、SAC等算法擁有更好的決策效果[25-26]。

因此,為了保障船舶避碰決策的高效性,針對(duì)船舶避碰決策狀態(tài)空間的高維性和動(dòng)作的連續(xù)性等特點(diǎn),選取TD3 算法構(gòu)建基于深度強(qiáng)化學(xué)習(xí)的船舶避碰決策模型。

3.1 算法網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)

TD3 算法使用了Actor-Critic 結(jié)構(gòu),因此避碰模型中包括策略網(wǎng)絡(luò)與價(jià)值網(wǎng)絡(luò),策略網(wǎng)絡(luò)依據(jù)狀態(tài)信息輸出避碰動(dòng)作,價(jià)值網(wǎng)絡(luò)輸出Q值來(lái)評(píng)判動(dòng)作的好壞程度,算法同時(shí)為策略網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò)分別搭建了各自的目標(biāo)網(wǎng)絡(luò),克服訓(xùn)練的不穩(wěn)定性。

結(jié)合船舶自主避碰模型的狀態(tài)空間st=[]。其中:為連續(xù)4個(gè)時(shí)刻觀測(cè)到的目標(biāo)船信息,設(shè)計(jì)了含有4個(gè)隱藏層的策略網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)見(jiàn)圖5。使用前2 層LSTM 網(wǎng)絡(luò)處理連續(xù)4 個(gè)時(shí)刻的目標(biāo)船信息,其中第1 層為一維卷積LSTM 網(wǎng)絡(luò),卷積運(yùn)算包含128 個(gè)通道,卷積核大小為2,步長(zhǎng)為1;第2 層LSTM網(wǎng)絡(luò)包含128個(gè)神經(jīng)元;經(jīng)過(guò)LSTM網(wǎng)絡(luò)處理后與目標(biāo)點(diǎn)信息合并輸入到2 層的全連接網(wǎng)絡(luò),每個(gè)全連接層包含256 個(gè)神經(jīng)元,并采用ReLU非線性激活函數(shù)。輸出層是包含1個(gè)神經(jīng)元的全連接層,使用雙曲正切函數(shù)作為激活函數(shù),將輸出標(biāo)準(zhǔn)化到[-1,1]之間,與ψmax相乘后輸出動(dòng)作at。價(jià)值網(wǎng)絡(luò)采用類(lèi)似的網(wǎng)絡(luò)結(jié)構(gòu),與策略網(wǎng)絡(luò)的主要區(qū)別在于第1個(gè)全連接層的輸入要增加當(dāng)前時(shí)刻的動(dòng)作at,并且輸出層不使用任何激活函數(shù),直接得到Q值。價(jià)值網(wǎng)絡(luò)和策略網(wǎng)絡(luò)均采用Adam優(yōu)化算法訓(xùn)練。

圖5 船舶自主避碰策略網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 Actor network structure of ship autonomous collision avoidance

3.2 算法網(wǎng)絡(luò)更新

為了緩解價(jià)值網(wǎng)絡(luò)對(duì)Q值的過(guò)高估計(jì),TD3 算法同時(shí)訓(xùn)練2 個(gè)完全相同的價(jià)值網(wǎng)絡(luò),每次計(jì)算目標(biāo)Q值時(shí)總是選擇其中較小的值,降低高估誤差。同時(shí),為了降低目標(biāo)Q值計(jì)算的方差,并緩解確定性策略對(duì)動(dòng)作值函數(shù)局部“窄峰”的過(guò)擬合傾向,在船舶觀測(cè)狀態(tài)sj+1下目標(biāo)策略輸出的基礎(chǔ)上添加1個(gè)隨機(jī)高斯噪聲η?,這種方式被稱(chēng)為目標(biāo)策略平滑。綜上,目標(biāo)Q值與價(jià)值網(wǎng)絡(luò)的損失函數(shù)見(jiàn)式(15)~(16),其中損失函數(shù)使用了平滑平均絕對(duì)(huber)誤差,見(jiàn)式(17)。

式中:yj為第j個(gè)訓(xùn)練樣本的目標(biāo)Q值;lQ為價(jià)值網(wǎng)絡(luò)的損失函數(shù);rj第j個(gè)訓(xùn)練樣本當(dāng)前時(shí)刻的獎(jiǎng)勵(lì)值;sj為第j個(gè)訓(xùn)練樣本當(dāng)前時(shí)刻的狀態(tài)信息;sj+1為第j個(gè)訓(xùn)練樣本下1個(gè)時(shí)刻的狀態(tài)信息;aj為第j個(gè)訓(xùn)練樣本當(dāng)前時(shí)刻船舶采取的避碰動(dòng)作;c為策略平滑噪聲的截?cái)噙吔缰?;θi為第i個(gè)價(jià)值網(wǎng)絡(luò)的參數(shù);θ′i與?′分別為第i個(gè)目標(biāo)價(jià)值網(wǎng)絡(luò)參數(shù)和目標(biāo)策略網(wǎng)絡(luò)參數(shù)。

此外,為了減少目標(biāo)值計(jì)算的方差對(duì)策略學(xué)習(xí)的負(fù)面影響,算法降低了策略網(wǎng)絡(luò)參數(shù)?與目標(biāo)網(wǎng)絡(luò)參數(shù)?′和θ′i的更新頻率,以保證價(jià)值網(wǎng)絡(luò)經(jīng)過(guò)充分學(xué)習(xí)降低方差之后再影響策略網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò),即每更新m次價(jià)值網(wǎng)絡(luò)再更新1 次策略網(wǎng)絡(luò),梯度??J默認(rèn)來(lái)自?xún)r(jià)值網(wǎng)絡(luò)中的Qθ1,見(jiàn)式(18),并采用軟更新方式更新目標(biāo)網(wǎng)絡(luò),見(jiàn)式(19)。

式中:ω為系數(shù),用來(lái)控制目標(biāo)網(wǎng)絡(luò)參數(shù)的更新速度。

3.3 算法流程

船舶自主避碰策略的學(xué)習(xí)過(guò)程是TD3算法中深度神經(jīng)網(wǎng)絡(luò)的收斂過(guò)程,其中神經(jīng)網(wǎng)絡(luò)的輸入為本船在航行過(guò)程中觀測(cè)到的實(shí)時(shí)狀態(tài)信息,策略網(wǎng)絡(luò)依據(jù)價(jià)值網(wǎng)絡(luò)對(duì)策略好壞的評(píng)判來(lái)更新網(wǎng)絡(luò)參數(shù),價(jià)值網(wǎng)絡(luò)通過(guò)最小化誤差損失函數(shù)來(lái)更新網(wǎng)絡(luò)參數(shù)。另外TD3 算法使用了經(jīng)驗(yàn)回放技術(shù)去除樣本間的相關(guān)性和依賴(lài)性,同時(shí)通過(guò)隨機(jī)場(chǎng)景對(duì)模型進(jìn)行訓(xùn)練以增強(qiáng)泛化能力,船舶自主避碰算法流程見(jiàn)圖6。

圖6 船舶自主避碰算法訓(xùn)練流程Fig.6 Training process of ship autonomous collision avoidance algorithm

4 船舶自主避碰算法訓(xùn)練與對(duì)比仿真驗(yàn)證

為了驗(yàn)證避碰算法的效果,首先介紹船舶避碰訓(xùn)練環(huán)境搭建與模型參數(shù)設(shè)置;然后將訓(xùn)練好的船舶避碰模型應(yīng)用于常見(jiàn)的2 船會(huì)遇場(chǎng)景中,分析船舶的避碰效果;最后船舶在多船會(huì)遇場(chǎng)景下進(jìn)行避碰實(shí)驗(yàn),展現(xiàn)模型的良好性能。

4.1 實(shí)驗(yàn)設(shè)置

基于深度強(qiáng)化學(xué)習(xí)環(huán)境OpenAI Gym,在Windows 10 平臺(tái)上搭建船舶自主避碰決策仿真實(shí)驗(yàn)環(huán)境,硬件環(huán)境和軟件環(huán)境具體信息見(jiàn)表1。

表1 實(shí)驗(yàn)環(huán)境信息Tab.1 Experimental environment conditions

針對(duì)船舶自主避碰的強(qiáng)化學(xué)習(xí)任務(wù),設(shè)計(jì)了1個(gè)12 n mile×12 n mile的正方形作為航行訓(xùn)練區(qū)域,設(shè)置本船起點(diǎn)(0,0),目標(biāo)點(diǎn)(10,10),航速12 n mile/h,dc=4 n mile,ds=4/3 n mile,本船膨化圓半徑τ=0.25 n mile,依據(jù)船舶操縱特性,設(shè)置最大轉(zhuǎn)向角ψmax=5°,決策時(shí)間間隔為15 s[2]。為了讓訓(xùn)練得到的船舶避碰算法普遍適用于各種會(huì)遇場(chǎng)景,在訓(xùn)練區(qū)域中隨機(jī)生成x艘船舶(x∈[1,7]),并且目標(biāo)船的位置、航向和航速均隨機(jī)設(shè)置,模擬船舶遇到各種會(huì)遇場(chǎng)景,并對(duì)避碰失敗場(chǎng)景著重訓(xùn)練。當(dāng)本船到達(dá)目標(biāo)點(diǎn)或者發(fā)生碰撞則對(duì)場(chǎng)景重置并開(kāi)始下1回合訓(xùn)練。

為了降低模型的訓(xùn)練難度,實(shí)驗(yàn)中采用跳幀(frame skipping)操作,即相鄰2 次決策之間的f幀都重復(fù)上1 次的動(dòng)作,綜合權(quán)衡避碰性能與訓(xùn)練難度,確定f=2。同時(shí),為了在訓(xùn)練時(shí)提高模型的探索能力,采用輸出動(dòng)作加入高斯噪聲η~N(0,σ)的方法來(lái)實(shí)現(xiàn),并在正式訓(xùn)練之前讓本船在環(huán)境中進(jìn)行隨機(jī)探索。為了使避碰算法能夠快速平穩(wěn)的收斂,在訓(xùn)練時(shí)設(shè)置批量采樣大小和更新次數(shù)隨著迭代次數(shù)增加而增大。TD3算法的相關(guān)訓(xùn)練參數(shù)設(shè)置見(jiàn)表2。

表2 船舶避碰算法訓(xùn)練參數(shù)Tab.2 Training parameters of ship collision avoidance algorithm

基于上述實(shí)驗(yàn)環(huán)境對(duì)船舶自主避碰算法進(jìn)行了150 萬(wàn)次迭代訓(xùn)練,結(jié)果見(jiàn)圖7,累積獎(jiǎng)勵(lì)隨著算法不斷迭代訓(xùn)練慢慢增大,在迭代122 萬(wàn)次后趨于平穩(wěn),此時(shí)累積獎(jiǎng)勵(lì)值大小在91.867上下波動(dòng),波動(dòng)范圍在[-16.293,18.169]之間,收斂效果較好。

圖7 累積獎(jiǎng)勵(lì)變化曲線Fig.7 Total reward curve

4.2 2船避讓對(duì)比仿真驗(yàn)證

為驗(yàn)證提出的船舶自主避碰算法能按照《避碰規(guī)則》要求和良好船藝在2 船會(huì)遇局面下安全有效的避讓目標(biāo)船,分別對(duì)《避碰規(guī)則》中定義的3 種會(huì)遇局面進(jìn)行仿真驗(yàn)證,并與改進(jìn)人工勢(shì)場(chǎng)[2](artificial potential field,APF)避碰算法進(jìn)行比較,均設(shè)置本船(own ship,OS)起點(diǎn)坐標(biāo)(0,0),目標(biāo)點(diǎn)(goal)坐標(biāo)(10,10),船速12 n mile/h,航向45°,每次最大轉(zhuǎn)向角度ψmax=5°,船舶間安全距離ds=2 n mile。特別的,改進(jìn)APF 算法中的參數(shù)設(shè)置為Ros=0.5 n mile,Rts=0.5 n mile,dsafe=1 n mile,這樣設(shè)置可以保證2種避碰算法的安全距離都為2 n mile,其他參數(shù)均采用文獻(xiàn)[2]的原始設(shè)置。

1)追越局面。追越局面下設(shè)置目標(biāo)船(target ship,TS)起始位置(3.2,3.4),航速5 n mile/h,航向45°,在2種避碰算法中,均設(shè)置本船的碰撞危險(xiǎn)監(jiān)測(cè)范圍半徑dc=4 n mile。由2船相對(duì)位置可知,目標(biāo)船位于本船船首方向,且在本船與目標(biāo)點(diǎn)連線的左側(cè),舷角-1.736°,2船航向不發(fā)生會(huì)聚,結(jié)合《避碰規(guī)則》要求與良好船藝,本船進(jìn)行右轉(zhuǎn)避讓。2種避碰算法仿真實(shí)驗(yàn)的船舶航行軌跡見(jiàn)圖8,本船避碰過(guò)程中航向變化量見(jiàn)圖9,圖10繪制了2船距離隨時(shí)間的變化曲線。

圖8 追越局面船舶軌跡圖Fig.8 Ship trajectory diagram of overtaking situation

圖9 追越局面本船航向變化曲線Fig.9 Course change curve of own ship in overtaking situation

圖10 追越局面船舶間距離變化曲線Fig.10 Curve of distance between ships in overtaking situation

由追越局面仿真結(jié)果可知,在t=360 s,距離目標(biāo)船3.969 n mile時(shí),本船監(jiān)測(cè)到與來(lái)船存在碰撞危險(xiǎn),并按照《避碰規(guī)則》要求和船員良好船藝迅速右轉(zhuǎn)40°避讓來(lái)船;隨后為避免過(guò)快恢復(fù)航向而與目標(biāo)船再次構(gòu)成碰撞危險(xiǎn),本船開(kāi)始緩慢向左轉(zhuǎn)向,并在t=2 700 s,航向恢復(fù)到朝向目標(biāo)點(diǎn);在t=3 735 s,2 船之間的距離達(dá)到最小值2.022 n mile,此時(shí)本船已經(jīng)從目標(biāo)船的艉部駛過(guò);在t=4 680 s本船達(dá)到目標(biāo)點(diǎn)。

在改進(jìn)APF 避碰算法中,本船在t=345 s 發(fā)現(xiàn)目標(biāo)船,并迅速右轉(zhuǎn)15°,之后本船航向在56°~61°之間震蕩,從t=795 s開(kāi)始本船航向在57°~62°之間震蕩,在120 s之后,航向又在60°~65°之間震蕩;在t=1 935 s,本船開(kāi)始恢復(fù)航向;在t=2 760 s,本船與目標(biāo)船達(dá)到最近距離1.861 n mile,目標(biāo)船進(jìn)入船舶安全距離圓內(nèi),因此本船迅速右轉(zhuǎn)16°使目標(biāo)船駛出安全距離范圍,最后恢復(fù)航向并到達(dá)目標(biāo)點(diǎn)。

同時(shí),為了驗(yàn)證訓(xùn)練得到的避碰模型對(duì)于左轉(zhuǎn)場(chǎng)景下的適用性,設(shè)置目標(biāo)船起始位置(3.6,3.2),航速4 n mile/h,航向45°,本船dc=4 n mile。此時(shí)目標(biāo)船位于本船船首方向,舷角3.366°,在本船與目標(biāo)點(diǎn)連線的右側(cè),2 船航向未發(fā)生會(huì)聚。圖11 分別為追越局面左轉(zhuǎn)場(chǎng)景下2 種避碰算法的船舶軌跡圖、船舶間距離隨時(shí)間變化圖和本船航向變化圖。

圖11 追越局面左轉(zhuǎn)場(chǎng)景仿真結(jié)果Fig.11 Simulation results of left turn scenario in overtaking situation

在船舶避碰過(guò)程中,由于改進(jìn)APF 避碰算法的輸入并不是全局狀態(tài)信息,只在與目標(biāo)船構(gòu)成碰撞危險(xiǎn)時(shí)才會(huì)輸入來(lái)船的狀態(tài)信息并形成斥力,因此本船的航向改變量小且震蕩嚴(yán)重,而且由于目標(biāo)點(diǎn)引力與目標(biāo)船斥力的動(dòng)態(tài)變化,導(dǎo)致在引力大于斥力時(shí)容易使目標(biāo)船進(jìn)入本船的安全距離范圍。與改進(jìn)APF 算法相比,基于TD3 的船舶避碰算法在追越局面下航向改變幅度大,變化快速平穩(wěn),震蕩較小,避碰路徑更加平滑,并且在避讓過(guò)程中2 船之間的距離始終大于安全距離2 n mile。

2)對(duì)遇局面。對(duì)遇局面下設(shè)置目標(biāo)船(TS)初始位置(8.5,8.5),航速10 n mile/h,航向225°,2種避碰算法的本船dc=6 n mile。依據(jù)《避碰規(guī)則》,構(gòu)成對(duì)遇局面的2 船應(yīng)各自右轉(zhuǎn)從對(duì)方船的左舷駛過(guò),為了達(dá)到共同行動(dòng)的目的,目標(biāo)船也使用本文提出的基于TD3的避碰算法。2種避碰算法的仿真結(jié)果見(jiàn)圖12~15:圖12 為船舶不同時(shí)刻的航行軌跡圖,圖13為本船的航向變化信息,圖14為目標(biāo)船的航向變化信息,圖15為2船間距離隨時(shí)間的變化曲線。

圖12 對(duì)遇局面船舶軌跡圖Fig.12 Ship trajectory diagram of head-on situation

圖13 對(duì)遇局面本船航向變化曲線Fig.13 Course change curve of own ship in head-on situation

圖14 對(duì)遇局面目標(biāo)船航向變化曲線Fig.14 Course change curve of target ship in head-on situation

圖15 對(duì)遇局面船舶間距離變化曲線Fig.15 Curve of distance between ships in head-on situation

由仿真結(jié)果可知,在t=990 s,本船與目標(biāo)船之間的距離達(dá)到5.971 n mile,形成對(duì)遇局面,依據(jù)本文提出的避碰算法,本船迅速右轉(zhuǎn)38.5°以避讓來(lái)船,此時(shí)目標(biāo)船也向右轉(zhuǎn)向37°進(jìn)行避讓?zhuān)浑S后,本船開(kāi)始緩慢恢復(fù)航向,并在t= 1 395 s航向恢復(fù)至朝向目標(biāo)點(diǎn),135 s之后目標(biāo)船航向恢復(fù);在t= 2 160 s本船與目標(biāo)船左舷對(duì)左舷以最小距離2.345 n mile 安全通過(guò);在t= 4 365 s 本船到達(dá)目標(biāo)點(diǎn),整個(gè)避讓過(guò)程中本船采取的行動(dòng)安全有效,2船之間距離始終大于2 n mile。

由改進(jìn)APF 避碰算法的船舶避碰仿真結(jié)果可知,本船在t=990 s發(fā)現(xiàn)來(lái)船并右轉(zhuǎn)10.8°,之后本船航向又減少至49°附近;從t=1 275 s開(kāi)始,本船航向邊震蕩邊增大,并在585 s后達(dá)到最大值80°,隨后航向開(kāi)始恢復(fù);在t=2 055 s,本船與目標(biāo)船的距離達(dá)到最小值1.871 n mile,105 s 后本船航向突然增加30°,產(chǎn)生1個(gè)較大的波動(dòng),波動(dòng)過(guò)后本船朝向目標(biāo)點(diǎn)航行,并于t=4 245 s到達(dá)目標(biāo)點(diǎn)。

由對(duì)比結(jié)果可知,改進(jìn)APF 避碰算法在對(duì)遇局面下比本文算法提前到達(dá)目標(biāo)點(diǎn),但是船舶間不能滿(mǎn)足設(shè)定的安全距離,且航向變化幅度小,由于在判定目標(biāo)船無(wú)危險(xiǎn)后斥力消失而導(dǎo)致本船過(guò)快恢復(fù)航向又構(gòu)成危險(xiǎn)的情況,使本船航向震蕩較多。相反,本文提出的避碰算法在對(duì)遇局面下航向變化幅度大且平穩(wěn),并滿(mǎn)足安全距離要求。

3)交叉相遇局面。交叉相遇局面下設(shè)置目標(biāo)船(TS)初始位置(9,0),航速12 n mile/h,航向315°,本船dc=6 n mile。2種避碰算法仿真的船舶航行軌跡見(jiàn)圖16,圖17為本船航向隨時(shí)間的變化曲線,2船距離的變化曲線見(jiàn)圖18。

圖16 交叉相遇局面船舶軌跡圖Fig.16 Ship trajectory diagram of crossing situation

圖17 交叉相遇局面本船航向變化曲線Fig.17 Course change curve of own ship in crossing situation

圖18 交叉相遇局面船舶間距離變化曲線Fig.18 Curve of distance between ships in crossing situation

由TD3 避碰算法的仿真結(jié)果可知,本船在t=720 s 發(fā)現(xiàn)與來(lái)船形成交叉相遇局面,2 船相距5.817 n mile,本船作為讓路船在《避碰規(guī)則》的約束下迅速向右轉(zhuǎn)向55°,在t=990 s,本船開(kāi)始緩慢恢復(fù)航向,于t= 1 620 s,2 船間距離達(dá)到最小值2.237 n mile;在t=1 980 s,本船航向恢復(fù)到朝向目標(biāo)點(diǎn),之后本船從目標(biāo)船的艉部駛過(guò),實(shí)現(xiàn)對(duì)來(lái)船的安全避讓?zhuān)辉趖=4 590 s,本船到達(dá)目標(biāo)點(diǎn),整個(gè)避讓過(guò)程2船間的距離始終大于安全距離2 n mile。

由改進(jìn)APF 避碰算法的仿真結(jié)果可知,本船在t=645 s發(fā)現(xiàn)來(lái)船,此時(shí)2船相距5.959 n mile,30 s后本船以相對(duì)較慢的速度向右轉(zhuǎn)向58°,轉(zhuǎn)向過(guò)程中震蕩嚴(yán)重;在t= 1 560 s,2 船之間距離達(dá)到最小值1.999 n mile,隨后本船開(kāi)始恢復(fù)航向;在t=4 500 s,本船到達(dá)目標(biāo)點(diǎn)。

在交叉相遇局面下,改進(jìn)APF 避碰算法比追越和對(duì)遇局面效果好,能夠大幅度的避讓來(lái)船,但是航向變化速度相比本文算法慢,且震蕩情況依然存在。本文避碰算法避讓行動(dòng)迅速、改向幅度大,路徑相對(duì)更加平滑。

綜上,通過(guò)在船舶追越、對(duì)遇和交叉相遇局面下的避碰仿真實(shí)驗(yàn)結(jié)果可以得出,提出的避碰算法能夠使本船在與目標(biāo)船舶構(gòu)成碰撞危險(xiǎn)時(shí)做出安全有效的避碰決策。由于本文避碰算法的輸入為全局的狀態(tài)信息,即使與目標(biāo)船不存在碰撞危險(xiǎn)時(shí)也會(huì)關(guān)注來(lái)船的實(shí)時(shí)動(dòng)態(tài),因此相比于改進(jìn)APF算法,本文算法的航向變化快速平穩(wěn),轉(zhuǎn)向幅度大,避碰路徑更加平滑,并且與目標(biāo)船的距離始終大于安全距離。

4.3 多船避讓對(duì)比仿真驗(yàn)證

在船舶實(shí)際航行過(guò)程中,會(huì)遇到與多艘船舶構(gòu)成碰撞危險(xiǎn)的局面,相比2船避讓?zhuān)啻茏尵置娓鼮閺?fù)雜。為驗(yàn)證提出的避碰算法在復(fù)雜會(huì)遇場(chǎng)景下仍具有良好性能,與改進(jìn)APF 避碰算法進(jìn)一步進(jìn)行多船避讓仿真對(duì)比實(shí)驗(yàn)。

1)多船避讓仿真實(shí)驗(yàn)。在避讓多船的仿真實(shí)驗(yàn)中,本船的初始航行參數(shù)不變。在本文算法中設(shè)置本船碰撞危險(xiǎn)監(jiān)測(cè)圓半徑dc=4 n mile,安全距離ds=4/3 n mile。在改進(jìn)APF 避碰算法中依據(jù)文獻(xiàn)[2],將本船的碰撞危險(xiǎn)檢測(cè)距離設(shè)置為6 n mile,Ros=0.5 n mile,Rts=1/3 n mile,dsafe=0.5 n mile,這樣設(shè)置可以保證2 種避碰算法的安全距離都為4 3 n mile,其他設(shè)置均來(lái)自文獻(xiàn)[2],另外2 種算法中本船每次轉(zhuǎn)向的最大幅度均設(shè)置為5°。目標(biāo)船的初始設(shè)置見(jiàn)表3,為了驗(yàn)證2 種算法的可靠性,將引入目標(biāo)船的不協(xié)調(diào)行動(dòng),具體為:在t=1 035 s,目標(biāo)船左轉(zhuǎn)30°干擾本船的行動(dòng)。

表3 多船會(huì)遇場(chǎng)景目標(biāo)船初始設(shè)置Tab.3 Initial setting of target ship in multi-ship encounter scenario

多船會(huì)遇仿真實(shí)驗(yàn)中船舶航行軌跡見(jiàn)圖19,圖20 為航行過(guò)程中本船航向的變化曲線,2 種算法下本船與目標(biāo)船距離隨時(shí)間的變化曲線見(jiàn)圖21~22。

圖19 多船會(huì)遇場(chǎng)景船舶軌跡圖Fig.19 Ship trajectory diagram of multi-ships encounter scenario

圖20 多船會(huì)遇場(chǎng)景本船航向變化曲線Fig.20 Course change curve of own ship in multi-ships encounter scenario

圖21 TD3避碰算法下本船與目標(biāo)船距離變化曲線Fig.21 Curve of distance between own ship and target ships under TD3 collision avoidance algorithm

在圖19(a)中,最初本船朝向目標(biāo)點(diǎn)航行,在t=675 s,本船發(fā)現(xiàn)與目標(biāo)船1相距3.816 n mile,形成交叉相遇局面,本船依據(jù)《避碰規(guī)則》迅速向右轉(zhuǎn)向51°,避免橫越目標(biāo)船1 的前方;在t=990 s,本船發(fā)現(xiàn)目標(biāo)船2 且相距3.925 n mile,經(jīng)過(guò)計(jì)算,2 船之間無(wú)碰撞危險(xiǎn),本船未做出反應(yīng)。

圖19(b)中,在t=1 035 s,目標(biāo)船1 與目標(biāo)船2突然左轉(zhuǎn)30°,這導(dǎo)致本船與2艘目標(biāo)船之間重新構(gòu)成碰撞危險(xiǎn),本船迅速右轉(zhuǎn)33°同時(shí)避讓2船;在t=1 215 s,本船與目標(biāo)船1達(dá)到最近距離1.355 n mile,駛過(guò)讓清目標(biāo)船1。

圖19(c)中,從t=1 755 s開(kāi)始,本船逐漸恢復(fù)航向;在t = 2 015 s,本船與目標(biāo)船2 達(dá)到最近距離1.637 n mile,駛過(guò)讓清目標(biāo)船2,180 s后本船航向恢復(fù)至朝向目標(biāo)點(diǎn);在t=2 340 s本船發(fā)現(xiàn)目標(biāo)船3,距離達(dá)到3.906 n mile,由于目標(biāo)船3 未按照《避碰規(guī)則》進(jìn)行右轉(zhuǎn)避讓?zhuān)敬杆儆肄D(zhuǎn)44°以避免緊迫局面。

在圖19(d)中,本船與目標(biāo)船舶3 在t=3 420 s達(dá)到最小距離1.376 mile;180 s 后,目標(biāo)船4 與本船距離達(dá)到3.953 n mile 且未進(jìn)行避讓?zhuān)敬肄D(zhuǎn)35°以避免緊迫局面發(fā)生;隨后本船開(kāi)始恢復(fù)航向,并在t=5 670 s到達(dá)目標(biāo)點(diǎn)。

由改進(jìn)APF 避碰算法的仿真結(jié)果可知,本船在與目標(biāo)船1 相距5.939 n mile 時(shí),開(kāi)始緩慢右轉(zhuǎn)進(jìn)行避讓?zhuān)⒃趖=645 s航向發(fā)生震蕩,此時(shí)本船與目標(biāo)船2的距離達(dá)到5.973 n mile,但并不存在碰撞危險(xiǎn);在t=1 035 s,由于目標(biāo)船1 和目標(biāo)船2 的不協(xié)調(diào)行動(dòng),本船繼續(xù)右轉(zhuǎn)40°避讓2船,隨后開(kāi)始恢復(fù)航向,并在t= 1 245 s 與目標(biāo)船1 達(dá)到最小距離1.209 n mile,570 s后與目標(biāo)船2達(dá)到最小距離1.045 n mile;在航向恢復(fù)過(guò)程中,又與目標(biāo)船3構(gòu)成碰撞危險(xiǎn),航向緩慢變化至64°,并在t=3 045 s 與目標(biāo)船3 達(dá)到最小距離1.131 n mile;在t=3 060 s,本船迅速右轉(zhuǎn)39°避讓目標(biāo)船4,1 305 s 后與目標(biāo)船4 達(dá)到最小距離1.186 n mile;最后在t=4 905 s本船到達(dá)目標(biāo)點(diǎn)。

由圖20可知:改進(jìn)APF算法在多船會(huì)遇場(chǎng)景下依然有航向震蕩的情況,這是由于APF 算法不能從全局去認(rèn)識(shí)避碰過(guò)程,只能依靠實(shí)時(shí)的碰撞危險(xiǎn)判斷來(lái)指導(dǎo)航向變化。由于引力與斥力的不協(xié)調(diào)動(dòng)態(tài)變化,導(dǎo)致在某些會(huì)遇局面下避碰行動(dòng)緩慢,甚至使來(lái)船不能保持在安全距離之外。相比于改進(jìn)APF避碰算法,使用本文提出的基于TD3的避碰算法,在本船避讓過(guò)程中航向變化快速平穩(wěn),波動(dòng)較小,避碰路徑光滑。由圖21可知:在整個(gè)避讓過(guò)程中,本船與各目標(biāo)船之間的距離始終保持在安全距離4 3 n mile之外,表明提出的避碰算法在多船會(huì)遇場(chǎng)景下能夠安全有效的指導(dǎo)船舶進(jìn)行避讓。

2)避碰成功率對(duì)比實(shí)驗(yàn)。為了進(jìn)一步驗(yàn)證本文提出的避碰算法的性能,在多船會(huì)遇場(chǎng)景下,對(duì)船舶避碰成功率和平均避碰路徑長(zhǎng)度這2個(gè)指標(biāo)與改進(jìn)APF避碰算法進(jìn)行比較。2種避碰算法的初始設(shè)置與多船避讓仿真實(shí)驗(yàn)一致。

在實(shí)驗(yàn)中,首先生成1 張12 n mile×12 n mile 大小的實(shí)驗(yàn)地圖,并在地圖中隨機(jī)添加多艘目標(biāo)船,目標(biāo)船初始位置的x、y坐標(biāo)均從0~12 隨機(jī)選取,為了讓實(shí)驗(yàn)更真實(shí),每生成1艘目標(biāo)船,就判斷與本船的距離是否大于5 n mile,若不是則刪除該目標(biāo)船信息并重新生成。目標(biāo)船的航向通過(guò)生成各自的目標(biāo)點(diǎn)而得到,但是目標(biāo)船不會(huì)因?yàn)榈竭_(dá)目標(biāo)點(diǎn)而停船,目標(biāo)點(diǎn)位置的x,y坐標(biāo)從0~10 隨機(jī)選取,目的是讓目標(biāo)船的航向更多的指向本船與本船目標(biāo)點(diǎn)之間區(qū)域。目標(biāo)船的航速大小在3~17 n mile/h 之間隨機(jī)生成。另外,設(shè)置本船起點(diǎn)坐標(biāo)(0,0),目標(biāo)點(diǎn)坐標(biāo)(10,10),船速12 n mile/h,航向45°。在生成完1張實(shí)驗(yàn)地圖之后,本文避碰算法與改進(jìn)APF 算法在實(shí)驗(yàn)地圖中自動(dòng)進(jìn)行避碰,設(shè)定本船與目標(biāo)船的距離小于0.25 n mile或碰撞路徑長(zhǎng)度超過(guò)30 n mile為失敗,避碰結(jié)束后保留是否成功與路徑長(zhǎng)度數(shù)據(jù)。通過(guò)此方式進(jìn)行1 000 次避碰實(shí)驗(yàn),即生成1 000 張實(shí)驗(yàn)地圖分別對(duì)2種算法進(jìn)行驗(yàn)證。

為了提高實(shí)驗(yàn)結(jié)果的可信度,在2~4,5~7,8~10 艘目標(biāo)船的情況下分別進(jìn)行3 次上述實(shí)驗(yàn)過(guò)程,總共進(jìn)行了9 000張實(shí)驗(yàn)地圖的避碰規(guī)劃,取指標(biāo)平均值并記錄,實(shí)驗(yàn)結(jié)果見(jiàn)表4。

表4 對(duì)比實(shí)驗(yàn)結(jié)果數(shù)據(jù)表Tab.4 Comparison test results data table

由表4 可見(jiàn):提出的TD3 避碰算法的船舶避碰成功率高,特別是避碰2~4 艘目標(biāo)船時(shí)成功率達(dá)到了99.233%,即使在8~10 艘目標(biāo)船的情況下,依舊有94.166%的成功率。而改進(jìn)APF 避碰算法在3 種實(shí)驗(yàn)場(chǎng)景中均比本文算法成功率低,特別是在目標(biāo)船增加到4 艘以上時(shí),改進(jìn)APF 算法的避碰性能下降嚴(yán)重。在避碰路徑對(duì)比上,本文算法的平均路徑長(zhǎng)度要比改進(jìn)APF 算法更長(zhǎng),這是由于本文避碰算法的輸入為全局的狀態(tài)信息,即使在本船沒(méi)有碰撞危險(xiǎn)時(shí),也會(huì)關(guān)注目標(biāo)船的動(dòng)態(tài),避免過(guò)快恢復(fù)航向又造成碰撞危險(xiǎn)的產(chǎn)生,所以TD3 避碰算法的路徑更加安全可靠,路徑也會(huì)更長(zhǎng)。

5 結(jié)束語(yǔ)

針對(duì)船舶自主避碰問(wèn)題,基于TD3 算法提出了1種《避碰規(guī)則》約束下的、符合良好船藝的、能自主學(xué)習(xí)適應(yīng)環(huán)境特點(diǎn)的船舶自主避碰方法。

1)提出的基于TD3 的避碰方法采用碰撞危險(xiǎn)監(jiān)測(cè)范圍內(nèi)的全局狀態(tài)信息作為輸入,保證輸入神經(jīng)網(wǎng)絡(luò)中航行信息的統(tǒng)一性和完整性,并使用連續(xù)動(dòng)作空間供算法選取避碰決策動(dòng)作,具有避碰決策航向變化快、幅度大與路徑平滑的特點(diǎn)。

2)避碰算法通過(guò)隨機(jī)場(chǎng)景訓(xùn)練并融合了LSTM網(wǎng)絡(luò)提取航行信息特征,提高了模型的泛化能力,適用于對(duì)遇、追越、交叉相遇以及多船會(huì)遇場(chǎng)景。

3)考慮《避碰規(guī)則》與良好船藝設(shè)計(jì)獎(jiǎng)勵(lì)函數(shù),實(shí)現(xiàn)了船舶安全有效的避讓目標(biāo)船。避碰算法在復(fù)雜會(huì)遇場(chǎng)景下有較高的避碰成功率。

4)在訓(xùn)練中通過(guò)跳幀、隨機(jī)探索、批量大小和迭代更新次數(shù)動(dòng)態(tài)增大等方式加快神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度,提升算法穩(wěn)定收斂的速度。

但是,在提出的避碰算法中船舶是作為單智能體進(jìn)行避碰決策的,暫未考慮船舶間實(shí)時(shí)交互的協(xié)同避讓?zhuān)窈罂舍槍?duì)多船協(xié)同避讓開(kāi)展進(jìn)一步研究;《避碰規(guī)則》的適用場(chǎng)景為開(kāi)闊水域,針對(duì)特定的受限水域應(yīng)對(duì)船舶《避碰規(guī)則》進(jìn)行改進(jìn)和修正,才可以保障模型的適用性;在后續(xù)研究中增加船舶轉(zhuǎn)向耦合變速的策略以及會(huì)遇局面的自動(dòng)識(shí)別方法可以進(jìn)一步提升模型的性能。

猜你喜歡
航向危險(xiǎn)船舶
風(fēng)浪干擾條件下艦船航向保持非線性控制系統(tǒng)
《船舶》2022 年度征訂啟事
知坐標(biāo),明航向
BOG壓縮機(jī)在小型LNG船舶上的應(yīng)用
考慮幾何限制的航向道模式設(shè)計(jì)
喝水也會(huì)有危險(xiǎn)
船舶 揚(yáng)帆奮起
船舶壓載水管理系統(tǒng)
基于干擾觀測(cè)器的船舶系統(tǒng)航向Backstepping 控制
擁擠的危險(xiǎn)(三)