吳昊,吳子昂,孟慶斌,劉廣偉
(南開(kāi)大學(xué) 濱海學(xué)院,天津, 300270)
如今,我國(guó)普遍采用固定水質(zhì)監(jiān)測(cè)站以及現(xiàn)場(chǎng)人工取樣進(jìn)行檢測(cè)兩種方式。這些檢測(cè)方法都存在一些弊端,如檢測(cè)效率低且費(fèi)時(shí)費(fèi)力、檢測(cè)地點(diǎn)有限不靈活等。具有自主巡航能力的無(wú)人船系統(tǒng)與傳統(tǒng)的固定點(diǎn)水質(zhì)監(jiān)測(cè)系統(tǒng)不同,該系統(tǒng)具有較好的靈活性,可以快速部署到指定水域,按照終端輸入的參數(shù)實(shí)現(xiàn)無(wú)人船自主巡航,進(jìn)行移動(dòng)監(jiān)測(cè),大幅減輕工作人員的工作量,降低工作的危險(xiǎn)系數(shù)。通過(guò)前端傳感器可以采集水體溫度、溶解氧、濁度、pH值等信息,相關(guān)監(jiān)測(cè)信息匯總到數(shù)據(jù)服務(wù)中心,為有關(guān)部門(mén)對(duì)指定水域的應(yīng)急治理提供參考。
自主巡航無(wú)人船系統(tǒng)使用樹(shù)莓派處理命令,通過(guò)MAVLINK協(xié)議與Pixhawk控制板通信,發(fā)布位置和速度期望,由控制板控制執(zhí)行機(jī)構(gòu)實(shí)現(xiàn)無(wú)人船自主巡航功能。
如圖1所示,無(wú)人船主要通過(guò)樹(shù)莓派和Pixhawk控制板通信來(lái)進(jìn)行無(wú)人船的航行控制,水質(zhì)傳感器則通過(guò)RS485轉(zhuǎn)USB模塊接入到樹(shù)莓派中進(jìn)行數(shù)據(jù)處理,地面站和服務(wù)端下發(fā)操控指令和無(wú)人船姿態(tài)信息、傳感器讀取則是通過(guò)4G路由器間接與樹(shù)莓派進(jìn)行通訊。
圖1 系統(tǒng)總體架構(gòu)圖
系統(tǒng)硬件由五個(gè)重要部分組成,分別為:控制和導(dǎo)航模塊、通信模塊、動(dòng)力模塊、傳感器模塊、電源模塊。系統(tǒng)實(shí)物圖、硬件整體框架圖分別如圖2、圖3所示。
圖2 船體硬件示意圖
圖3 硬件框架圖
無(wú)人船的控制模塊采用Pixhawk2.4.8控制板,其主要控制無(wú)人船的速度以及前進(jìn)方向,能夠讓無(wú)人船按照既定路線行駛。Pixhawk是一款32位開(kāi)源的無(wú)人機(jī)控制系統(tǒng),內(nèi)置2組加速計(jì)、2組陀螺儀、1組電子羅盤(pán)、1組數(shù)字氣壓計(jì)同時(shí)其擴(kuò)展性強(qiáng)。設(shè)備處理器以STM32F427主控及STM32F100故障保護(hù)協(xié)處理器作為基礎(chǔ),保障設(shè)備正常運(yùn)行。
對(duì)于無(wú)人船的位置信息(經(jīng)緯度信息以及航行方向),系統(tǒng)采用外置M8N GPS定位模塊,同樣是設(shè)備進(jìn)行自主巡航功能的重要模塊。該模塊具有較高的靈敏度,并且體積小功耗低,其內(nèi)置的電子羅盤(pán)可以彌補(bǔ)Pixhawk內(nèi)部電子羅盤(pán)易受干擾的缺點(diǎn),提高系統(tǒng)的穩(wěn)定性。
通信模塊由接收機(jī)、數(shù)傳、4G工業(yè)級(jí)無(wú)線路由器構(gòu)成。在能夠使用人工的條件下,可以使用手柄與接收機(jī)通信控制無(wú)人船;在配備手持終端的情況下,可以通過(guò)數(shù)傳連接地面站進(jìn)行巡航任務(wù)的初步配置;4G路由器則是發(fā)射一個(gè)連接到4G網(wǎng)的WiFi,樹(shù)莓派能夠通過(guò)其連接到Internet與用戶終端進(jìn)行巡航任務(wù)的配置和數(shù)據(jù)傳輸。
通信模塊均采用現(xiàn)成的成品模塊:接收機(jī)為FS-IA6B六通道接收機(jī),通過(guò)PPM協(xié)議用杜邦線與控制模塊相連,實(shí)測(cè)與遙控器連距離約500m;無(wú)線數(shù)傳采用433MHZ頻段,實(shí)測(cè)通信距離約800m,通過(guò)4pin-1.25mm的接線端子連接到控制器的串口2上;4G路由器使用的是有人云4G工業(yè)無(wú)線路由器,插上物聯(lián)網(wǎng)卡后路由器能夠提供WIFI信號(hào)供樹(shù)莓派連接,在周?chē)拘盘?hào)強(qiáng)、直徑200m的湖面上能夠穩(wěn)定地連接到Internet。
對(duì)于動(dòng)力模塊而言,其主要組成部分為電機(jī)和電調(diào)。系統(tǒng)采用有刷直流電機(jī)和有刷直流電機(jī)電調(diào),電調(diào)信號(hào)線支持兩路PWM,通過(guò)改變兩路PWM信號(hào)的占空比能夠調(diào)節(jié)電機(jī)的速度和正反轉(zhuǎn),電調(diào)的PWM信號(hào)與控制模塊的PWM接口直接相連。PWM信號(hào)占空比與電機(jī)的運(yùn)動(dòng)情況如圖4所示。當(dāng)PWM1線上產(chǎn)生方波、PWM2線上只有低電平信號(hào)時(shí),電機(jī)正轉(zhuǎn);反之,電機(jī)反轉(zhuǎn)。方波的占空比可以調(diào)整電機(jī)的轉(zhuǎn)速。
圖4 PWM信號(hào)控制電機(jī)正反轉(zhuǎn)示意圖
設(shè)備搭載RS485通信協(xié)議的水質(zhì)傳感器,能夠在運(yùn)行時(shí)進(jìn)行水質(zhì)檢測(cè)。水體酸堿平衡、水體渾濁、水體溶解氧、電導(dǎo)率等是檢測(cè)水質(zhì)和判斷水質(zhì)純度的重要指標(biāo)。系統(tǒng)采用了四個(gè)不同的傳感器對(duì)這四個(gè)指標(biāo)進(jìn)行檢測(cè),傳感器參數(shù)如表1所示。
表1 傳感器測(cè)量精度和測(cè)量范圍
如圖5所示,為避免傳感器在水中受到損壞,我們?cè)O(shè)計(jì)了傳感器回收裝置。①為控制電機(jī),能夠?qū)崿F(xiàn)正反轉(zhuǎn)和調(diào)速;②是軸桿,用于承載傳感器線纜;③是滑環(huán),滑環(huán)的兩側(cè)帶有能夠傳輸信號(hào)的線材,一端旋轉(zhuǎn)時(shí)另一端可以保持固定不動(dòng),同時(shí)不影響信號(hào)線材上信號(hào)的傳輸;④為傳感器,傳感器線材最大長(zhǎng)度2.5m,在電機(jī)的轉(zhuǎn)動(dòng)下能夠纏繞在軸桿上。
圖5 傳感器回收裝置
船體上搭載多個(gè)傳感器以及執(zhí)行機(jī)構(gòu),不同的子模塊需要不同的電源電壓。為了能夠便于充電、組裝,系統(tǒng)使用12V電源統(tǒng)一供電,12V電源直接接入電調(diào)。對(duì)于機(jī)載電腦樹(shù)莓派、傳感器、Pixhawk控制板的供電,我們采用了TPS5430降壓芯片的降壓模塊作為其供電方案。
硬件設(shè)計(jì)中的DCDC降壓模塊參考TPS5430數(shù)據(jù)手冊(cè)中的原理圖,如圖6所示。設(shè)計(jì)時(shí)可以通過(guò)D1上的正向電壓VD和電感支路上的等效電阻RL設(shè)計(jì)輸出VOUT的大小。系統(tǒng)搭載的降壓電路的元件參數(shù)與圖6一致,該電路設(shè)計(jì)支持10.8~19.8V寬電壓輸入,5V輸出,最大輸出電流3A,輸出電壓波紋30mV,開(kāi)關(guān)頻率500kHz,該降壓電路適合作為嵌入式設(shè)備的電源。
圖6 TPS5430降壓電路
根據(jù)系統(tǒng)設(shè)計(jì),無(wú)人船會(huì)按照期望速度自主航行至待測(cè)水域,等待當(dāng)前待測(cè)水域檢測(cè)完畢后再自主航行至下一個(gè)水域,直到所有目標(biāo)水域檢測(cè)完畢后返航。船體每次到達(dá)航點(diǎn)都需要停留一段時(shí)間用于執(zhí)行水質(zhì)檢測(cè)任務(wù)。由于QGC執(zhí)行的巡航任務(wù)無(wú)法完成間斷性的巡航,于是我們利用MAVROS包編寫(xiě)了新的巡航程序。完整的巡航程序和傳感器通訊回收程序框圖如圖7所示。
圖7 系統(tǒng)程序框圖
巡航任務(wù)子程序的主要功能是無(wú)人船能夠按照程序中內(nèi)置的幾個(gè)巡航點(diǎn)完成巡航任務(wù),無(wú)人船巡航的過(guò)程可以看作是無(wú)人船點(diǎn)到點(diǎn)的運(yùn)動(dòng)過(guò)程,我們需要對(duì)無(wú)人船的運(yùn)動(dòng)過(guò)程進(jìn)行建模。
3.2.1 固定雙槳無(wú)人船運(yùn)動(dòng)學(xué)分析
系統(tǒng)采用固定雙槳型的船體,電機(jī)同速時(shí)前進(jìn),依靠左右電機(jī)差速進(jìn)行轉(zhuǎn)向。無(wú)人船在水中的運(yùn)動(dòng)包含縱蕩、橫蕩、垂蕩、橫搖、縱搖、艏搖六個(gè)自由度,為了便于分析,實(shí)際可對(duì)自由度進(jìn)行簡(jiǎn)化,只考慮橫搖、縱搖、艏搖三個(gè)自由度的運(yùn)動(dòng)過(guò)程。另外,我們需要建立合理的坐標(biāo)系用于精確描述船體的運(yùn)動(dòng)過(guò)程,采用NED坐標(biāo)系作為世界坐標(biāo)系,船體坐標(biāo)系X軸指向船頭平行于海面,設(shè)沿其方向的前向速度為u,Y軸方向垂直于X軸向左,沿著Y軸方向的速度為v,Z軸垂直于水平面指向地心。另設(shè)r為船體坐標(biāo)系下的艏搖角速度,x,y,ψ分別為NED坐標(biāo)系下的X軸坐標(biāo),Y軸坐標(biāo)和偏航角,示意圖如圖8所示。
圖8 NED坐標(biāo)系和船體坐標(biāo)系平面示意
設(shè)轉(zhuǎn)換矩陣:
則得到固定雙槳型無(wú)人船運(yùn)動(dòng)學(xué)方程:
考慮到無(wú)人船的動(dòng)力學(xué)和推進(jìn)運(yùn)動(dòng)與回轉(zhuǎn)運(yùn)動(dòng)的解耦,這里參考任帥[3]提出的固定雙槳無(wú)人船動(dòng)力學(xué)模型:
于是我們便得到了無(wú)人船前進(jìn)、轉(zhuǎn)向和左右兩槳電機(jī)的電壓(或轉(zhuǎn)速)的關(guān)系。
3.2.2 WGS84坐標(biāo)系下計(jì)算兩點(diǎn)距離和方向角
采用Geographiclib包中的WGS84.Inverse函數(shù)來(lái)計(jì)算兩點(diǎn)之間的距離和方向角輸入?yún)?shù)當(dāng)前位置點(diǎn)和目標(biāo)位置點(diǎn)參數(shù)(lat1,lon1,lat2,lon2),傳出(a12,s12,azi1,azi2),其中s12是兩點(diǎn)之間的距離,Azi1是當(dāng)前位置點(diǎn)1到目標(biāo)位置點(diǎn)2的這條向量與北0度方向上的線的夾角,即無(wú)人船的期望上的方向角。
傳感器子程序主要包括傳感器的回收裝置的控制和傳感器采集、數(shù)據(jù)發(fā)送這兩個(gè)部分。為了實(shí)現(xiàn)樹(shù)莓派能夠通過(guò)4G路由器與終端進(jìn)行UDP通信,我們采用了花生殼內(nèi)網(wǎng)穿透的方案,在樹(shù)莓派上安裝Phddns服務(wù)程序,完成花生殼的線上配置,用“Phddns Start”命令啟動(dòng)內(nèi)網(wǎng)穿透服務(wù)。
3.3.1 傳感器回收裝置的控制
因?yàn)閭鞲衅鲀r(jià)格昂貴,為了保護(hù)傳感器在無(wú)人船航行中不被損壞,系統(tǒng)用串口控制42步進(jìn)電機(jī)以一定的速度正轉(zhuǎn)或倒轉(zhuǎn),實(shí)現(xiàn)傳感器的收放功能。樹(shù)莓派收到指令后通過(guò)串口向42步進(jìn)電機(jī)發(fā)出釋放傳感器的指令,發(fā)送與數(shù)據(jù)接收均為十六進(jìn)制,其數(shù)據(jù)指令幀如表2所示。
表2 42步進(jìn)電機(jī)串口直接位置控制指令幀格式
其中A的最高位表示方向,低7位表示電機(jī)的轉(zhuǎn)速。B和C組成Uint16_t類(lèi)型的數(shù)據(jù),表示要發(fā)送的脈沖數(shù)。這部分主要通過(guò)Serial庫(kù)實(shí)現(xiàn)與42步進(jìn)電機(jī)的串口通信。簡(jiǎn)化后的重要代碼如下所示:
3.3.2 傳感器采樣和數(shù)據(jù)發(fā)送
程序引用Socket函數(shù)庫(kù),在地面站發(fā)送端程序設(shè)置樹(shù)莓派4B的IP地址和端口號(hào);樹(shù)莓派4B部署接收端程序持續(xù)對(duì)端口監(jiān)聽(tīng),即可通過(guò)UDP協(xié)議在地面站向樹(shù)莓派4B發(fā)送開(kāi)啟傳感器指令。
釋放傳感器后,樹(shù)莓派4B再向傳感器發(fā)送采集指令,每次采集間隔兩秒,采樣10次。使用Binascii庫(kù)從返回的十六進(jìn)制數(shù)中提取出數(shù)據(jù),再使用UDP協(xié)議將數(shù)據(jù)返回到地面站并上傳到終端設(shè)備。傳感器采樣和數(shù)據(jù)發(fā)送的邏輯如圖9所示。
圖9 采樣和UDP發(fā)送程序流程圖
系統(tǒng)設(shè)計(jì)完畢后,我們?cè)谀闲呛线M(jìn)行了船體實(shí)際巡航以及水質(zhì)檢測(cè)方面的測(cè)試,無(wú)人船部署測(cè)試場(chǎng)景如圖10所示,記錄的傳感器數(shù)據(jù)繪制成折線圖的形式如圖11所示。
圖10 無(wú)人船實(shí)物演示
圖11 南星湖水質(zhì)實(shí)測(cè)記錄
經(jīng)測(cè)試,無(wú)人船可以自主巡航到指定水域并進(jìn)行水質(zhì)檢測(cè),任務(wù)結(jié)束后自動(dòng)返航,實(shí)現(xiàn)了預(yù)期目標(biāo)。從表中可以看出,南星湖的湖水呈堿性,這與南星湖周?chē)寥乐写嬖诖罅葵}堿物質(zhì)這一事實(shí)相符合,同時(shí)PH值與電導(dǎo)率也存在一定聯(lián)系,而靠近湖水岸邊航點(diǎn)的水質(zhì)濁度也明顯高于靠近湖面中央航點(diǎn)的水質(zhì)濁度。此外,湖水溶解氧偏低,且水體呈現(xiàn)綠色,初步推測(cè)是水中的微生物和水體藻類(lèi)的大量繁殖消耗了過(guò)多的溶解氧。
本文設(shè)計(jì)了一款能夠適應(yīng)于江、河、湖等廣泛水域的無(wú)人自主巡航水質(zhì)檢測(cè)船。該設(shè)備能夠?qū)λ蜻M(jìn)行水質(zhì)檢測(cè),該系統(tǒng)可快速部署到指定水域位置,滿足突發(fā)水域的檢測(cè)需求,具有較高的靈活性。通過(guò)指定路線的地面站進(jìn)行路徑規(guī)劃,實(shí)現(xiàn)無(wú)人船自主巡航功能。船上所搭載的相關(guān)水質(zhì)傳感器,可對(duì)所處水域進(jìn)行相關(guān)水質(zhì)參數(shù)的檢測(cè),同時(shí)能夠通過(guò)無(wú)線通信模塊將檢測(cè)數(shù)據(jù)上傳至服務(wù)器,利于工作人員對(duì)數(shù)據(jù)進(jìn)行查詢和分析,提升工作效率以及達(dá)到節(jié)省人力物力資源的目的。