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