摘要:針對(duì)大型水文監(jiān)測(cè)船造價(jià)高、靈活性差以及水文監(jiān)測(cè)環(huán)境惡劣、人工采樣數(shù)據(jù)不準(zhǔn)確等問(wèn)題,在深入分析了水文監(jiān)測(cè)的實(shí)際需求和研究現(xiàn)狀,并總結(jié)了大量文獻(xiàn)后,提出了一款基于遙控和導(dǎo)航“雙模式”的小型水文監(jiān)測(cè)船設(shè)計(jì)方案。該船利用嵌入式技術(shù)、無(wú)線通信技術(shù)、數(shù)據(jù)采集與傳輸技術(shù)、云服務(wù)器搭建與數(shù)據(jù)庫(kù)連接技術(shù)和自主導(dǎo)航避障技術(shù),可實(shí)現(xiàn)船模的遙控、監(jiān)測(cè)、預(yù)警和導(dǎo)航功能。其具有制造成本低、操控方便、實(shí)用性強(qiáng)等特點(diǎn),特別適合小規(guī)模、復(fù)雜水域的監(jiān)測(cè),具有良好的推廣和應(yīng)用前景。
關(guān)鍵詞:嵌入式系統(tǒng);STM32水文監(jiān)測(cè);運(yùn)動(dòng)控制;自主導(dǎo)航避障;智能技術(shù)
0 引言
本文旨在設(shè)計(jì)一款實(shí)用性強(qiáng)的基于遙控和導(dǎo)航“雙模式”的小型水文監(jiān)測(cè)船,以完成如下任務(wù):操控人員可在岸邊遙控船模進(jìn)入目標(biāo)監(jiān)測(cè)區(qū)域,抵達(dá)后制動(dòng)發(fā)動(dòng)機(jī),開(kāi)啟監(jiān)測(cè)功能,監(jiān)測(cè)人員可在PC端網(wǎng)頁(yè)上實(shí)時(shí)獲取水文監(jiān)測(cè)數(shù)據(jù),監(jiān)測(cè)完畢后由操控人員遙控船模返航;操控人員也可在遙控器上切換至導(dǎo)航模式,監(jiān)測(cè)人員可以在PC端網(wǎng)頁(yè)上為船模選擇目標(biāo)區(qū)域的經(jīng)緯度信息,讓船模自主導(dǎo)航抵達(dá)。在上述兩種模式下,船模運(yùn)動(dòng)速度均分為高速檔和低速檔,可在遙控器上切換;均帶有預(yù)警子系統(tǒng),一旦采集到船模姿態(tài)有翻船風(fēng)險(xiǎn),就會(huì)啟動(dòng)報(bào)警,操控人員可以操縱遙控器或由監(jiān)測(cè)人員重新選擇目標(biāo)區(qū)域調(diào)整船模航行路線或者返航。
1 系統(tǒng)設(shè)計(jì)
1.1 ? ?MCU選型
在本設(shè)計(jì)中,主控板和外設(shè)連接的模塊較多,因此本設(shè)計(jì)采用ST(意法半導(dǎo)體,世界最大的半導(dǎo)體公司之一)公司推出的STM32F103ZET6作為本次設(shè)計(jì)的控制器芯片。該芯片具有成本低、功耗低、接口豐富、資源充足、實(shí)時(shí)性好、設(shè)計(jì)靈活等特點(diǎn)。
1.2 ? ?遙控子系統(tǒng)
遙控終端負(fù)責(zé)給船模檔速切換、模式切換、航行方向和傳感器監(jiān)測(cè)發(fā)送控制指令,也可進(jìn)行人機(jī)交互。本文選用的是采用低電壓、高效率,應(yīng)用廣泛的2.4G無(wú)線通信技術(shù)和PPM(脈沖相位調(diào)制)信號(hào)的富斯i6遙控器。在富斯i6遙控器與接收機(jī)的信號(hào)傳輸過(guò)程中,PPM信號(hào)把多路PWM信號(hào)調(diào)制到一路通道上,發(fā)送到接收機(jī)后再由接收機(jī)還原成多路PWM從各個(gè)通道輸出。
1.3 ? ?動(dòng)力子系統(tǒng)
水文監(jiān)測(cè)船模的動(dòng)力子系統(tǒng)由電源模塊、電機(jī)驅(qū)動(dòng)模塊和電機(jī)模塊組成。兩個(gè)速度分別可調(diào)的電機(jī)帶動(dòng)船尾的雙螺旋槳旋轉(zhuǎn),進(jìn)而靠產(chǎn)生的水的反作用力推動(dòng)船模航行,故電機(jī)的選型尤為重要,其直接影響到船模行駛的穩(wěn)定性。本文選用功率大且重量輕的390直流電機(jī),選用L298N電機(jī)驅(qū)動(dòng)模塊,電源可以用標(biāo)準(zhǔn)航模鋰電池供電。
在直流電機(jī)的速度控制中,PWM(脈寬調(diào)制)是一種廣泛使用且可靠的方法。實(shí)際在Keil軟件上編程時(shí),通過(guò)控制器調(diào)節(jié)定時(shí)器TIM輸出通道的比較值來(lái)改變輸出信號(hào)的占空比,進(jìn)而改變模擬信號(hào)電壓大小來(lái)調(diào)節(jié)電機(jī)轉(zhuǎn)速。在本設(shè)計(jì)的水文監(jiān)測(cè)船模中,可以通過(guò)調(diào)節(jié)兩個(gè)電機(jī)的轉(zhuǎn)速差來(lái)調(diào)整船模的航行方向。
1.4 ? ?導(dǎo)航子系統(tǒng)
1.4.1 ? ?硬件選型
在船模定位方面,本文采用GPS定位技術(shù),選擇適應(yīng)能力強(qiáng)的ATK-S1216F8-BD GPS/北斗模塊。在確定了目標(biāo)監(jiān)測(cè)區(qū)域和船模的經(jīng)緯度信息后,船模當(dāng)前航向角的調(diào)整需要借助于電子羅盤模塊的信息采集,可選用動(dòng)態(tài)性能好的AK8975電子羅盤模塊。船模在水面航行的過(guò)程中,可能會(huì)遇到靜態(tài)或動(dòng)態(tài)的障礙物。考慮到在復(fù)雜環(huán)境的水域上,如果用超聲波測(cè)距,外界的風(fēng)向和溫度可能會(huì)影響其測(cè)量精度,所以本文采用激光測(cè)距方式,選用ATK-VL53L0X激光測(cè)距模塊。該模塊具有尺寸小、精度高、測(cè)距遠(yuǎn)、測(cè)速快(每秒可以測(cè)量50次)等優(yōu)點(diǎn),再配合舵機(jī)部分(可采用SG90舵機(jī))控制其左右轉(zhuǎn)動(dòng),根據(jù)采集到的障礙物方位信息,應(yīng)用數(shù)字PID算法調(diào)節(jié)兩個(gè)電機(jī)的轉(zhuǎn)速,實(shí)現(xiàn)避障功能。
1.4.2 ? ?軟件設(shè)計(jì)思路
PID算法是一種經(jīng)典的控制算法,應(yīng)用極為廣泛。相應(yīng)的改進(jìn)算法主要有基于模糊控制、智能算法等先進(jìn)技術(shù)的參數(shù)整定(比例P、積分I和微分D這3個(gè)參數(shù))的改進(jìn)以及采用積分分離、前饋補(bǔ)償?shù)确椒▽?duì)控制結(jié)構(gòu)的改進(jìn)。
本文設(shè)計(jì)的水文監(jiān)測(cè)船在導(dǎo)航模式下,處理器接收到GPS模塊、電子羅盤模塊、激光測(cè)距模塊和舵機(jī)模塊采集的船模和障礙物位置信息后,根據(jù)接收到的目標(biāo)監(jiān)測(cè)區(qū)域的經(jīng)緯度信息,將偏差角作為輸入,應(yīng)用改進(jìn)的數(shù)字PID算法編程實(shí)現(xiàn)對(duì)兩個(gè)電機(jī)轉(zhuǎn)速的控制作為輸出,以此來(lái)實(shí)現(xiàn)船模在水面上的正常行駛和避障功能。
水文監(jiān)測(cè)船導(dǎo)航模式的軟件設(shè)計(jì)流程如圖1所示。
1.5 ? ?監(jiān)測(cè)子系統(tǒng)
1.5.1 ? ?傳感器選型
關(guān)于水文水質(zhì)的檢測(cè),本文在此僅考慮水的溫度、pH和濁度這3個(gè)方面(實(shí)際應(yīng)用中可以根據(jù)用戶需求選用多種類型的傳感器來(lái)檢測(cè)更多的水文信息)。相應(yīng)的傳感器選型分別為DS18B20數(shù)字溫度傳感器、E-201-C復(fù)合電極和TS-300B濁度傳感器,它們具有共同的優(yōu)點(diǎn):(1)價(jià)格低,體積小;(2)響應(yīng)快,精度高;(3)接線方便,維護(hù)簡(jiǎn)單[1]。
1.5.2 ? ?數(shù)據(jù)傳輸模塊
在船模獲得監(jiān)測(cè)數(shù)據(jù)后,我們需要得到及時(shí)的反饋,將監(jiān)測(cè)數(shù)據(jù)上傳到云服務(wù)器供監(jiān)測(cè)人員在PC端網(wǎng)頁(yè)上實(shí)時(shí)獲取;在導(dǎo)航模式下,同樣需要船模接收來(lái)自服務(wù)器的數(shù)據(jù)(目標(biāo)監(jiān)測(cè)區(qū)域位置信息),并將其轉(zhuǎn)發(fā)至串口設(shè)備。為此,我們可以選擇支持4G高速接入的WH-LTE-7S4 V2通信模塊,該模塊支持網(wǎng)絡(luò)透?jìng)?、HTTPD Client和UDC 3種工作模式,具有高速率、低延時(shí)的特點(diǎn)。
1.5.3 ? ?數(shù)據(jù)庫(kù)的設(shè)計(jì)和連接
在本次設(shè)計(jì)中可以使用MySQL數(shù)據(jù)庫(kù),MySQL是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),體積小、速度快而且源碼開(kāi)放。
PHP提供了可與MySQL連接的函數(shù)庫(kù)mysqli,在本設(shè)計(jì)中可以使用面向?qū)ο蠡蜻^(guò)程的語(yǔ)法來(lái)創(chuàng)建與主機(jī)localhost的連接,通過(guò)這種方法可以直接調(diào)用這個(gè)對(duì)象來(lái)訪問(wèn)數(shù)據(jù)庫(kù)[2]。
本文設(shè)計(jì)的水文監(jiān)測(cè)船需要將船模系統(tǒng)探測(cè)到的數(shù)據(jù)實(shí)時(shí)發(fā)送到服務(wù)器上供監(jiān)測(cè)人員在PC端網(wǎng)頁(yè)上實(shí)時(shí)獲取,所以需要往MySQL數(shù)據(jù)庫(kù)中插入新的數(shù)據(jù),然后對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢。在這里可以使用mysqli_query()函數(shù),該函數(shù)可查詢user這個(gè)表里的所有數(shù)據(jù)。
1.6 ? ?預(yù)警子系統(tǒng)
本文選用通過(guò)IIC或SPI接口通信的MPU6050模塊提供的俯仰角和橫滾角,結(jié)合船模位置和當(dāng)前航向角信息來(lái)檢測(cè)水浪波動(dòng)情況的水文信息,同時(shí)也是在檢測(cè)船模的姿態(tài),為監(jiān)測(cè)船的航行安全提供保障,因?yàn)樵趶?fù)雜的水域環(huán)境下,如果水面波動(dòng)很大,船模隨時(shí)會(huì)有翻船的危險(xiǎn),所以當(dāng)MPU6050檢測(cè)到俯仰角或橫滾角過(guò)大時(shí),應(yīng)該啟動(dòng)報(bào)警,配合板載的蜂鳴器鳴叫和LED閃爍,并把警告信息顯示在PC端頁(yè)面上,提醒操控人員和監(jiān)測(cè)人員及時(shí)調(diào)整船體運(yùn)行路線或返航檢查。
2 系統(tǒng)移植
UCOSⅢ是一個(gè)可裁剪、可固化和可剝奪的多任務(wù)系統(tǒng)。由于本文軟件系統(tǒng)的設(shè)計(jì)中涉及的模塊數(shù)量比較多,考慮到多任務(wù)執(zhí)行效率的問(wèn)題,故可以對(duì)其進(jìn)行UCOSⅢ系統(tǒng)移植。所謂系統(tǒng)移植,就是指在處理器上可以讓UCOSⅢ運(yùn)行。為了移植起來(lái)更加方便,UCOSⅢ的大部分代碼都使用C語(yǔ)言編寫(xiě),重點(diǎn)需要用C語(yǔ)言和匯編語(yǔ)言來(lái)編寫(xiě)一些與處理器連接的代碼。
3 智能導(dǎo)航
目前,導(dǎo)航智能普遍仍停留在計(jì)算智能與感知智能上,即通常利用現(xiàn)有定位系統(tǒng)或已有三維地圖數(shù)據(jù),系統(tǒng)必須基于這些信息通過(guò)一定算法計(jì)算出優(yōu)化后的路徑。但如果水文監(jiān)測(cè)船行駛在缺乏上述信號(hào)的復(fù)雜野外環(huán)境以及對(duì)抗性強(qiáng)的環(huán)境下,現(xiàn)有導(dǎo)航系統(tǒng)就難以發(fā)揮作用,因此迫切需要研發(fā)智能導(dǎo)航系統(tǒng)。智能導(dǎo)航控制系統(tǒng)結(jié)構(gòu)如圖2所示。
路徑規(guī)劃算法研究是船模導(dǎo)航系統(tǒng)研發(fā)不可或缺的一部分。目前較為常用的路徑規(guī)劃算法,如Dijkstra算法、蟻群算法、遺傳算法、人工勢(shì)場(chǎng)法等,由于它們或多或少存在一些不足,尤其是一些智能算法目前的理論研究并不完善,所以實(shí)際應(yīng)用的方法大多數(shù)是基于上述基本算法的改進(jìn)或者多種基本算法的融合。
在智能導(dǎo)航系統(tǒng)設(shè)計(jì)中,可采用智能避障專家系統(tǒng),即通過(guò)水文監(jiān)測(cè)船航行經(jīng)驗(yàn)和規(guī)則的搜集、整理以及概念化和形式化處理,再輔以模糊技術(shù)、神經(jīng)網(wǎng)絡(luò)技術(shù)等專家系統(tǒng)技術(shù),對(duì)航行中遇到的各種情況進(jìn)行分析判斷,給出合理的避障方案,保證航行安全。
機(jī)器智能通常分為3類,即計(jì)算智能、感知智能與認(rèn)知智能。認(rèn)知智能是機(jī)器與人類智能最為接近的高級(jí)智能。在定位信號(hào)缺失的情況下,認(rèn)知智能可以使水文監(jiān)測(cè)船的智能導(dǎo)航系統(tǒng)像人腦一樣進(jìn)行理解與思考,即通過(guò)快速識(shí)別周圍水域環(huán)境自動(dòng)規(guī)劃最優(yōu)路徑,其是未來(lái)智能導(dǎo)航的發(fā)展趨勢(shì)。但目前智能導(dǎo)航在認(rèn)知智能方面普遍存在瓶頸,認(rèn)知智能技術(shù)一旦得到突破,將為智能導(dǎo)航領(lǐng)域帶來(lái)重大變革。谷歌DeepMind團(tuán)隊(duì)參與提出的人工智能空間自導(dǎo)航能力即是認(rèn)知智能的一種突破,將其應(yīng)用于水文監(jiān)測(cè)船的智能導(dǎo)航系統(tǒng),將有效改善導(dǎo)航系統(tǒng)中的智能程度[3]。
4 結(jié)語(yǔ)
本文針對(duì)如今的水文監(jiān)測(cè)形勢(shì),提出了一款可以適用于復(fù)雜水域環(huán)境監(jiān)測(cè)的“雙模式”小型水文監(jiān)測(cè)船設(shè)計(jì)方案,對(duì)船模整體的遙控子系統(tǒng)、動(dòng)力子系統(tǒng)、導(dǎo)航子系統(tǒng)、監(jiān)測(cè)子系統(tǒng)和預(yù)警子系統(tǒng)的硬件選型和軟件設(shè)計(jì)思路進(jìn)行了總結(jié)。本文設(shè)計(jì)的小型水文監(jiān)測(cè)船實(shí)用性很強(qiáng),可大范圍推廣,有著良好的市場(chǎng)前景。相信隨著人工智能理論和應(yīng)用技術(shù)的深入發(fā)展,水文監(jiān)測(cè)船的智能導(dǎo)航系統(tǒng)研發(fā)還會(huì)取得突破性進(jìn)展,在實(shí)際應(yīng)用效果上將會(huì)有“質(zhì)”的提升。
[參考文獻(xiàn)]
[1] 李世林.水文監(jiān)測(cè)遙控船控制及監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].沈陽(yáng):沈陽(yáng)工業(yè)大學(xué),2018.
[2] 肖維明.基于PHP+MySQL的網(wǎng)站開(kāi)發(fā)[J].物流工程與管理,2009,31(6):90-92.
[3] 劉峰.AI技術(shù)在智能導(dǎo)航中的智能化模式研究[J].軟件導(dǎo)刊,2018,17(9):40-42.
收稿日期:2020-05-06
作者簡(jiǎn)介:靳曉東(1998—),男,河北人,研究方向:智能科學(xué)與技術(shù)。