杜志嘯 趙甲文 郭 鹍 馬 碩
(中船航??萍加邢挢?zé)任公司 北京 100070)
隨著全球貿(mào)易量的持續(xù)上升,水路運(yùn)輸由于運(yùn)量大、成本低等優(yōu)勢(shì),在其中起到了關(guān)鍵的作用[1]。然而隨著航線的增加,也帶來(lái)了水路運(yùn)輸相關(guān)的安全性不足等問題,其中一個(gè)較為主要的問題即為船舶避碰問題,避碰問題主要包含兩種,一為船舶避碰,即有效地避開他船安全航行;二為對(duì)障礙物的躲避。本文主要關(guān)注智能船舶在遠(yuǎn)洋運(yùn)輸中對(duì)障礙物的躲避,其又具有慣性大、時(shí)滯性強(qiáng)等運(yùn)動(dòng)特性。另一方面,隨著近來(lái)綜合信息采集系統(tǒng),處理系統(tǒng),人工智能等技術(shù)的發(fā)展,為我們帶來(lái)了一個(gè)新的解決方向,在采集的數(shù)據(jù)的基礎(chǔ)上,通過智能化算法來(lái)提高船舶航行的安全性,也已成為必然的趨勢(shì)。
所謂船舶避障,就是當(dāng)前進(jìn)方向受到外界的阻礙時(shí),能夠及時(shí)調(diào)整方向以最小的經(jīng)濟(jì)代價(jià)做出躲避障礙物的動(dòng)作。并在成功躲避之后繼續(xù)前行的過程。避障一般情況下,通過從海圖中提取障礙物、水深、海況等信息數(shù)據(jù),并根據(jù)周圍環(huán)境劃分為全局避障和局部避障。全局避障即將全部環(huán)境信息作為已知,根據(jù)已知情況計(jì)算最優(yōu)路徑。局部避障的條件是部分環(huán)境信息已知,或是依賴自身探測(cè)設(shè)備獲取信息后經(jīng)過處理,用于模型計(jì)算用,需要在盡可能短的時(shí)間內(nèi),動(dòng)態(tài)躲避可能出現(xiàn)的障礙物。
綜上,本文試圖對(duì)國(guó)內(nèi)外遠(yuǎn)洋航行中如何結(jié)合船舶的運(yùn)動(dòng)特性安全躲避障礙物的方法進(jìn)行深入分析,并在其基礎(chǔ)上進(jìn)行系統(tǒng)性歸納總結(jié),以對(duì)探索船舶行駛中的安全策略提供一定的參考依據(jù)。
要研究船舶避障問題,獲取到相應(yīng)的環(huán)境數(shù)據(jù)是首要的,利用各種設(shè)備組合,構(gòu)建船舶物聯(lián)網(wǎng),能夠?yàn)閷?shí)時(shí)跟蹤,監(jiān)控分析船舶提供強(qiáng)有力的依據(jù)。進(jìn)而對(duì)環(huán)境進(jìn)行建模,根據(jù)數(shù)據(jù)以及模型算法更好地為船舶規(guī)劃安全經(jīng)濟(jì)的避障路線。
綜合船橋系統(tǒng)正在推動(dòng)未來(lái)的導(dǎo)航系統(tǒng)規(guī)劃[2]。該系統(tǒng)從各種船舶傳感器中獲取輸入,電子顯示定位信息,并提供預(yù)先設(shè)定的過程所需的維護(hù)船只的控制信號(hào)。導(dǎo)航器已成為系統(tǒng)管理器,可選擇系統(tǒng)預(yù)置,解釋系統(tǒng)輸出,以及監(jiān)視船舶響應(yīng)等,避碰系統(tǒng)即為其中的一個(gè)最基本功能組件。
它從20世紀(jì)60年代末期發(fā)展起來(lái),經(jīng)歷了幾個(gè)階段[3]。Norcontrol公司在60年代末期開發(fā)了世界上第一套船橋系統(tǒng),其功能主要就是避碰和綜合導(dǎo)航。早期還有很多故障率較高,各個(gè)獨(dú)立廠商設(shè)備之間標(biāo)準(zhǔn)不統(tǒng)一等問題,后期較新一代的綜合船橋系統(tǒng)如 K-Bridge integrated navigation[4],是真正采用標(biāo)準(zhǔn)組件的系統(tǒng),擁有直觀的用戶界面,其導(dǎo)航傳感器數(shù)據(jù)通過導(dǎo)航傳感器接口在網(wǎng)絡(luò)上廣播,對(duì)傳感器數(shù)據(jù)進(jìn)行收集和分發(fā),以保證各工作站分享同樣的海圖數(shù)據(jù)庫(kù)。
船舶領(lǐng)域概念最早是由日本學(xué)者藤井在研究一條水道的交通容量時(shí)提出的[5],其最早的定義為后繼船舶的駕駛員避免進(jìn)入到前一艘船舶的領(lǐng)域,但也基本適用于航行路線上的障礙物。早期藤井通過交通調(diào)查的方式給出了一種橢圓形船舶領(lǐng)域模型,主要適用于狹窄水域。之后Goodwin[6]在其基礎(chǔ)上研究了開闊水域下的領(lǐng)域模型,這些研究都是通過交通規(guī)則統(tǒng)計(jì)分析等進(jìn)行的定性研究,不具備很好的學(xué)習(xí)性,并且是從二維角度出發(fā)的,鑒于此,徐周華[7]等結(jié)合障礙物附近水域特點(diǎn),提出了狹窄水域的三維領(lǐng)域模型的思想,且隨著人工智能的發(fā)展,一種模糊集合理論被運(yùn)用到領(lǐng)域模型中[8]。在使用下節(jié)提及的環(huán)境建模方法時(shí),適當(dāng)考慮到船舶的領(lǐng)域劃分,將更有效地滿足船舶的空間需求,進(jìn)而保證船舶行駛安全性。
在對(duì)船舶行駛進(jìn)行路徑規(guī)劃時(shí),首先需對(duì)環(huán)境進(jìn)行建模,最早的時(shí)候采用“位姿空間”來(lái)描述船舶及其周圍的環(huán)境,即可視圖法[9]。其將船舶視為一點(diǎn),并將該點(diǎn)與目標(biāo)點(diǎn)和多邊形障礙物的各頂點(diǎn)連接成一個(gè)無(wú)交叉不會(huì)穿越障礙物的圖,進(jìn)而轉(zhuǎn)換成一個(gè)求最短距離的問題。但存在距離障礙物太近或者不必要的連線過多等問題。其余的一些建模方法也被提出了,如崔榮鑫等[10]使用Voronoi圖這種自由空間法分割水下區(qū)域,自由空間法采用預(yù)先定義的基本形狀構(gòu)造自由空間,并將其表示為連通圖。這種方法較為靈活,不會(huì)因其中部分點(diǎn)的改變而受大影響。但隨著障礙物的增加,算法的復(fù)雜程度也會(huì)成正比例的增加。柵格法[11]是一種將環(huán)境分解成一系列具有二值信息的網(wǎng)格單元,然后在其基礎(chǔ)上計(jì)算場(chǎng)景投影圖矩陣,進(jìn)而求解避障路徑。環(huán)境信息的復(fù)雜度與柵格劃分的細(xì)密度有關(guān),因此當(dāng)規(guī)劃時(shí)間較長(zhǎng)時(shí),可采取改進(jìn)的柵格法來(lái)彌補(bǔ)柵格法的不足,即將以柵格為單位記錄更換為以障礙物為單位記錄[12]。
對(duì)環(huán)境進(jìn)行建模后,需要討論的就是如何規(guī)劃出一條安全的路徑,并且可在滿足安全需求的前提下保證路徑的經(jīng)濟(jì)性。目前路徑規(guī)劃方案一般可分為全局的路徑規(guī)劃方法,以及局部路徑規(guī)劃方法。
較為傳統(tǒng)的全局路徑搜索策略主要有A*算法,D*算法,Dijkstra算法,如陳超等[13]提出了一種基于可視圖的A*算法,使用啟發(fā)式搜索的方式減少規(guī)劃時(shí)間。譚寶成等[14]針對(duì)A*算法在規(guī)劃過程中因遍歷節(jié)點(diǎn)多導(dǎo)致搜索時(shí)間長(zhǎng)和路徑規(guī)劃距離長(zhǎng)的問題,采用了兩點(diǎn)間的歐氏距離作為估價(jià)函數(shù),并以前向搜索和后向搜索交替進(jìn)行的方式減少路徑規(guī)劃時(shí)間。莊佳園等[15]提出了基于電子海圖的距離尋優(yōu)Dijkstra算法。克服了傳統(tǒng)Dijkstra算法占用內(nèi)存大的問題,減少時(shí)間,并提高規(guī)劃精度。D*算法被稱為Dynamic A*算法,在局部規(guī)劃中進(jìn)行實(shí)時(shí)的動(dòng)態(tài)避障時(shí)較有效果[16]。
雖說(shuō)該類方法稱為局部路徑規(guī)劃,但通過逐步搜索最優(yōu)路徑,使路徑精度達(dá)到要求,結(jié)合其他算法,也可以達(dá)到較強(qiáng)的全局路徑規(guī)劃能力。主要方法有人工勢(shì)場(chǎng)法,遺傳算法和模糊邏輯算法。
人工勢(shì)場(chǎng)法本是一種Khatib[17]為了機(jī)器人路徑規(guī)劃提出的虛擬力法,基本思想是將機(jī)器人在環(huán)境中的運(yùn)動(dòng),設(shè)計(jì)出抽象的人造引力場(chǎng)的運(yùn)動(dòng),即通過引力和斥力的相互作用作為機(jī)器人的加速力,以此來(lái)控制前進(jìn)方向。關(guān)騰飛等[18]就應(yīng)用了虛擬立場(chǎng)法建立了避障模型,運(yùn)用Move_to_goal和Avoid_obstacle行為設(shè)計(jì),實(shí)現(xiàn)了從船舶運(yùn)動(dòng)坐標(biāo)值到控制量的轉(zhuǎn)變,從而導(dǎo)出船舶避障實(shí)現(xiàn)算法流程。該方法結(jié)構(gòu)簡(jiǎn)單,但容易陷入局部最優(yōu),J Holland提出的遺傳算法[19]構(gòu)造了一類的隨機(jī)化搜索。對(duì)目標(biāo)問題進(jìn)行染色體編碼,通過選擇,交叉培養(yǎng)以及隨機(jī)變異幾個(gè)過程來(lái)控制,不要求適應(yīng)度函數(shù)可導(dǎo)或連續(xù),只要求為正,且可以作為一個(gè)并行算法運(yùn)行,適用于全局搜索,更有可能找到全局最優(yōu)解,但遺傳算法的運(yùn)算速度較慢,進(jìn)行大量的進(jìn)化要占據(jù)較大的存儲(chǔ)空間和運(yùn)算時(shí)間。張玉奎[20]分別利用了遺傳算法和人工勢(shì)場(chǎng)法設(shè)計(jì)了避障路徑規(guī)劃,并且實(shí)驗(yàn)證明了該方法能對(duì)復(fù)雜的障礙物環(huán)境進(jìn)行規(guī)劃。范云生等[21]利用一種改進(jìn)的遺傳算法,通過隨機(jī)快速搜索產(chǎn)生初始種群進(jìn)行路徑搜索,提高路徑規(guī)劃的收斂效率和速度。模糊邏輯控制法原來(lái)主要來(lái)自于汽車駕駛員的駕駛處理模式,具體的處理模式就是將信息進(jìn)行模糊化處理后劃分,并根據(jù)經(jīng)驗(yàn)對(duì)劃分的信息做出決策,正因如此,模糊邏輯法速度快,然而難以達(dá)到較高精度的求解。利用實(shí)時(shí)的傳感信息,張闖[22]提出了一種基于模糊邏輯的二維粒子群航跡規(guī)劃算法,結(jié)合SVM模型設(shè)定航路的決策邊界,確定了適應(yīng)值評(píng)價(jià)函數(shù),并針對(duì)不同環(huán)境模型進(jìn)行了仿真。
船舶行駛過程中,還應(yīng)考慮到其實(shí)際的一些運(yùn)動(dòng)特性,如航向角不宜過小,不宜頻繁的轉(zhuǎn)向等,以及在構(gòu)建了一系列航點(diǎn)以后,需要將折線路徑平滑化。張闖[22]提出了一種網(wǎng)絡(luò)優(yōu)化方法,生成了一個(gè)特殊的適用于船舶操縱性的隨機(jī)網(wǎng)絡(luò),對(duì)應(yīng)于由直線段和回旋曲線組成的平滑航跡的航路,通過允許設(shè)置回轉(zhuǎn)半徑約束以及頻繁小角度轉(zhuǎn)向約束等,確定航路。王紅衛(wèi)[23]針對(duì)折線多、轉(zhuǎn)折次數(shù)多等問題,通過按照一定規(guī)則刪除節(jié)點(diǎn)的方式建立平滑A*模型。王憲[24]針對(duì)傳統(tǒng)的避障路徑規(guī)劃中常常存在不連續(xù)點(diǎn)的問題,結(jié)合B樣條曲線規(guī)劃出平滑避障路線。
文本針對(duì)船舶的避障問題,從環(huán)境建模,避障算法,以及船舶自身航行特性等方面綜述了主要的研究成果。
1)在研究船舶智能避障的過程中,主要采用可視圖法,自由空間法,柵格法進(jìn)行環(huán)境建模。并在其基礎(chǔ)上利用遺傳算法、模糊算法、勢(shì)場(chǎng)法、粒子群優(yōu)化算法,采取全局規(guī)劃與局部調(diào)整相結(jié)合的混合規(guī)劃方式規(guī)劃安全路徑。全局規(guī)劃上可以融入一些避碰規(guī)則,局部調(diào)整上更多的采用一些速度快的算法,并使用全局信息做約束。
2)結(jié)合船舶自身的特性,往往還需要考慮到船舶行駛的轉(zhuǎn)向角限制,時(shí)速的限制以及路徑的平滑化,以及船舶的領(lǐng)域模型。
根據(jù)目前研究的現(xiàn)狀以及發(fā)展趨勢(shì),未來(lái)可以從以下一些方面做探討。
1)結(jié)合水域復(fù)雜度以及氣象條件進(jìn)行更加有效地反映真實(shí)環(huán)境的仿真實(shí)驗(yàn)。實(shí)際情況下,船舶的行駛并不像模擬中那么靈活且易操控。因此需要更好地衡量船舶行駛的危險(xiǎn)區(qū)域以及其時(shí)滯性。
2)可以結(jié)合經(jīng)驗(yàn)作為約束條件,結(jié)合各算法的優(yōu)點(diǎn),在避障結(jié)束后,能夠更好地使船舶不偏離規(guī)劃路徑繼續(xù)安全航行。