劉炯炯, 劉克中, 楊 星, 熊 勇, 袁志濤, 吳曉烈
(武漢理工大學(xué) a.航運學(xué)院; b.智能交通系統(tǒng)研究中心; c.內(nèi)河航運技術(shù)湖北省重點實驗室, 武漢 430063)
隨著人工智能、大數(shù)據(jù)和船聯(lián)網(wǎng)技術(shù)的快速發(fā)展,船舶智能航行在航海上的應(yīng)用已成為海上智能交通的重要研究領(lǐng)域。[1]自動駕駛技術(shù)是船舶智能航行的核心內(nèi)容,而船舶避碰決策研究又是自動駕駛技術(shù)的重要組成部分。[2]
在船舶避碰決策研究中,多船會遇局面下的避碰決策為難點問題之一。[3]針對多船避碰決策研究,大部分研究僅考慮“本船”進行避讓操作,假設(shè)“來船”保向保速或已知運動軌跡,利用遺傳算法[4]、速度障礙[5]和粒子群優(yōu)化算法[6]等制訂船舶避碰方案;部分研究為每艘船舶規(guī)劃航行路徑,船舶只有依照生成的路徑航行才能安全通過[7],與實際海上船舶避碰決策存在較大差異。船舶分布式避碰決策過程更符合海上實際避讓,船舶根據(jù)實時會遇場景做出避讓操作,并取得一定的研究成果。LI等[8]提出一種分布式協(xié)調(diào)策略,基于船舶軌跡預(yù)測評估碰撞風(fēng)險,通過優(yōu)化策略找到最有效的避碰策略,避讓中需進行多次協(xié)調(diào)通信,但未考慮《國際海上避碰規(guī)則》(International Regulations for Preventing Collisions at Sea,COLREGs);KIM等[9-10]采用分布隨機搜索算法(Distributed Stochastic Search Algorithm,DSSA)減少通信次數(shù),縮短計算時間,研究中未融入COLREGs;ZHANG等[11]和張金奮[12]依據(jù)COLREGs建立讓路船和直航船的避讓行動模型并將其應(yīng)用于多船避讓中,但采取的避讓行動主要依據(jù)兩船避讓,未考慮船舶避讓對附近其他來船的影響。
由于COLREGs僅適用于兩船會遇場景,無法直接應(yīng)用到多船避碰中?,F(xiàn)有的多船避碰研究主要是將COLREGs融入到避讓效果評價函數(shù)中[13]和基于避讓重點船[3,14-15]確定避讓行動。將COLREGs融入到評價函數(shù)中,可能存在不完全遵守COLREGs的情況;基于重點船舶避讓,由于本船周圍存在多艘來船,可能會因采取避讓行動而形成新的碰撞危險或更緊迫的碰撞危險局面。
針對多船會遇情景,船舶需同時避讓多艘來船,避讓各船的行動由于不一致,會產(chǎn)生避讓沖突。為保證船舶安全航行,減少避讓沖突對避讓決策的影響,首先根據(jù)最近會遇距離(Distance to Closest Point of Approach,dCPA)和最近會遇時間(Time to Closest Point of Approach,tCPA)將來船分為安全航行船舶和存在碰撞危險船舶;其次,在判斷避讓方向時,根據(jù)安全航行船舶和存在碰撞危險船舶位置及相對運動參數(shù),避免避讓行動對安全船舶產(chǎn)生影響,形成新的碰撞危險;在確定避讓幅度時,選擇與所有來船在盡可能遠的距離處通過,避免形成更緊迫的碰撞危險;同時,在避讓決策過程中充分考慮多船避讓下的協(xié)調(diào)性和合理性,從而構(gòu)建基于避讓沖突消解策略的多船避碰決策模型;最后,通過蒙特卡洛思想隨機生成大量船舶初始會遇場景,并基于分布式框架對避碰決策模型的有效性進行驗證。
船舶會遇具有一定的隨機性和不確定性,特別是多船會遇場景,船舶周圍存在多艘來船,船舶航向、航速、方位和距離等參數(shù)稍有不同,根據(jù)COLREGs制訂的避讓方案存在較大差異。在多船會遇場景下,“讓路船”針對存在碰撞危險的來船采取避讓行動之后,對附近其他航行船舶造成更緊迫的碰撞危險或形成新的碰撞危險,即由于會遇船舶位置和航行參數(shù)的隨機性,“讓路船”針對不同的會遇船舶采取的避讓行動不一致,從而產(chǎn)生船舶避讓沖突。
假設(shè)在一定距離范圍內(nèi)有n(n>2)艘船舶會遇,對于會遇船舶i(i∈N),為避讓與其存在碰撞危險的船舶j(j∈N,且j≠i),采取避讓行動δij·δcij,但在采取避讓行動之后與另一艘船舶k(k∈N,且k≠i;k≠j)造成新的碰撞危險或更緊迫的碰撞危險。δij為船舶i避讓船舶j的避讓方向,左轉(zhuǎn)為-,右轉(zhuǎn)為+;δcij為船舶i避讓船舶j的避讓幅度。
近距離多船避讓場景見圖1,其中:初始時刻船舶1與船舶2和船舶4存在碰撞危險,與船舶3可在安全距離內(nèi)通過。船舶4首先向右轉(zhuǎn)向避讓船舶1,船舶1為避讓船舶2向右轉(zhuǎn)向,并與船舶3在近距離內(nèi)產(chǎn)生新的碰撞危險。在近距離內(nèi)船舶1與船舶3采取最有效的避讓行動進行避讓;由于兩船在近距離內(nèi)同時避讓,造成局面更為復(fù)雜多變。雖采取避讓行動,但局面有進一步惡化的趨勢,從而導(dǎo)致船舶間距離減小。船舶初始會遇參數(shù)和避碰方案見表1。
圖1 近距離多船避讓場景
表1 船舶初始會遇參數(shù)和避碰方案
由于多船避讓沖突帶來的影響主要為:與附近安全航行的船舶形成新的碰撞危險;與存在碰撞危險船舶的危險程度進一步加深。為減少多船避讓中存在的避讓沖突對避讓的影響,分別考慮安全航行船舶和碰撞危險船舶。對于安全航行船舶,在判斷避讓方向時,避免轉(zhuǎn)向與其形成新的碰撞危險;對于存在碰撞危險船舶,在選擇避讓幅度時,避免危險進一步增強?;诖耍纬啥啻瑫霰茏寷_突消解策略,構(gòu)建多船避碰決策模型。
2.1.1碰撞危險判斷
由于安全航行船舶和存在碰撞危險船舶需在方案制訂的不同階段進行考慮,首先應(yīng)對船舶是否存在碰撞危險進行判斷。
在t時刻,對于船舶i(i∈N),在6 n mile范圍內(nèi)存在任意船舶j(j∈N,且j≠i),同時滿足式(1)和式(2),則認為船舶i與船舶j存在碰撞危險。
dCPAij(t) (1) tCPAij(t)>0 (2) 式(1)和式(2)中:dCPAij(t)和tCPAij(t)分別為t時刻船舶i與船舶j的最近會遇距離和最近會遇時間;SDA的大小應(yīng)與船舶航行水域的環(huán)境條件、交通繁忙程度和航行船舶尺度等因素有關(guān)。 目前,關(guān)于SDA的研究主要在數(shù)學(xué)模型確定和船舶領(lǐng)域。李麗娜等[16]依據(jù)船長、專家和駕駛員對COLREGs的理解以及操船經(jīng)驗,結(jié)合平面解析幾何知識和運動學(xué),基于雷達和船舶自動識別系統(tǒng)(Automatic Identification System,AIS)數(shù)據(jù)構(gòu)建安全會遇距離數(shù)學(xué)模型。FU等[17]將船舶領(lǐng)域定義為絕大多數(shù)船舶避免進入另一船周圍的領(lǐng)域,國內(nèi)外學(xué)者對船舶領(lǐng)域的研究不斷深入,研究中開闊水域多為正圓形或離心率較小的橢圓形。 本文研究的水域主要考慮為開闊水域,相對于繁忙水域,船舶航行密度相對較小。綜合SDA數(shù)學(xué)模型和開闊水域船舶領(lǐng)域中的正圓形確定研究中應(yīng)用的SDA。研究中兩船會遇SDA設(shè)為2.0 n mile;三船會遇SDA設(shè)為1.5 n mile;四船會遇SDA設(shè)為1.2 n mile。 根據(jù)式(1)和式(2),在t時刻,可將船舶i(i∈N)6 n mile范圍內(nèi)的任意船舶j(j∈N,且j≠i)分為安全航行船舶(safe_ship)和存在碰撞危險船舶(risk_ship)2類。 (1) safe_ship:對于任意船舶m(m∈N),有dim(t)<6 n mile,dCPAim(t)≥SDA或tCPAim(t)≤0。 (2) risk_ship:對于任意船舶k(k∈N),有dik(t)<6 n mile,dCPAik(t) 2.1.2會遇階段劃分 船舶在不同會遇階段避讓行動有所不同,對船舶會遇階段進行劃分很有必要。因此,根據(jù)船舶間距離對會遇階段進行劃分。 船舶會遇階段可分為自由行動階段、碰撞危險階段、緊迫局面階段和緊迫危險階段等4個階段,但會遇階段的劃分取決于多方面因素。[13]自由行動階段船舶距離較遠,尚不考慮COLREGs的應(yīng)用;碰撞危險階段一般在3~6 n mile;對于緊迫局面階段和緊迫危險階段沒有明確的定量化描述,根據(jù)航海界普遍認可的定義[18]以及船舶應(yīng)保持不小于SDA安全通過,綜合考慮本文針對開闊水域研究多船避讓問題,船舶尺度、航行速度和操作性等,分別將3.5 n mile、2.5 n mile和SDA作為定量劃分界限。 在t時刻,對于任意船舶i和j(i、j∈N),根據(jù)距離dij(t)對會遇階段Staij(t)進行劃分。 (1) 3.5 n mile (2) 2.5 n mile (3)SDA 船舶避讓方案由避讓時機、避讓方向、避讓幅度和恢復(fù)原航向時機組成。由于避讓行動要求“極早地”以及本研究為實時避碰決策,避讓時機的選取不作考慮;同時,恢復(fù)原航向是在保證安全的前提下,減少船舶航程損失和燃油消耗。因此,為消解船舶避讓沖突,應(yīng)針對避讓方向和避讓幅度進行設(shè)計。 2.2.1避讓方向確定 在多船局面下,周圍可能存在安全航行船舶和多艘碰撞危險船舶。目前,大多數(shù)研究中僅考慮碰撞危險船,采取“避讓重點船”算法進行避讓[15],可能造成新的碰撞危險。 根據(jù)COLREGs第8條,避讓采取的行動要求不得妨礙另一艘船舶通行或安全通行的船舶。為避免因采取避讓行動而使船舶相對運動線向靠近安全船舶方向變化,需對船舶避讓方向確定算法進行設(shè)計。 以i船為例,-1為左轉(zhuǎn),0為保向保速,1為右轉(zhuǎn),ms為遠離安全航行船舶s避讓方向(如存在多艘,選取距離最近安全航行船舶),求取方法見文獻[19]。δi(t)為t時刻i船避讓方向,δir(t)為t時刻i船僅考慮r船避讓方向。 (1)i船附近無碰撞危險船舶,此時沒有碰撞危險,無需避讓,δi(t)=0; (2)i船附近均為碰撞危險船舶,此時船舶i根據(jù)距離最近的危險船r進行避讓,δi(t)=δir(t); (3)i船附近存在安全航行船舶和碰撞危險船舶,當(dāng)存在多艘碰撞危險船舶時,根據(jù)距離確定最近碰撞危險船舶r和最近安全航行船舶s。 由COLREGs可知:除了對遇局面明確要求向右轉(zhuǎn)向,其他條款并未明確要求船舶避讓方向?;诓粦?yīng)妨礙另一艘船通行或安全通行的船舶,根據(jù)船舶r和船舶s與本船i船的不同會遇階段,本船i在t時刻避讓方向δi(t)確定算法如下: Function determine avoidance direction() Input:dir(t),Stair(t),δir(t),Sitir(t),RCir(t),RVCir(t),TCir(t) %輸入t時刻r船相對i船參數(shù) Input:dis(t),Stais(t),ms%輸入t時刻s船相對i船參數(shù) Input: SDA %輸入SDA δi(t) ← NULL %t時刻i船避讓方向 1. ifSitir(t) is head-on situation then 2. ifdir(t)>dis(t) then 3. ifδir(t) ≠msthenδi(t) ← 0; 4. elseδi(t) ←δir(t); 5. end 6. elseδi(t) ←δir(t); 7. end %對遇局面下δir(t) = 1 8.elseifStair(t)=1&&Stais(t)=1 then 9. ifδir(t) =msthenδi(t) ←ms; 10. elseifdir(t)>dis(t) thenδi(t) ← 0; 11. elseδi(t) ←ms; 12. end 13.elseifStair(t)>1&&Stais(t)=1 thenδi(t) ←δir(t); 14.elseifStair(t)=1&&Stais(t)>1 then 15. ifδir(t) =msthenδi(t) ←ms; 16. elseifdir(t)>4.5 n mile thenδi(t) ←ms; 17. elseδi(t) ← 0; 18. end 19.elseifStair(t)>1&&Stais(t)>1 then 20. ifdir(t)>dis(t) thenδi(t) ←ms 21. elseifSitir(t) is overtaken 22. thenδi(t) ←δir(t); 23. elseif 0 24. elseδi(t) ← 1; 25. end 26.elseifdir(t) 27. if 0 28. if sin(RVCir(t)-TCir(t)+180°)≥0 thenδi(t) ← 1; 29. elseδi(t) ← -1; 30. end 31. elseif sin(RVCir(t)-TCir(t)+180°)<0 thenδi(t) ← 1; 32. elseδi(t) ← -1; 33. end 34.end 35.returnδi(t); 該算法中head on situation和overtaken分別為對遇局面和被追越局面;RCir(t)、TCir(t)和RVCir(t)分別為t時刻船舶r相對船舶i的相對方位、真方位和運動方向。 2.2.2避讓幅度的確定 確定t時刻避讓方向δi(t)之后,進而需確定避讓幅度δci(t)。設(shè)置候選避讓幅度集為 ΔC={0°,10°,20°,30°,40°,50°,60°} (3) 由于決策模型以步長Δt=5 s進行滾動更新,但因決策步長5 s不能完成整個避讓幅度轉(zhuǎn)向,這里根據(jù)候選避讓幅度大小設(shè)置5 s內(nèi)的航向變化集 δc={0°,1°,2°,3°,3°,3°,3°} (4) 當(dāng)本船周圍存在多艘碰撞危險船舶,且無法通過一次轉(zhuǎn)向完成對所有船舶的安全避讓時,無論本船針對哪艘船舶制訂避讓方案,在執(zhí)行過程中都有可能與另一船舶的碰撞危險增大。為避免因采取避讓行動而對部分船舶造成更為緊迫的危險局面,通過優(yōu)化船舶避讓幅度對避讓沖突進行消解。避讓幅度選擇策略如下(以船舶i為例): (1) 盡可能讓清所有來船,即對于任意船舶j(j∈N)有 δci(t)={c|c∈ΔC,dCPAij,c(t)≥SDA} (5) 式(5)中:dCPAij,c(t)為i船避讓角度C后與j船的dCPA值。 (2) 若無法讓清所有來船,盡可能讓清6 n mile以內(nèi)的來船,即對于任意船舶j(j∈N,dij(t)<6 n mile),有 δci(t)={c|c∈ΔC,dCPAij,c(t)≥SDA} (6) (3) 若仍無法讓清6 n mile內(nèi)的來船,則選擇避讓ΔC后盡量能保證通過最大距離,避免更緊迫的碰撞危險,即 δci(t)={c|c∈ΔC,max(min(dCPAij,c))} (7) 根據(jù)避讓行動應(yīng)大幅度的要求,讓路船避讓幅度應(yīng)不小于30°,即 ∑δci(t)≥30° (8) 2.2.3恢復(fù)原航向條件 在采取避讓行動之后的一段時間,在保證船舶能在SDA通過的基礎(chǔ)上,為減小航跡偏移量、航程、避讓時間和燃油消耗,船舶應(yīng)恢復(fù)原航向。恢復(fù)原航向時刻條件(以船舶i為例)為 (1) 船舶i恢復(fù)航向之后與任意船舶j(j∈N)不存在碰撞危險,即 dCPAij,b(t)≥SDA或{tCPAij,b(t)≤0且dij(t)>SDA} (9) 式(9)中:dCPAij,b(t)和tCPAij,b(t)分別為i船恢復(fù)原航向之后與j船的dCPA和tCPA值。 (2) 對于任意船舶j(j∈N,j≠i),距離船舶i均大于8 n mile。 為驗證避讓決策模型的普適性,依據(jù)蒙特卡洛思想隨機生成3艘船舶和4艘船舶初始會遇場景各3組,每組10 000次,驗證避讓沖突消解策略的有效性。試驗中船舶采取分布式?jīng)Q策避讓,即每艘船舶均根據(jù)所處場景,依據(jù)避碰決策模型獨立制訂避讓行動,對模型的普適性進行驗證。 設(shè)置4艘船舶會遇場景,對避讓中船舶避讓幅度、避讓時間和避讓軌跡進行展示,并在4艘船會遇時設(shè)置船舶未根據(jù)決策進行避讓和船舶根據(jù)避讓重點船舶進行避讓,對模型的魯棒性進行驗證。 隨機生成特定數(shù)量(3~4艘)船舶會遇場景,包含船舶位置(x,y)、航向c和速度v。各參數(shù)取值范圍和分布見表2。 表2 初始參數(shù)取值范圍和分布 隨機生成的會遇場景中存在部分場景并不存在碰撞危險的情況,為更好地驗證避讓沖突消解策略的有效性,對生成的會遇場景進行篩選。篩選原則如下: 1) 為避免船舶會遇剛開始進入緊迫局面,甚至緊迫危險局面,兩兩船舶間的初始距離應(yīng)不小于6 n mile。 2) 所有船舶應(yīng)相互靠近,即任意2艘船舶tCPA>0。 3) 船舶間存在碰撞危險,即至少存在2艘船舶dCPA<0.8SDA,同時任意2艘船舶的dCPA不大于設(shè)置SDA的2倍。 3.2.1隨機試驗結(jié)果統(tǒng)計 分別對3艘船舶和4艘船舶會遇進行3組試驗,每組隨機生成符合篩選原則的會遇場景有10 000次,結(jié)果統(tǒng)計見表3。 表3 隨機試驗結(jié)果統(tǒng)計 由表3可知:在三船會遇局面下,最近距離大于SDA平均占比99.83%,大于0.95SDA平均占比99.95%,任意兩船最近點距離為1.30 n mile;在四船會遇局面下,99.51%能在SDA及以上距離通過,99.68%能在0.95SDA及以上距離通過,任意兩船最近點距離為0.92 n mile。隨著船舶數(shù)量的增加,船舶會遇局面越來越復(fù)雜,最近點距離大于SDA的占比略有減小,但仍為99.51%,證明避碰決策模型具有較好的普適性。 3.2.2船舶避讓試驗展示 對船舶避讓試驗結(jié)果進行展示,其中避讓方案中避讓時機和復(fù)航時機為試驗時間,單位為s,避讓幅度單位為(°)。 3.2.2.1 存在避讓沖突場景的四船會遇 初始船舶位置、航向和航速與避碰方案如表1所示,在采取船舶避讓沖突消解策略之后,船舶運動軌跡和兩船距離隨時間變化曲線分別見圖2和圖3。 圖2 船舶避讓過程 圖3 任意兩船距離隨時間變化曲線 由圖2和圖3可知:在采取船舶避讓沖突消解策略之后,通過每艘船舶調(diào)用避讓算法,船舶間能在安全距離內(nèi)通過;與圖1對比,說明船舶沖突消解策略和避碰決策能較好地解決多船避讓沖突問題。 3.2.2.2 對遇、交叉和追越局面共存的四船會遇 針對交叉局面、對遇局面和追越局面共存情況設(shè)置多船會遇場景,初始船舶參數(shù)和避碰方案見表4,船舶運動軌跡和任意兩船距離隨時間的變化曲線分別見圖4和圖5。 表4 初始船舶參數(shù)與避碰方案 圖4 船舶避讓過程 圖5 任意兩船距離隨時間變化曲線 3.2.2.3 協(xié)調(diào)行動下的四船會遇 隨機生成四船會遇場景,初始船舶參數(shù)和避碰方案見表5,船舶運動軌跡和任意兩船距離隨時間變化曲線分別見圖6和圖7。 3.2.2.4 不協(xié)調(diào)行動下四船會遇 針對第3.2.2.1節(jié)存在避讓沖突場景的四船會遇,將船舶1設(shè)置為根據(jù)避讓重點船舶算法進行避讓,船舶初始參數(shù)與避碰方案見表6,船舶運動軌跡和任意兩船距離隨時間的變化曲線分別見圖8和圖9。由圖2和圖8可知:船舶1避讓方向相反,但均能保證在安全距離內(nèi)通過,證明避讓決策算法能在他船采取不協(xié)調(diào)行動時,具備一定的應(yīng)變能力。 表5 初始船舶參數(shù)與避碰方案 圖6 船舶避讓過程 圖7 任意兩船距離隨時間變化曲線 表6 初始船舶參數(shù)與避碰方案 圖8 船舶避讓過程 圖9 任意兩船距離隨時間變化曲線 3.2.2.5 船舶避讓效果分析 由圖2、圖4、圖6和圖8可知:正常情況下船舶均能在偏航一定距離之后恢復(fù)原航向,運動軌跡較為平滑。由圖3、圖5、圖7和圖9可知:船舶間距離不小于安全會遇距離,距離變化均勻,符合良好船藝要求。 由存在避讓沖突場景的四船會遇場景試驗可知,船舶避碰決策模型能在存在避讓沖突的情況下保證船舶安全;由對遇、交叉和追越局面共存的四船會遇場景試驗結(jié)果可知,決策模型能處理多局面共存情況下的船舶會遇場景;同時,由協(xié)調(diào)行動和不協(xié)調(diào)行動下的四船會遇場景可知,模型能在周圍船舶采取協(xié)調(diào)和不協(xié)調(diào)行動下安全避讓。 多船會遇局面具有一定的隨機性和不確定性,因此在避讓不同船舶時需采取不同的避讓行動。由于避讓行動不一致,會產(chǎn)生避讓沖突。本文在避免影響安全航行船舶的基礎(chǔ)上,避免船舶避讓產(chǎn)生新的碰撞危險或更緊迫的碰撞危險,構(gòu)建避讓沖突消減策略下的避碰決策模型。分別針對3艘船舶和4艘船舶進行隨機避碰測試,驗證決策模型的普適性。由多船會遇避讓過程和任意兩船距離的變化情況可知:船舶運動軌跡平滑,船舶間距離變化均勻,能適應(yīng)周圍船舶動態(tài)變化和存在部分不協(xié)調(diào)行動的會遇情景,具有較好的避讓效果。研究中存在一定的假設(shè)和局限性,如尚未針對不同船舶尺度和不同船舶的操縱性進行分析,沒有考慮來船數(shù)據(jù)更新時的延時和錯誤,且研究水域僅為開闊水域等。為實現(xiàn)船舶智能航行,還需進行更深層次的研究,如在海上實際航行時,受風(fēng)、浪、流的作用,船舶航向和航速均在一定范圍內(nèi)波動,并非定值,如何在參數(shù)波動下制訂安全避讓方案仍需進一步研究。目前,由于僅針對部分船舶采取避讓重點船算法下的不協(xié)調(diào)行動進行試驗,在下一步研究中,需對模型進行更充分的驗證。2.2 基于避讓沖突消解策略的避碰方案
3 避碰決策試驗驗證
3.1 會遇場景生成與參數(shù)設(shè)置
3.2 試驗結(jié)果與分析
4 結(jié)束語