,,,
(華中科技大學船舶與海洋工程學院,湖北 武漢 430074)
隨著科技日新月異的進步,有關水面無人艇的研究與應用已成為如今的熱點[1]。作為一種擁有體積較小、目標隱蔽、航行距離遠和遠程操控等特點的水面無人航行器,無人艇越來越受到青睞,在海洋資源探測、水質檢查和軍事應用等方面具有十分廣闊的應用前景[2]。近年來,大部分研究都專注于無人艇的各種控制算法[3],在實際監控系統應用方面的成熟方案展現較少[4]。事實上,除了控制算法,無人艇的監控系統也是極其重要的組成部分。作為無人艇的控制中心,監控系統需要實時接收無人艇上PLC傳出的GPS數據,對數據進行處理、采集和存儲,并將其顯示在人機交互面板上。同時還需要下達各項控制功能的指令,如實時調速、手動控制、實時控制和規劃控制等。為了完成以上的控制功能,本文專門開發了相應的監控軟件,該軟件基于LabVIEW程序開發環境,使用圖形化編輯G語言進行軟件開發。
系統總體架構如圖 1所示,主要分為2個部分,分別是岸站部分和無人艇部分。

圖1 水面無人艇系統結構
無人艇部分包括下位機、推進器控制器、水下電動雙推進器、GPS接收器、POE交換機和無線網橋等通訊設備[5]。下位機與GPS接收器通過RS232串口進行連接,與無線網橋通過POE交換機進行數據交換,設備之間通過RJ45串口進行連接。
岸站部分包括上位機、GPS接收器、POE交換機和無線網橋等通訊設備。岸站部分的設備串口連接方式與無人艇部分相同。
由圖1可知,無人艇監控軟件在系統中處于重要位置,是上位機和下位機、岸站與無人艇之間溝通的橋梁。本文中,上位機監控軟件基于LabVIEW開發環境,聯動的地圖軟件基于GMap.net,下位機為西門子S7-1200PLC。上位機與下位機的數據通信方式采用無線通信,當前主流的無線通信方式主要有移動4G網絡通信、無線電通信、無線局域網通信和衛星通信等,這里選擇WLAN通信即無線局域網。
下位機PLC通過GPS接收器獲取當前無人艇的GPS數據,與監控軟件通過Modbus協議進行數據傳輸,上下位機的通信網絡通過無線網橋組建成無線局域網。監控軟件將得到的GPS信號進行處理,獲得無人艇當前的各項參數,如經度值、緯度值、航向和航速,并顯示在LabVIEW程序的交互面板中供操作員進行查看。除此之外,監控軟件會響應操作員的各項交互動作給下位機PLC傳輸控制命令,下位機PLC根據接收的數據對推進器控制器輸入相應模擬量值,以實現對水下電動雙推進器的控制,如正轉、反轉和調速控制等。在上位機中,監控軟件將獲取的經緯度值通過TCP協議傳輸給地圖軟件,地圖軟件根據傳輸的坐標值,實時更新無人艇在地圖上的位置。
為了滿足監控軟件在系統中的功能和定位,軟件系統主要劃分為交互面板和后臺管理,如圖2所示。其中,交互面板主要用于實現無人艇各項參數顯示以及無人艇操控,后臺管理主要進行數據采集與處理及數據通信。

圖2 水面無人艇監控軟件結構
1.2.1 無人艇參數設置顯示
交互面板上需要輸入設置無人艇的IP地址、艇號和PID值等基本參數,導入無人艇操控路徑規劃功能的路徑文件。當監控軟件與下位機通信連接完成時,交互面板上有關無人艇的各項參數將實時更新,如無人艇經緯度值、無人艇航向、無人艇航速和下一目標點的經緯度值。當使用不同操控模式時,軟件會實時更新當前軌跡點序號以及離下一軌跡點的距離等。
1.2.2 無人艇遠程操控
在交互面板上,操作員可以選擇不同的操控模式。手動控制模式可以手動控制無人艇前進、后退、左轉和右轉。實時模式下,通過與地圖軟件聯動實現對無人艇定點航行控制。操作員首先在地圖軟件上確定航行目的點,監控軟件獲取該點坐標,控制無人艇航行至該點。路徑規劃模式下,監控軟件讀取導入的路徑文件,根據文件中路徑規劃點的經緯度值,控制無人艇按路徑規劃點順序依次航行。在3種控制方式中,操作員可以隨時手動改變水下電動雙推進器的轉速。
1.2.3 數據采集與處理
監控軟件作為數據交換的樞紐,需要對輸入和輸出的各項數據進行采集和處理。監控軟件接收地圖軟件傳入的數據包,經過數據處理將數據包字符串轉換和分解為單個的數據。同時,將無人艇當前的各項參數數據打包成數據幀傳輸給地圖軟件。
同上,監控軟件讀取下位機的各項數據,將其處理并轉換成方便交互面板顯示和后臺處理計算的數據格式。同時,將各項操作指令轉換成數據形式發送給下位機,實現對無人艇的控制。
1.2.4 數據通信
監控軟件數據通信分為2部分,分別是與地圖軟件通信、與下位機PLC通信。地圖軟件和監控軟件通過TCP協議進行數據包的傳輸和接收。下位機PLC和監控軟件通過Modbus協議進行數據交互。
無人艇監控軟件基于LabVIEW進行開發,該開發平臺通過框圖和節點形式代替文本進行編程,使得程序開發過程更加直觀便于理解。
由于本監控軟件在系統中的數據通信分為2部分,所以這里采用并行循環[7]的設計方式,將與地圖軟件和下位機PLC的數據通信在并行的循環中進行編程。2個并行運行的循環定時器設定為200 ms運行1次。其他事件處理交由具體事件循環結構體進行處理,比如界面數值初始化等事件。
在與地圖軟件通信的循環結構中,監控軟件主要完成對該部分的數據處理并將相應參數顯示在交互面板上。監控軟件把從下位機得到的處理后的無人艇經緯度值、航向值和航速值數據,與數據包長度值、標志位值和命令類型值一起打包傳給地圖軟件。對接收到的地圖軟件的數據包進行解包,根據標志位值,獲取航行目的點的經緯度值,并賦值給交互界面的顯示控件。
在與下位機通信的循環結構中,監控軟件與下位機通過LabVIEW封裝好的Modbus控件建立通信,讀取下位機保持寄存器中的無人艇經緯度值、無人艇航向和航速等航行信息。由于保持寄存器傳輸到上位機的數據格式是字,所以需要經過數據處理之后再賦值給對應的顯示控件,并同時將這些值寫入本地的文件中,記錄無人艇運行時的各項基本參數。
監控軟件將當前選擇的控制模式、艇號、PID參數和水下電動雙推進器轉速等值寫入下位機。同時,根據不同的控制模式,選擇不同的控制循環結構。
手動控制模式下,操作員根據手動按鈕的選擇寫入控制指令值到下位機的多個線圈,進而控制無人艇的前進、后退、左轉和右轉。
實時控制模式下,監控軟件會在相應的控制循環結構中計算航行目的點與當前位置的距離值,并賦值給交互界面上對應的顯示控件。如圖3所示。同時,監控軟件會將目的點經緯度處理后傳遞給下位機PLC,控制無人艇自動航行到該點。

圖3 實時控制框圖代碼(部分)
路徑規劃控制模式下,監控軟件會在對應的控制循環結構中讀取本地路徑文件中的路徑點經緯度值,同時計算當前位置與下一路徑點距離值,賦值給相應的顯示控件。如果當前距離值小于5,則會自動切換至下一路徑點。如圖4所示。最終控制無人艇沿規劃好的路線航行,直至最后一個路徑點。

圖4 路徑規劃控制框圖代碼(部分)
最終開發出的無人艇監控軟件如圖5所示。由圖5可知,無人艇監控軟件的交互面板主要分為3部分,分別是參數輸入控件、參數顯示控件和控制控件。

圖5 無人艇監控軟件交互面板
參數輸入控件主要有無人艇IP地址、艇號、PID參數輸入以及路徑規劃文件導入。操作員在使用本監控軟件時,首先需在輸入控件中輸入 IP地址和艇號,以便與地圖軟件以及下位機完成通信連接。同時,在使用路徑規劃功能前,需要提前導入相應的路徑規劃文件,否則監控軟件會報錯。
當操作員設置好各項參數并啟動后,監控軟件會實時讀取當前無人艇的經緯度、航向和航速,并顯示在對應的控件中。軟件默認的控制方式是手動模式。
當操作員拖動控制方式滑塊至手動擋位時,此時可以點擊右下角的手動操控按鈕,實時控制無人艇的前進、后退、左轉和右轉。
當滑塊處于實時控制擋位時,操作員在配套的地圖軟件中選擇航行目的點,此時監控軟件通過與地圖軟件的通信獲取該點的經緯度值,計算當前位置與目的點的距離,并顯示在當前交互面板。此時無人艇將會根據兩點的位置,進行自動航行,直至到達標記的目的點。
當滑塊處于路徑規劃控制擋位時,操作員需要提前導入路徑規劃文件,否則軟件無法正常運行。當路徑規劃控制成功運行時,無人艇會根據路徑規劃文件中的路徑點經緯度值,按順序進行航行,直至到最后一點。在此過程中,監控軟件也會實時計算離下一點的距離,顯示在交互面板的控件中。
監控軟件正常運行的時候,能夠隨時對無人艇的水下電動雙推進器轉速進行調整。操作員通過移動轉速滑塊至所需轉速值,實現對無人艇航速的實時控制。同時,監控軟件實時采集無人艇的各項參數,保存至本地文件,以供后續數據分析。
為了驗證本軟件的可用性,首先在岸上對整個系統進行調試。經過基本調試后,監控軟件與地圖軟件和下位機PLC的通訊正常,能夠進行數據交互,實現基本的定位、狀態顯示、調速和手動控制功能。而實時控制和路徑規劃控制功能需要下水試驗,才能判斷監控軟件的控制功能是否滿足系統需求。
調試結束后,本系統首先在華中科技大學喻家湖湖區進行水面航行試驗。經測試,監控軟件的實時控制功能與路徑規劃功能都能滿足系統需求,能夠成功遠程控制無人艇航行到目的點或者沿多個路徑點航行。試驗現場如圖6所示。
為了進一步驗證海上航行情況下該軟件的實用性,本無人艇參與了2019中國智能船艇“海上爭霸”挑戰賽的A/B組——自主繞標賽。此比賽場地位于山東日照東港區萬平口瀉湖附近海域,能夠驗證本軟件的各項控制功能以及通訊是否正常。試驗照片如圖7所示。

圖6 喻家湖水面航行試驗

圖7 山東日照海上航行試驗
a.無人艇系泊試驗。參賽無人艇處于系泊狀態,此時監控軟件的各項通訊功能良好,能夠實時顯示當前無人艇所處的位置、航向和航速,經地圖軟件驗證,航向正確,位置誤差小于1 m。此時可以對無人艇進行手動控制,點擊監控軟件的手動控制按鈕,能夠遙控無人艇實現前進、后退、左轉和右轉的基本操作。
b.無人艇實時控制試驗。解除當前無人艇的系泊狀態,手動控制無人艇離港。操作員移動控制方式滑塊至實時控制擋位,在地圖上選定目的點,監控軟件成功獲取該點的經緯度坐標,并自動向該點航行。此時交互面板上的無人艇經緯度、航向、航速和實時點距離都會在無人艇航行過程中改變。操作員拖動轉速滑塊,能夠明顯觀測到無人艇航速發生變化。當實時點距離小于設定的5 m距離時,無人艇減速至停止航行。
c.無人艇路徑規劃控制試驗。提前導入路徑規劃文件,在手動控制無人艇離港后設置控制擋位為路徑規劃控制。此時無人艇自動航行至路徑規劃文件中的第1個點,當規劃點距離控件的值小于設定值5 m時,自動切換下一路徑點的經緯度值,并顯示在交互面板的目的經緯度控件中。此時當前軌跡點的數字自動加2,表示切換至下一組經緯度。在航行過程中,手動拖動轉速滑塊,能夠實時改變無人艇航速。
整個試驗過程中,無人艇監控軟件各項控制功能正常,通訊正常,驗證了其在海面環境下的控制可靠性。
由于比賽中需要穿越橋墩,而無人艇在橋下無法正常接收到GPS信號,因此監控軟件的實時控制和路徑規劃控制無法正常使用。因為在橋下GPS信號會隨機跳轉或者接收到無效GPS信號。如果GPS信號隨機跳轉,在路徑規劃控制過程中,恰好跳轉到下一目的點5 m內的距離,此時判定已經到達該點則會自動切換至下一點,導致路徑規劃控制失敗。如果接收到無效信號,監控軟件進行處理后得到的目的點坐標值為該區域的基準點坐標即為(119,35)。此時計算出的離下一點距離與監控軟件設定最大航行距離發生沖突,監控軟件會判斷無人艇即將超出控制距離并使其停止航行。因此,調整監控軟件的GPS信號處理部分,使其只有接收到正常GPS信號時才改變當前無人艇位置經緯度值。
經過程序改進之后的監控軟件采用實時與路徑規劃雙工控制方式,實現了無人艇的繞橋墩航行,成功沿著要求路徑實現變速航行,最終完成競賽,并且實時采集了航行過程中的無人艇經緯度值、航速與航向(部分數據如表1所示)。

表1 監控軟件采集的無人艇GPS信息
提取該數據的經緯度值部分,剔除GPS信號誤差較大的無效值,生成散點圖如圖8所示。

圖8 無人艇航行軌跡
將圖8和比賽參考路徑圖9相比較,可知軌跡基本相同。由于在橋下無法獲得GPS信號,所以橋下并沒有采集到經緯度坐標值。由上文試驗實際情況與采集的數據可知,本監控軟件對無人艇的實時狀態觀測和遠程控制良好,能夠實現各項基本的控制功能,與地圖軟件以及下位機通訊正常,實時采集和存儲數據功能正常。

圖9 比賽參考軌跡圖
本文設計并開發了一種無人艇監控軟件系統,對該軟件系統的設計、開發實現以及應用進行了詳細闡述。通過湖面以及海面的各項試驗,結果證明了該軟件對無人艇具有可靠的監控能力和良好的通訊效果,能夠實現手動控制、實時控制、路徑規劃控制和適時調速等多種控制功能。
隨著研究的深入,將在已有的軟硬件架構上繼續完善控制系統。對當前無人艇監控軟件進行擴展,從單艇監控至雙艇甚至多艇監控。最后實現對無人艇集群系統的監控功能。