基于遍历算法的智能湖泊环境监测及净化装置*
基金项目:辽宁省大学生创新创业训练计划项目
本文引用地址:http://www.amcfsurvey.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 水上垃圾目标检测
目标检测算法大致分为两类:“两阶段”和“一阶段”方法。“两阶段”是指检测和识别两个阶段。代表算法有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月期)
评论