基于遍歷算法的智能湖泊環(huán)境監(jiān)測(cè)及凈化裝置*
基金項(xiàng)目:遼寧省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目
本文引用地址:http://2s4d.com/article/202307/448451.htm湖泊作為陸地水圈的組成部分,參與自然界的水分循環(huán)[1]。湖泊具有凈化水質(zhì),減少環(huán)境污染的作用。無(wú)人船(USV) 是一種可以無(wú)需遙控,借助精確衛(wèi)星定位和自身傳感即可按照預(yù)設(shè)任務(wù)在水面航行的全自動(dòng)水面機(jī)器人。經(jīng)過(guò)一番改造便可以實(shí)現(xiàn)水上垃圾回收,目前市面上的產(chǎn)品大多數(shù)應(yīng)用在寬闊的水域,如海洋,河流等。其收集方式為完全隨機(jī),只具備一定的垃圾收集功能,超出視野之外的便無(wú)法進(jìn)行收集,面臨著遍歷程度不高,算法不完善等問(wèn)題。由于湖泊與海洋的應(yīng)用場(chǎng)景不同,湖泊大多數(shù)為靜態(tài)水,而海洋則為動(dòng)態(tài)。所以一款針對(duì)于湖泊水上垃圾清理和水質(zhì)檢測(cè)的裝置有較為廣闊的發(fā)展前景。
1 設(shè)計(jì)思路與方案
1.1 裝置結(jié)構(gòu)與組成
該裝置名為智能湖泊環(huán)境監(jiān)測(cè)及凈化裝置,機(jī)械結(jié)構(gòu)本質(zhì)上為兩個(gè)船體,1 個(gè)垃圾籃,二維云臺(tái),2 個(gè)驅(qū)動(dòng)船體的螺旋槳和防水草裝置,3 個(gè)投放治理水質(zhì)藥物的裝置,如圖1。
圖1 機(jī)械結(jié)構(gòu)圖
1.2 基本功能
1)湖泊完全遍歷收集漂浮垃圾
將該裝置放入湖泊中,可以先調(diào)節(jié)垃圾籃的高度,方便后續(xù)垃圾收集。首先通過(guò)超聲波模塊監(jiān)測(cè)船到岸邊的距離,逆時(shí)針圍繞湖邊1 圈,同時(shí)間隔一定的時(shí)間記錄當(dāng)前GPS 坐標(biāo)并記錄在經(jīng)緯度坐標(biāo)系中,然后轉(zhuǎn)化為柵格地圖的坐標(biāo)并連線,構(gòu)建柵格地圖,每一個(gè)柵格中都了保存其中心點(diǎn)的坐標(biāo)信息和是否存在障礙物。裝置根據(jù)柵格地圖從起點(diǎn)進(jìn)行往復(fù)式遍歷,在遍歷的過(guò)程中,采用攝像頭實(shí)時(shí)識(shí)別漂浮垃圾,進(jìn)行漂浮垃圾的收集功能。
2)監(jiān)測(cè)水質(zhì)狀態(tài)并投放藥物進(jìn)行改善
在裝置遍歷的過(guò)程中,每經(jīng)過(guò)1 個(gè)柵格,進(jìn)行1 次水質(zhì)信息的采集,等完全遍歷每一個(gè)柵格之后,求出各個(gè)數(shù)值的平均值,并與初始設(shè)定的水質(zhì)正常數(shù)值進(jìn)行比對(duì),然后投放定量的藥物,從而達(dá)到改善水質(zhì)的功能。
3)遠(yuǎn)程監(jiān)控湖泊狀態(tài)
該裝置進(jìn)行過(guò)程中,會(huì)統(tǒng)計(jì)收集的垃圾種類(lèi)和數(shù)量,當(dāng)前水質(zhì)狀況,投放藥物情況,并將這些信息通過(guò)5G模塊發(fā)送給上位機(jī),方便管理人員查看。
圖2 運(yùn)行流程圖
2 實(shí)現(xiàn)方案與核心算法
2.1 柵格地圖構(gòu)建
裝置圍繞湖泊1 圈之后,通過(guò)記錄的GPS 坐標(biāo)構(gòu)建出湖泊的二維坐標(biāo)系,對(duì)其單位柵格化,連線并進(jìn)行直線邊緣化,填充邊界,得到柵格化后的圖像。對(duì)于后續(xù)的垃圾收集和水質(zhì)檢測(cè),柵格地圖的構(gòu)建將起到?jīng)Q定性的作用。
柵格大小的選取需要考慮如下問(wèn)題[2]:
1)船體的大??;
2)攝像頭的視野范圍;
3)MCU 的運(yùn)算和儲(chǔ)存能力。
2.2 全局路徑規(guī)劃
路徑規(guī)劃分為全局和局部路徑規(guī)劃[3],往復(fù)式完全遍歷便是全局路徑規(guī)劃,確定裝置在水上的可行路徑。在實(shí)際的運(yùn)行過(guò)程中,運(yùn)行的軌跡應(yīng)當(dāng)與障礙物保持一定的距離,從而確保裝置能夠正常通行而不發(fā)生碰撞,所以在MATLAB 仿真時(shí)需要膨脹邊界,目的是增加障礙物與路徑之間的距離,確保仿真與實(shí)際情況相似。圖像為某一湖泊的俯視圖,經(jīng)過(guò)二值化和柵格化的處理。如圖3,左側(cè)為處理后的地圖,右側(cè)為軌跡圖。黑色部分為陸地,灰色部分為膨脹部分,白色部分則為湖泊。在路徑規(guī)劃處理過(guò)程中,灰色與黑色都視為障礙物,白色為可通行水域,紅色為運(yùn)行的軌跡,箭頭代表方向。
圖3 MATLAB仿真運(yùn)行圖
往復(fù)式完全遍歷路徑的算法使用深度優(yōu)先搜索算法(DFS)來(lái)遍歷整個(gè)地圖,并返回遍歷路徑。在函數(shù)內(nèi)部,首先獲取地圖的大小并初始化遍歷狀態(tài)矩陣和遍歷路徑。然后使用兩層循環(huán)遍歷整個(gè)地圖,如果當(dāng)前位置可以通過(guò)而且未被遍歷,則將其標(biāo)記為已遍歷并添加到遍歷路徑中,并調(diào)用DFS 函數(shù)繼續(xù)進(jìn)行深度優(yōu)先搜索。DFS 函數(shù)使用當(dāng)前位置的坐標(biāo)作為輸入,并搜索當(dāng)前位置的相鄰位置。如果相鄰位置可以通過(guò)且未被遍歷,則將其標(biāo)記為已遍歷并添加到遍歷路徑中,并繼續(xù)調(diào)用DFS 函數(shù)進(jìn)行深度優(yōu)先搜索。
本裝置利用兩個(gè)螺旋槳產(chǎn)生速度差,來(lái)達(dá)到方向偏轉(zhuǎn)的效果。由于得知了裝置的運(yùn)行軌跡,通過(guò)實(shí)際的位置坐標(biāo)和下一個(gè)目標(biāo)的位置坐標(biāo)便可以得到偏航角和距離,從而達(dá)到裝置沿著完全遍歷的路徑行進(jìn)的目的。
2.3 水上垃圾目標(biāo)檢測(cè)
目標(biāo)檢測(cè)算法大致分為兩類(lèi):“兩階段”和“一階段”方法?!皟呻A段”是指檢測(cè)和識(shí)別兩個(gè)階段。代表算法有RCNN、Fast-RCNN 等。而“一階段”是基于回歸的,直接回歸物體的類(lèi)別概率和位置坐標(biāo)值[4]。代表算法有YOLO 系列和SSD 系列算法等。本裝置采用YOLOV3模型,使用K210 攝像頭。具體步驟分為兩步:
1)YOLOV3 模型訓(xùn)練
由于K210 上識(shí)別照片的格式為240x240,所以需要預(yù)先對(duì)訓(xùn)練的照片進(jìn)行格式轉(zhuǎn)化,之后使用VOTT 軟件進(jìn)行標(biāo)注。本地訓(xùn)練環(huán)境為Mx-yolov3,訓(xùn)練完成后,需要將其轉(zhuǎn)換成K210 適配的Kmodel 文件。
2)部署到K210
打開(kāi)Kfl ash, 用數(shù)據(jù)線將電腦和K210 連接,將固件和Kmodel 文件燒錄到開(kāi)發(fā)板中,燒錄的過(guò)程中,其燒錄時(shí)地址不能一樣,Kmodel 文件使用0x300000。
下面選取某一水面測(cè)試訓(xùn)練的模型,如圖4。
圖4 K210測(cè)試圖
2.4 局部路徑規(guī)劃
局部路徑規(guī)劃的目的是收集當(dāng)前柵格內(nèi)的垃圾。主要思路是進(jìn)入當(dāng)前柵格,對(duì)垃圾進(jìn)行目標(biāo)監(jiān)測(cè),并得到垃圾的位置坐標(biāo),如有多個(gè)垃圾,則需要局部路徑規(guī)劃,但考慮到攝像頭視野之內(nèi)的垃圾可能在當(dāng)前柵格之外,如果不中斷的話,則會(huì)導(dǎo)致其前往下一個(gè)柵格,進(jìn)而導(dǎo)致遍歷重復(fù)度高,所以需要一些中止措施。如果船體GPS 定位如果偏離柵格一定距離,或拾取垃圾數(shù)量超過(guò)五個(gè),則中斷局部路徑規(guī)劃,去往下一個(gè)柵格繼續(xù)進(jìn)行全局路徑規(guī)劃。
本方案的局部路徑規(guī)劃采取一種叫做Multi-Direction Fast Marching(MDFM)的方法,它可以同時(shí)對(duì)多個(gè)目標(biāo)點(diǎn)兩兩之間進(jìn)行路徑規(guī)劃,并結(jié)合遺傳算法規(guī)劃出遍歷所有目標(biāo)點(diǎn)的最短路徑[5]。此方法的基本思想是,將所有目標(biāo)點(diǎn)作為起點(diǎn),分別計(jì)算出到達(dá)其他目標(biāo)點(diǎn)的最短距離和方向,然后將這些信息存儲(chǔ)在矩陣中。再使用遺傳算法對(duì)矩陣進(jìn)行優(yōu)化,找到一條能夠覆蓋所有目標(biāo)點(diǎn)并且總距離最小的路徑。這種方法的優(yōu)點(diǎn)是,它可以有效地處理多個(gè)目標(biāo)點(diǎn)之間的相互影響,避免了重復(fù)計(jì)算和冗余路徑,提高了路徑規(guī)劃的效率和質(zhì)量。
2.5 水質(zhì)監(jiān)測(cè)及治理
1)檢測(cè)部分
本裝置搭載水質(zhì)檢測(cè)模塊,能夠檢測(cè)水質(zhì)的pH 值,電導(dǎo)率,溫度等信息。檢測(cè)功能在全局路徑規(guī)劃時(shí)運(yùn)行,每到達(dá)一個(gè)柵格就采集1 次,最終求得平均值,避免局部誤差的干擾,使得數(shù)據(jù)更可靠。
2)投放器
其內(nèi)部的螺旋結(jié)構(gòu)可以將顆粒物投放出來(lái),結(jié)構(gòu)簡(jiǎn)單且不易被卡住。本裝置搭載3 個(gè)投放器,方便操作者自定義藥品或魚(yú)餌。而且可以將投放情況發(fā)送到上位機(jī),方便后期的查看管理。
3 結(jié)果測(cè)試
3.1 裝置遍歷情況測(cè)試
將裝置放于湖泊的某點(diǎn),首先自動(dòng)確定湖泊的范圍,然后開(kāi)始遍歷湖泊,并在途中拾取垃圾。根據(jù)返回的坐標(biāo)點(diǎn),導(dǎo)入到MATLAB 畫(huà)出實(shí)際軌跡圖,如圖5。
圖5 實(shí)際軌跡圖
由此圖像可以看出裝置能夠正常完成全局和局部路徑規(guī)劃,并且能避開(kāi)障礙物。
3.2 水質(zhì)信息數(shù)據(jù)測(cè)試
本次測(cè)試主要采集了湖泊電導(dǎo)率的數(shù)值,其中部分信息通過(guò)柱狀圖展示出來(lái),如圖6。
圖6 部分柵格電導(dǎo)率數(shù)據(jù)
4 結(jié)束語(yǔ)
本文介紹了一款基于遍歷算法的智能湖泊環(huán)境監(jiān)測(cè)及凈化裝置,其能夠自主完成路徑規(guī)劃且完整的遍歷湖泊的每一個(gè)水域,在遍歷過(guò)程中還能夠?qū)崿F(xiàn)自主垃圾拾取和水質(zhì)信息采集,同時(shí)將數(shù)據(jù)通過(guò)4G 通信模塊發(fā)送給上位機(jī),方便管理人員查看和后期的進(jìn)一步改善措施。相較于傳統(tǒng)的遍歷無(wú)人船,提出了全局和局部遍歷的方法,其遍歷程度更高,其在封閉的水域,將有著更好的效果。此裝置將會(huì)極大的減少人力成本,有廣闊的應(yīng)用前景。
參考文獻(xiàn):
[1] 汪敬忠,吳敬祿,曾海鰲,等.內(nèi)蒙古主要湖泊水資源及其變化分析[J].干旱區(qū)研究,2015,32(1):7-14.
[2] 程啟忠.無(wú)人船完全遍歷路徑規(guī)劃的研究[D].重慶:重慶郵電大學(xué),2019.
[3] 李治軍,林熾杰,李峰.一種多AGV調(diào)度裝置及其全局規(guī)劃與局部規(guī)劃融合方法[P].黑龍江省:CN112987721B,2022-12-13.
[4] 朱仕寧,胡曉斌,彭太樂(lè).基于改進(jìn)YOLOv3的道路目標(biāo)檢測(cè)[J].江漢大學(xué)學(xué)報(bào)(自然科學(xué)版),2023,51(1):89-96.
[5] 于暉,王永驥.基于Fast Marching方法的多目標(biāo)點(diǎn)路徑規(guī)劃的研究[J].計(jì)算技術(shù)與自動(dòng)化,2015,34(3):11-15.
(本文來(lái)源于《電子產(chǎn)品世界》雜志2023年6月期)
評(píng)論