田延飛,周欣蔚,溫小飛,王海榮,陳立家
(1.浙江海洋大學(xué) 船舶與海運(yùn)學(xué)院,浙江 舟山 316022;2.舟山市質(zhì)量技術(shù)監(jiān)督檢測(cè)研究院,浙江 舟山 316000;3.內(nèi)河航運(yùn)技術(shù)湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430063;4.武漢理工大學(xué) 航運(yùn)學(xué)院,湖北 武漢 430063)
船舶運(yùn)動(dòng)姿態(tài)數(shù)據(jù)是分析船舶操縱性能、設(shè)計(jì)船舶操縱控制器、研發(fā)船舶操縱模擬器的關(guān)鍵[1]。精準(zhǔn)有效、同步實(shí)時(shí)的船舶運(yùn)動(dòng)姿態(tài)數(shù)據(jù)能夠幫助船舶操縱人員充分了解當(dāng)前船舶的運(yùn)動(dòng)狀態(tài),對(duì)于船舶安全狀況進(jìn)行有效的評(píng)估,從而做出相應(yīng)的決策[2],特別是對(duì)水面無(wú)人艇(Unmanned Surface Vehicle,USV)來(lái)說(shuō),船舶的運(yùn)動(dòng)姿態(tài)數(shù)據(jù)不僅是影響航行安全,更是對(duì)無(wú)人艇展開(kāi)深入研究和開(kāi)發(fā)的重要數(shù)據(jù)。但是,無(wú)人艇所處的水域環(huán)境存在一定的不確定因素,風(fēng)、浪、流等諸多可變環(huán)境因素對(duì)于數(shù)據(jù)傳輸?shù)姆€(wěn)定性、準(zhǔn)確性等都有較大的影響,因此選擇合理有效的無(wú)線通信技術(shù),保證船舶運(yùn)動(dòng)姿態(tài)數(shù)據(jù)傳輸?shù)姆€(wěn)定性和準(zhǔn)確性是研究的關(guān)鍵。LoRa技術(shù)作為一種基于擴(kuò)頻技術(shù)的超遠(yuǎn)距離無(wú)線傳輸,與其他無(wú)線通信技術(shù)相比具有功耗低電池壽命長(zhǎng)、通信距離遠(yuǎn)、成本低等優(yōu)點(diǎn)[3-4],可有效保證復(fù)雜環(huán)境下數(shù)據(jù)傳輸?shù)姆€(wěn)定性及準(zhǔn)確性。葛榮等采用Lora-WiFi網(wǎng)關(guān)實(shí)現(xiàn)對(duì)無(wú)人艇的實(shí)時(shí)操控與運(yùn)行狀態(tài)數(shù)據(jù)監(jiān)測(cè)及顯示,利用LoRa技術(shù)彌補(bǔ)了WiFi通信傳輸距離短、功耗大的缺點(diǎn)[5]。胡奔等采用LoRa技術(shù)設(shè)計(jì)搭建水面無(wú)人船系統(tǒng),實(shí)現(xiàn)水質(zhì)檢測(cè)、無(wú)人船控制等功能,并將之成功應(yīng)用于實(shí)際教學(xué)工作中[6];劉培學(xué)等以4G、LoRa技術(shù)作為無(wú)線傳輸手段,設(shè)計(jì)小型無(wú)人船海洋養(yǎng)殖環(huán)境監(jiān)測(cè)系統(tǒng),用戶可通過(guò)上位機(jī)和云平臺(tái)等瀏覽實(shí)時(shí)數(shù)據(jù)[7]。
為實(shí)現(xiàn)水面無(wú)人艇位姿數(shù)據(jù)的精確采集和穩(wěn)定傳輸,本文設(shè)計(jì)一種基于LoRa的水面無(wú)人艇位姿遠(yuǎn)程數(shù)據(jù)采集系統(tǒng),利用無(wú)人艇端搭載的位姿采集模塊采集相關(guān)的無(wú)人艇位姿數(shù)據(jù),通過(guò)LoRa技術(shù)完成船端與岸基端的數(shù)據(jù)通信,從而對(duì)無(wú)人艇位姿數(shù)據(jù)進(jìn)行解析、處理等,實(shí)現(xiàn)對(duì)無(wú)人艇運(yùn)行狀態(tài)的實(shí)時(shí)監(jiān)測(cè)。該系統(tǒng)能夠?yàn)閁SV操縱運(yùn)動(dòng)建模、基于運(yùn)動(dòng)模型的自動(dòng)控制系統(tǒng)設(shè)計(jì)、航海仿真系統(tǒng)中以數(shù)據(jù)驅(qū)動(dòng)目標(biāo)船舶和遠(yuǎn)程岸基運(yùn)動(dòng)監(jiān)測(cè)與指揮等提供有力的技術(shù)支持及參考,同時(shí)系統(tǒng)不僅集成度高,具備豐富的擴(kuò)展性且整體造價(jià)較低,總體性價(jià)比高,可滿足常規(guī)情況下的教學(xué)及科研需求,具有較高的推廣使用價(jià)值。
水面無(wú)人艇位姿遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)主要由水面無(wú)人艇數(shù)據(jù)采集端和岸基操控端兩部分組成[8]。其中無(wú)人艇數(shù)據(jù)采集端以Arduino控制板為核心,搭配有船舶運(yùn)動(dòng)姿態(tài)傳感器、衛(wèi)星定位傳感器及LoRa無(wú)線通信模塊,主要工作流程為船舶運(yùn)動(dòng)姿態(tài)傳感器及衛(wèi)星定位傳感器將采集到的實(shí)時(shí)數(shù)據(jù)傳輸至Arduino控制板,經(jīng)由LoRa無(wú)線通信模塊傳輸至岸基操控端;岸基操控端主要包括上位機(jī)系統(tǒng)及其相關(guān)程序,其主要工作流程為通過(guò)配對(duì)的LoRa無(wú)線通信模塊接收相關(guān)數(shù)據(jù),且通過(guò)上位機(jī)系統(tǒng)按照協(xié)議對(duì)有效數(shù)據(jù)進(jìn)行解析、顯示及存儲(chǔ)。系統(tǒng)構(gòu)架圖如圖1所示。
系統(tǒng)硬件主要為無(wú)人艇數(shù)據(jù)采集端所搭載的各項(xiàng)設(shè)備,其主要功能為采集和傳輸船舶位姿信息,為岸基端的數(shù)據(jù)解析與處理提供依據(jù)。無(wú)人艇數(shù)據(jù)采集端硬件系統(tǒng)主要由4部分組成:主控單元模塊、衛(wèi)星定位傳感器模塊、姿態(tài)傳感器模塊及LoRa無(wú)線通信模塊。圖2為系統(tǒng)硬件構(gòu)架。
1)主控單元模塊
選擇Arduino Mage 2560作為主控單元(Motor Control Unit,MCU)[9],可通過(guò)外部直流電源供電,也可通過(guò)USB接口直接供電,波特率為115 200 b/s。微控制器主要用于:通過(guò)各種接口與傳感器聯(lián)動(dòng)讀取數(shù)據(jù),根據(jù)自編通信協(xié)議對(duì)衛(wèi)星定位傳感器及姿態(tài)傳感器采集到的原始數(shù)據(jù)進(jìn)行數(shù)據(jù)封裝、打包等預(yù)處理,與LoRa發(fā)送模塊連接,實(shí)現(xiàn)岸基端與無(wú)人艇端的數(shù)據(jù)交互。
2)衛(wèi)星定位模塊
衛(wèi)星定位傳感器型號(hào)為NEO-M8N,采用5 V供電,波特率和信息刷新頻率分別設(shè)置為115 200 b/s和20 Hz。定位模塊通過(guò)串口與控制器連接,經(jīng)過(guò)解析后得到無(wú)人艇實(shí)時(shí)經(jīng)緯度坐標(biāo)及其他位置情況[10],以便實(shí)時(shí)掌握無(wú)人艇狀況。
3)姿態(tài)采集模塊
采用MPU6050姿態(tài)傳感器作為運(yùn)動(dòng)姿態(tài)采集裝置,采集數(shù)據(jù)包括三軸加速度、三軸角速度、磁場(chǎng)[11]等。此外,經(jīng)過(guò)MCU解析后還可獲得航向角、俯仰角、橫滾角等運(yùn)動(dòng)姿態(tài)數(shù)據(jù)。
4)無(wú)線通信模塊
無(wú)人艇采集端無(wú)線通信采用LoRa模塊,在數(shù)據(jù)傳輸前,進(jìn)行同速率、信道、目標(biāo)地址參數(shù)配對(duì)設(shè)置[12]。當(dāng)MCU接收到完整數(shù)據(jù)包時(shí)則采用透?jìng)髂J脚c配對(duì)LoRa終端進(jìn)行數(shù)據(jù)通信,實(shí)現(xiàn)無(wú)人艇采集端與岸基端數(shù)據(jù)信息流交互。
無(wú)人艇位姿遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)軟件主要為上位機(jī)及其相關(guān)軟件,基于面向?qū)ο蠛凸δ苣K化的設(shè)計(jì)思想進(jìn)行系統(tǒng)搭建[13],軟件系統(tǒng)主要分為數(shù)據(jù)處理模塊和數(shù)據(jù)顯示模塊兩部分。系統(tǒng)軟件構(gòu)架如圖3所示。
數(shù)據(jù)處理模塊的主要功能是對(duì)串口讀取的數(shù)據(jù)進(jìn)行數(shù)據(jù)類型判斷[14]、數(shù)據(jù)解析等工作。以運(yùn)動(dòng)姿態(tài)數(shù)據(jù)處理為例,進(jìn)行讀取指令時(shí)串口都會(huì)讀取48位數(shù)據(jù),其中有效數(shù)據(jù)位第6~45位。執(zhí)行類型判斷指令時(shí),首先對(duì)讀取到串口數(shù)據(jù)的開(kāi)始位、功能位、數(shù)據(jù)長(zhǎng)度位進(jìn)行辨識(shí)確認(rèn);然后進(jìn)行數(shù)據(jù)檢驗(yàn)和,檢驗(yàn)和正確后;最后按照每4位構(gòu)成一組4位的十六進(jìn)制數(shù)進(jìn)行數(shù)據(jù)分類提取、轉(zhuǎn)換,如圖4所示。執(zhí)行解算指令時(shí),按照傳感器數(shù)據(jù)處理公式解算出無(wú)人艇姿態(tài)數(shù)據(jù),將數(shù)據(jù)按類存儲(chǔ)到各自數(shù)組。
基于VS2019軟件,采用C#編程語(yǔ)言進(jìn)行數(shù)據(jù)顯示程序的設(shè)計(jì)與編寫(xiě)。通過(guò)與上位機(jī)連接的LoRa通信模塊,接收船端采集到的數(shù)據(jù)信息,上位機(jī)程序接收數(shù)據(jù)、讀取指令,然后執(zhí)行數(shù)據(jù)轉(zhuǎn)換,將數(shù)據(jù)信息進(jìn)行可視化顯示,顯示的信息包括運(yùn)動(dòng)姿態(tài)數(shù)據(jù)及位置定位信息。同時(shí)將運(yùn)動(dòng)姿態(tài)數(shù)據(jù)以可視化的動(dòng)態(tài)折線圖方式進(jìn)行顯示,直觀易懂,實(shí)現(xiàn)USV運(yùn)動(dòng)姿態(tài)的遠(yuǎn)程監(jiān)測(cè)。上位機(jī)數(shù)據(jù)顯示程序如圖5所示。
除上位機(jī)數(shù)據(jù)顯示程序外,為便于用戶使用,利用MySQL數(shù)據(jù)庫(kù)建立水面無(wú)人艇位姿檢測(cè)系統(tǒng)實(shí)時(shí)數(shù)據(jù)庫(kù)。具體操作為:通過(guò)數(shù)據(jù)轉(zhuǎn)換操作指令,將采集到的船舶位姿數(shù)據(jù)轉(zhuǎn)換為json類型數(shù)據(jù),采用ajax技術(shù)對(duì)數(shù)據(jù)進(jìn)行動(dòng)態(tài)加載并將其存儲(chǔ)至Echarts圖標(biāo),通過(guò)設(shè)定數(shù)據(jù)刷新時(shí)間,實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)顯示。實(shí)時(shí)數(shù)據(jù)庫(kù)實(shí)際流程如圖6所示。
根據(jù)上文軟硬件功能設(shè)計(jì),搭建無(wú)人艇位姿遠(yuǎn)程數(shù)據(jù)采集系統(tǒng),系統(tǒng)實(shí)物組成圖如圖7所示。將搭建完畢的系統(tǒng)裝載于無(wú)人艇實(shí)驗(yàn)平臺(tái)進(jìn)行試驗(yàn)測(cè)試,主要驗(yàn)證以下功能:
1)無(wú)人艇數(shù)據(jù)采集端的數(shù)據(jù)采集模塊的正常運(yùn)行;
2)船端與岸基端遠(yuǎn)距離、穩(wěn)定的數(shù)據(jù)傳輸;
3)岸基端數(shù)據(jù)顯示模塊的實(shí)時(shí)數(shù)據(jù)讀取與顯示。
無(wú)人艇實(shí)驗(yàn)平臺(tái)如圖8所示。無(wú)人艇位姿遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)上電后,操控?zé)o人艇試驗(yàn)平臺(tái)進(jìn)入巡航狀態(tài),待穩(wěn)定后,上位機(jī)數(shù)據(jù)顯示程序數(shù)據(jù)顯示界面如圖9所示,通過(guò)程序設(shè)計(jì)的數(shù)據(jù)可視化系統(tǒng),可觀測(cè)到船舶位姿數(shù)據(jù)的實(shí)時(shí)變化狀態(tài),如圖10所示。
經(jīng)過(guò)實(shí)際無(wú)人艇試驗(yàn)平臺(tái)的測(cè)試與應(yīng)用驗(yàn)證,本文設(shè)計(jì)的基于LoRa的水面無(wú)人艇位姿遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)主要達(dá)到了如下功能和效果:
1)數(shù)據(jù)采集。系統(tǒng)執(zhí)行數(shù)據(jù)采集功能,能夠通過(guò)衛(wèi)星定位模塊及姿態(tài)采集模塊穩(wěn)定采集相關(guān)數(shù)據(jù),包括三軸加速度、三軸角速度、橫滾角、俯仰角、航向角、經(jīng)緯度坐標(biāo)等。
2)數(shù)據(jù)傳輸?;贚oRa通信技術(shù)將船端數(shù)據(jù)傳輸至上位機(jī)端進(jìn)行數(shù)據(jù)處理,傳輸距離遠(yuǎn)、傳輸狀態(tài)穩(wěn)定。
3)數(shù)據(jù)處理及可視化?;贑#完成上位機(jī)數(shù)據(jù)顯示程序的搭建,實(shí)現(xiàn)采集數(shù)據(jù)的處理及可視化顯示與監(jiān)測(cè),顯示內(nèi)容清晰直觀、通俗易懂?;贛ySQL搭建的位姿監(jiān)測(cè)數(shù)據(jù)庫(kù)運(yùn)行流暢,設(shè)置定時(shí)讀取并刷新數(shù)據(jù)達(dá)到了位姿數(shù)據(jù)實(shí)時(shí)顯示的功能。無(wú)人艇位姿檢測(cè)數(shù)據(jù)庫(kù)如圖11所示。
基于無(wú)人艇試驗(yàn)平臺(tái)的驗(yàn)證結(jié)果表明,本文設(shè)計(jì)的基于LoRa的水面無(wú)人艇位姿遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)功能流暢、運(yùn)行穩(wěn)定,并且能通過(guò)上位機(jī)顯示程序?qū)Σ杉降奈蛔藬?shù)據(jù)進(jìn)行可視化顯示,顯示結(jié)果簡(jiǎn)單清晰、通俗易懂。能夠應(yīng)用于水面無(wú)人艇運(yùn)動(dòng)姿態(tài)數(shù)據(jù)采集與可視化監(jiān)測(cè),同時(shí)可為水面無(wú)人艇的技術(shù)發(fā)展、科研與教學(xué)實(shí)驗(yàn)等提供技術(shù)支持。
本文基于LoRa設(shè)計(jì)并實(shí)現(xiàn)了水面無(wú)人艇運(yùn)動(dòng)姿態(tài)數(shù)據(jù)采集與遠(yuǎn)程監(jiān)測(cè)系統(tǒng)。采用Arduino控制板作為主控單元,利用LoRa模塊作為無(wú)線通信工具實(shí)現(xiàn)無(wú)線通信功能,保障岸基端與無(wú)人艇數(shù)據(jù)采集端的實(shí)時(shí)數(shù)據(jù)通信;岸基端采用C#、MySQL進(jìn)行數(shù)據(jù)可視化程序編寫(xiě),對(duì)采集到的船舶位姿數(shù)據(jù)進(jìn)行解析、處理及可視化顯示等操作,最終實(shí)現(xiàn)船舶位姿數(shù)據(jù)的實(shí)時(shí)監(jiān)測(cè)、直觀顯示等功能。最終實(shí)驗(yàn)結(jié)果證明,系統(tǒng)各項(xiàng)功能運(yùn)行穩(wěn)定,數(shù)據(jù)采集及傳輸功能平穩(wěn),上位機(jī)所展示的可視化界面清晰直觀,能夠?yàn)闊o(wú)人艇操縱運(yùn)動(dòng)建模、基于運(yùn)動(dòng)模型的自動(dòng)控制系統(tǒng)設(shè)計(jì)、航海仿真系統(tǒng)中數(shù)據(jù)驅(qū)動(dòng)目標(biāo)船舶、USV遠(yuǎn)程岸基運(yùn)動(dòng)監(jiān)測(cè)與指揮等提供數(shù)據(jù)支持,為水面無(wú)人艇的技術(shù)發(fā)展、科研與教學(xué)實(shí)驗(yàn)等提供技術(shù)支持,具有一定的推廣使用價(jià)值。