【關鍵詞】智能航行;分層架構;航路規劃;路徑跟蹤
無人艇(USV)是一種具備精確環境感知能力、無人駕駛和自主導航操縱特性的水面船只,可以由港口或母艇對其實施遠程操控,能在惡劣環境、危險區域執行任務[1],可最大限度地降低人員或士兵的生命風險,在民用和軍事領域具有極其廣泛的應用前景[2]。無人艇的航行控制軟件是智能航行控制核心,本文介紹的控制軟件,遵循集成化、模塊化、高度自主性和協同性的設計原則,實現了對多艘不同尺寸無人艇的精確航行控制。
(一)無人艇控制系統設計
智能無人艇控制系統一般由三部分組成:環境感知單元、智能控制單元和動力執行單元。環境感知單元由定位定向設備、水環境感知設備、避障設備等組成;智能控制單元主要包括航路規劃、避障規劃等;動力執行單元控制發動機換擋、加減油門,控制舵角轉向。
環境感知單元:對無人艇的航行環境進行感知,包括無人艇位置、艏向角、無人艇所處水面的水流情況、偏流角度、水深、周圍水面障礙物位置及尺寸、水下障礙物位置及尺寸、發動機及舵機狀態等,為智能控制解算單元提供輸入。

智能控制單元:根據環境感知單元提供的信息,進行無人艇航路規劃,并綜合無人艇實際位置和態勢信息以及規劃結果,計算轉向角度和發動機的檔位及油門大小,最終傳遞到執行機構執行。
(二)智能航行模式控制流程
航行控制器接收到自主航行指令后,根據解析的外設導航數據和障礙物數據,完成對無人船的全局路徑規劃及局部路徑調整。無人船要達到完全自主航行的能力,必須在全局路徑規劃的基礎上實時調整局部規劃的路線,依照全局規劃的路線航行時,遇到海圖上不存在的障礙物,如其他航行船只、錨泊船或浮標時,應基于環境感知設備檢測到的環境信息進行避障的局部路徑規劃,采用局部規劃的路徑進行航行[3]。
(三)無人艇控制軟件設計
航行控制軟件是無人艇智能控制的核心,運行于航行控制器上,主要完成對船載各設備的狀態信息采集,根據單艇控制指令或者編隊決策指令要求,自主規劃無人艇動作并依此完成對發動機及舵機的控制,控制器軟件工作環境框圖見圖2。

對航行控制器軟件進行分層架構設計,分為感知模塊(communication)、自主規劃模塊(Coremodule)和執行模塊(HWdriver)三部分,軟件分層架構框圖見圖3。
主流程main函數根據任務流程要求進行設計,當外部感知設備和執行機構明確時,即使前期軟件需求未完全明確,后期軟件更改維護也比較方便。智能航行控制器軟件的工作主流程見圖4。
航行控制軟件有三種工作模式:有人模式、無人模式和自動模式,有人模式是指航行控制軟件只采集船上各設備的狀態信息并發送到顯控軟件進行顯示,而舵機和發動機由人直接操作控制,不受控制軟件控制;無人模式指航行控制軟件接收解析顯控軟件發送的控制指令,根據指令內容控制發動機點火、熄火、啟動、停止、掛前進檔、后退檔、空檔及加減油等動作,控制舵機轉舵方向及轉舵值,執行的是遙控操作;自動模式是控制軟件按照接收到的指令及信息,接收到自主航行指令后進行自主規劃航行路徑,進入自主巡航狀態,根據規劃結果或自守位狀態計算結果自主控制發動機和舵機執行相應的動作。

要保證無人船安全可靠航行,以下三方面的內容不可少:一是穩定的通信系統,保證無人船與岸基系統之間通信的實時性和數據交互的可靠性,如果通信中斷,在軟件流程中加入保護措施,保證無人船能夠安全返航;二是設計成熟的導航制導算法、安全的避障能力,確保無人船能夠按照給定路線自主穩定運行,并對路徑上實時監測到的障礙進行及時躲避;三是實時將船只位置、航行狀態等數據傳送岸基系統,方便岸上人員實時掌握無人船狀態。

在遙控操作和自主巡航過程中,如果出現通信中斷、定位位置丟失、油量或蓄電池電量不足等問題,無人船的安全性將不能得到保障,軟件設計了對無人艇狀態的實時監測,如果出現不正常的狀態,即可及時進行控制并實行航行模式切換,切換方式見圖5。

本軟件已運用于多艘無人船艇,適用于對沃爾沃、康明斯、水星等廠家發動機的精確控制,多次航行試驗驗證:該軟件可靠性高,可連續工作72小時以上;控制精度可控,在三級海況下,自主航行路徑跟蹤精度可達10米。