郭 鹍 趙甲文 杜志嘯 耿建寧
(中船航海科技有限責任公司 北京 100070)
無人駕駛汽車受益于移動機器人發展,在某種視角下,無人駕駛汽車只是輪式機器人,無人駕駛汽車就像機器人一樣“感知”“決策”“執行”,同樣智能船舶也可借鑒無人駕駛汽車以及移動機器人的相關技術,將移動機器人技術與運載工具相結合,其核心在于建立一套可替代人的智能船舶航行系統。
傳統的航行系統設計出發點是輔助人工決策,航海人員使用導航雷達以及電子海圖進行航路規劃以及避障航行,大量的工作圍繞人機交互開展,而智能船舶航行系統通過智能算法替代人類進行思考,簡化了人機交互,完成船舶航行的“感知、決策、控制”[1~2],全過程只保留緊急情況下人工干預的手段。智能船舶航行系統由環境感知系統、決策系統、控制系統組成,各個系統通過以太網連接,其中控制系統與船載自動化系統通過Can總線連接或者其他高速信息交互方式,控制系統最終把解釋后的具體指令通過高速總線發送給船用自動化系統,完成整個流程。
智能船舶航行系統可依托ROS機器人操作系統實現,提供共享內存的IPC機制以及對等式的消息交互機制[3~4]消息通過機制將智能船舶航行系統開發平臺分成多個模塊,單個模塊負責完成自己的消息接受、處理、發布,形成完善的消息支持機制。環境感知系統負責環境信息采集、數據拼接、多源數據融合的工作[5]。最終將具體含義的事件消息傳遞至決策系統,由決策系統進行具體路徑規劃,分為全局規劃以及局部優化、避障等相關判斷決策,最終將信息交給控制系統。
智能船舶航行系統采用ROS機器人操作系統作為開發框架具有以下三個優勢[6~8]:
第一,智能船舶航行屬于快速發展階段,無論是感知算法、決策算法,還是整體的技術方案,都是在一個持續的迭代過程中。利用ROS框架可以提高開發效率,可以讓算法工程師能夠聚焦在算法和功能驗證上,配置管理、環境以及整體運行由框架來統一完成,而不需要各個模塊各個團隊都去開發重復的功能,通過快速的構建原型來驗算法和功能。
第二,模塊靈活配置的需求。感知、定位、決策系統都是功能相對獨立,各模塊通過規范去定義相應的數據,對于整體開發過程,ROS機器人操作系統已經建立了一個非常規范的約束,并且在實現階段也可通過ROS框架把它們整合成一個完整的整體去運行。
第三,可視化工具的需求,ROS機器人操作系統包含了大量的圖像、點云數據的處理算法,并且可以通過可視化工具進行調試,大大加速了智能船舶航行系統開發進度。
基于以上三個需求,值得選擇ROS機器人系統作為智能船舶航行系統開發框架。
智能船舶航行系統環境感知、決策、控制等系統功能相對獨立,就感知系統基本囊括了船舶傳感器設備,并應用VTS、AIS、衛星通信等技術手段,形成立體的航行感知體系,實現船舶對助航設施、礙航物等航行環境的智能感知;所有傳感器在驅動層都物化為一個驅動節點,采用完善的時空統一機制,實現信息分類、信息交互[9~10]。
傳感器配置考慮典型配置,可根據智能船舶實際情況,增加或者刪改。劃分為三個層次,感知層、決策層以及控制層。感知層包括GPS、北斗、IMU、相機、導航雷達、激光雷達、AIS、通信及航行信號燈等組成;決策層由航路規劃模塊、智能避障模塊、靠泊控制模塊、行動預測模塊、人工介入模塊組成;控制層一般是通過CAN總線與電氣自動化系統或者仿真平臺交互,構成完整的體系結構。整個智能航行系統分層結構如圖1所示。
傳感器配置第一類,基于信號的定位,它的代表就是GPS全球導航衛星設備及北斗衛星定位設備;第二類,船舶運動姿態,依靠IMU輸出該類信息,根據上一時刻的位置和方位推斷現在的位置和方位;第三類是環境特征匹配,基于激光雷達的定位及其他感知設備,尤其在港口靠泊時用我們觀測到的特征和數據庫里的特征和存儲的特征進行匹配,得到現在船舶的位置和姿態。通過不同傳感器的融合結果提升智能船舶在不同場景定位的魯棒特性。
激光雷達掃描可以產生多條掃描線,目前市場上多線束產品較多,可以根據船型的大小,配置不同的激光雷達傳感器組合,激光雷達在雨雪等極端天氣工作狀態不佳,因此通常需要和其他傳感器組合。
激光雷達對環境進行掃描以及重構,將點云數據通過網絡數據包發送到控制器上,通過計算機對數據包進行解析處理,生成PCD圖像格式,對重構的數字環境進行分類。識別并提取環境特征。處理流程如圖2所示。
智能船舶在航行過程中,劃分為多個階段:寬闊水域航行、狹水道航行、靠泊航行等階段,因此在不同階段需要融合不同傳感器信息。比如在靠泊航行階段,需要激光雷達以及相機的融合信息幫助船舶靠泊。在寬闊水域地帶時,導航雷達探測范圍更遠,與GPS/北斗導航傳感器相結合幫助判斷航行態勢。不同傳感器設備工作的頻率也是不一樣的,激光雷達工作頻率通常是10Hz,GPS信息是1Hz,因此它們需要統一的時間基準。
根據不同的場景,需要進行融合方式也不一樣。在實施過程需要考慮信息返回的實時性,因此在多種傳感器融合[11]過程中,在不同場景下需要進行不同的劃分,當航行過程中,缺乏實體時,采用相機以及導航雷達、AIS等信息進行深入融合,當靠泊時,采用環境特征的紋理作為信息輸入,保證能夠最大范圍保障智能船舶航行的安全。
目前自動航行實現方式有兩種類型,一種稱為基于規則的實現方式,一種稱為端到端機制。從功能角度來看,目前的端到端系統實現的是反應式控制,而基于規則的特點則是預先規劃。所以預先規劃在工程實現上復雜度較高,基于規則系統實現難度很高。而端到端的實現方式系統則比較低。而端到端機制并非和基于規則的系統完全涇渭分明,其中一部分也可以應用基于規則的方式。
無人駕駛船舶決策系統分為幾個設計準則,按照優先級順序為
1)實時性準則:在自主航行過程,外部環境復雜多變,不可能預先預計,需要根據外部變化做出及時決策。
2)避碰準則:決策必須滿足避免碰撞,在安全狀況滿足需求的情況下采用加減速以及變更航向等方式避免碰撞。
3)航跡保持準則:優先保證在當前航道進行航行。
4)限速準則:必須按照限速要求航行,并盡可能保持勻速航行。
獲取本航次所要經過海區的靜態障礙信息,包括岸線、島嶼、暗礁和沉船等,然后采用A*算法、距離尋優算法、遺傳算法和人工勢場法等方法找出從起點到終點的從最短航路規劃[12]、最優航路規劃,并綜合考慮船舶工作狀態以及水文、氣象等條件。
全局航路規劃根據智能船舶在無人自主航行時采集的外部交通實時結果,持續性的監控智能船舶的航行狀態,在發現當前規劃不能滿足要求時,需要在全局規劃層進行重新規劃。
在全局規劃過程中,不能忽略船舶運動特性的影響,通常經過算法處理后,需要進行平滑處理。
局部優化根據當前的航行狀態判斷無法達到下一個航路點時進行重新局部優化,一般來說局部優化根據避障方案進行局部優化[13]。首先需要根據避碰規則以及國際公約形成避碰、避障方案,最終形成船舶安全航行領域,形成基于深度學習的值域網絡和策略網絡權值并結合現代控制,形成船舶航行邏輯、避障方案、航跡調整策略并提供給動力控制部分。
由于控制系統層與智能船舶自動化系統密切結合,對于智能船舶航行系統而言,對決策層過來的決策信息進行指令分解,并將執行指令傳遞到船用自動化系統中,由船用自動化系統進行動力控制,完成船舶航行指令,替代人工操作。在傳遞底層指令時,控制層信息傳輸通過CAN總線實現:
1)實現控制層的通用性和開放性,提高系統的通用性,系統的維護、維修更簡單。
2)有利于與船舶自動化系統模塊交互。船舶自動系統由許多相互獨立的模塊組成,這些模塊采用統一標準化模塊接口;在不同的船舶上應用時,無需重新設計整個系統,只需通過相關的模塊重新設置,就可以方便完成智能船舶航行操作系統底層控制網絡的構建,提高了系統的靈活性和規模性。
3)提高系統安全性、可靠性。CAN總線采用數字信號網絡傳輸,提高了數據的精度和抗干擾性。
首先,半物理仿真系統中包含了船舶的動態模型,用來加載測試智能船舶駕駛系統,并模擬無人駕駛船舶自身的行為。其次,需要模擬的是外部環境,設計港口靠泊、狹水道航行等特定場景,構建與現實環境相對應的模擬環境。
數據來源可以通過采集多樣的船舶航行數據,實現智能船舶航行的多樣本數據集,通過Caffe、Tensorflow等多種智能框架,對航行進行訓練以及策略優化,完成船舶智能航行端到端的訓練以及航行策略優化,幫助完成各種物理以及半物理仿真實驗。仿真系統工作示意圖如圖3所示。
人工智能正在深刻影響這個世界。智能船舶技術進步離不開先進的信息技術、傳感器技術、控制技術,傳感器賦予智能船舶強大的“視覺”,數據通信傳輸提升了智能船舶“大腦”的工作效率,并能將信息傳遞至自動化系統,從而使智能船舶更加協調的進行航行。
這一方案主要有以下優點:
1)大大降低軟件開發成本,所有的組件都在一個ROS平臺上進行開發,以降低維護成本,市場競爭能力強;
2)為各個組件的互聯互通打下了一定基礎,采用統一軟件體系架構,船舶自動化系統、安全、HMI、環境感知系統等功能將“分而治之”。
當前智能船舶研各種功能依然在完善過程中,在智能船舶航行中不同場景特征變化使得單一的算法以及傳感器融合效果的適應性受到一定限制,依托ROS構建智能船舶航行系統框架將更好借鑒移動機器人以及無人駕駛汽車的研究成果,從而進一步推動智能船舶行業的發展。