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