一种智能化植物修剪机器
2023-07-13余胤翔唐致凯徐威孙霁阳王钰博齐艳
余胤翔,唐致凯,徐威,孙霁阳,王钰博,齐艳
(辽宁科技大学 电子与信息工程学院,辽宁鞍山,114000)
1 研究背景
目前中国已经进入了物质丰富的经济新常态,人们在精神消费需求方面呈现出爆发式增长趋势[2]。在这种新消费价值观的影响下,家庭栽种盆栽已经成为了新的时尚风气。随着家庭盆栽需求量不断增加,盆栽花卉类植物的生产养殖规模也在不断扩大。相比于集中式的大棚养殖,人工养殖的盆栽类植物品质更高,而且养殖人员还能在植物造型上做到主观调控的效果。但人工的精细化养殖依旧存在人工成本高的问题,在这一点上,全人工的传统养殖模式不如接近于无人化的集约式大棚养殖模式。
随着人工智能技术快速发展,智能化大棚在农业中逐渐普及开来,不仅能做到光照和湿度的数据采集,还能做到自动浇水、自动控温、自动补光等操作。但大棚养殖依旧存在植物种类单一和生长造型不可控的问题。同时,如果自动化大棚对植物生长环境条件的改善效果差,甚至可能会导致植物成活率降低,从而大大增加购苗成本。基于此,我们团队研制了一种智能化植物修剪机器,它不仅能完成植物养殖的基本任务(自动浇水),还能对植物的外观形状进行修剪,同时还能收集植物的图像和生长状态信息传输到电脑上位机,达到多功能高度集成化和控制生产成本的效果。
2 整体设计方案
■2.1 功能设计
该机器本质上是一个多功能移动式植物养殖及塑型装置,该装置主要由STM32 单片机、K210 摄像头、蠕动泵、光照传感器、温湿度传感器、42 步进电机、L298N 电机驱动、直流推杆、灰度循迹模块、机械剪子手、ESP32-CAM、上位机电脑和其他机械组件组成。整体结构设计如图1 所示。
图1 整体结构示意图
该机器的移动采用的是灰度循迹。该机器通过K210 摄像头获取植物图像,再使用内嵌的神经网络模型对植物的种类进行识别。通过各个传感器收集植物的生长信息,从而获取植物的生长数据。STM32 单片机根据程序设定,即针对不同种类、不同生长状况的植物执行对应操作(适量地喷洒水、农药、营养素等)。完成上述操作后,该机器可通过两个K210 摄像头实时控制机械剪子手对植物进行裁剪塑型。另外,它也能通过图像颜色识别出枯黄的叶子进行裁剪。最后,该机器还可通过直流推杆移动盆栽的位置和生长方向,从而控制植物的生长方向。整个运行过程中,该机器会通过通信设备进行云端上报。运行流程图如图2 所示。
图2 运行流程图
■2.2 系统设计
该自动控制系统以K210 和STM32 单片机作为主控核心,用户通过LCD 触摸屏设置STM32 单片机的工作模式。STM32 单片机需要收集光湿度传感的数据,控制蠕动泵进行浇灌工作,控制推杆改变植物受光生长方向,根据划定好的轨迹控制麦轮车进行灰度循迹。K210 摄像头1 主要负责监测周围环境以及识别植物种类,对每一株植物进行拍照记录,并与STM32 单片机进行串口通信,当K210 识别到植物时,发送命令给STM32 单片机停止循迹,并发送命令给K210 摄像头2 准备工作。K210 摄像头2 主要负责操控机械剪子手对植物进行裁剪。物联网模块将收集STM32 单片机和K210 摄像头的植物生长数据和工作完成情况发送给电脑上位机。图3 为控制系统图。
图3 控制系统图
3 实现方案与核心算法
■3.1 详细设计
该机器的所有模块主要分为4 个部分:传感器、移动装置、控制模块、通信设备。
移动装置:整个装置的移动采用两种车模,可根据不同的使用场景进行更换。第一种车模采用四轮麦轮车结构,麦轮车的优点是移动灵活,通过改变四个轮子的转向和速度,可以实现全方向的移动,在平地上复杂的环境下能够灵活移动,考虑整个装置的体型,选用80mm 直径的大麦轮。第二种车模选用履带车底盘,履带车底盘承载重量更大,抓地力强,可以适应一些复杂的环境,即便在一些地形崎岖的山地也能正常行驶。
传感器:光照传感器选用了光敏电阻传感器模块;温湿度传感器选用了DHT11 型号,可测量20%~95%的湿度值(误差±5%)和0℃~50℃(误差±2%)的温度值。灰度循迹模块选用抗干扰能力较强的灰度传感器,发光源采用高亮聚光LED,灵敏度高,可根据使用场景光线条件不同调节电位器的基准电压。摄像头传感器处理芯片选用性价比较高的K210。K210 采用RISC-V 双核64 位CPU,算力达到1TOPS,远超同价位的AI 处理芯片。功耗仅为0.3W,续航能力强。
控制模块:直流推杆选用12V电压驱动的电动推杆电机,可根据不同扭矩调节速度。蠕动泵选用LFP401DB,流量最高可以达到2000ml/min。机械剪子手选用DS3218 型号的大扭力舵机和园林专用的修花枝剪组成,可以保证枝叶裁剪顺畅。
通信设备:考虑到运行过程中所需传输数据量较大,将数据传输任务分工为图像传输和普通数据传输。图像传输我们选用的是性价比较高的ESP32-CAM,烧录好代码后,只需要通过电脑浏览器打开局域网进行连接,就可以直接获取ESP32-CAM 传输的画面,可直接作为一个监控器使用。普通的数据传输,我们选用的单片机是STM32L431RCT6(小熊派),通过连接华为云进行云端上报数据,采用的通信协议是LWM2M。它可以华为云平台上直接接收到数据信息,同时还能直接从云端进行命令下发。在华为云平台的数据页面如图4 所示。
图4 云平台数据页面
■3.2 二维云台设计
为了更好地发挥K210 摄像头1 监测周围环境的功能,扩大其视野范围,我们设计了一个二维云台,主要由2 个MG995 舵机组成,如图5 所示,上面的舵机用于控制摄像头的俯仰角,下方的舵机用于控制摄像头的航向角。两个舵机均由K210 摄像头1 自主控制,二自由度的云台,基本可以完成摄像头对周围环境的监测和寻找植物的任务。
■3.3 核心算法
3.3.1 PID 算法
这里以履带车进行举例,车模的转向采用差速转向,小车循迹采用了增量式PID 控制算法,但是在单片机在实际处理中不能处理连续量,因此需要对PID 公式进行离散化。这里以离散化得出的车模左电机公式。
公式(1)中,errorL是当前误差,errorlast_L是上次误差,errorpreL是前次误差,KpL是比例系数,KiL是积分系数,KdL是微分系数,OutputL是左边电机输出的PWM 的占空比。其中误差值由灰度循迹模块收集轨道误差,电机控制采用脉冲宽度调制技术(PWM),单片机根据公式计算出PWM 的占空比,通过电机驱动直接作用于电机。
3.3.2 YOLO-V2 神经网络
神经网络在目标检测识别已经得到了广泛应用,出现了RCNN、Fast R-CNN、Faster R-CNN 和YOLO 等模型。YOLO 能够实现从端到端实时的目标检测,但是检测精度较低,YOLO-V2 在YOLO 的基础上进行改进,既能够进行实时检测,而且检测精度也得到了大幅提升[3]我们选用的K210 芯片自带卷积神经网络加速器KPU,可以极大程度上提高图像处理的速度。
我们采用官方提供的网站云端训练模型,使用的网站是https://maixhub.com/home。图6 为网站页面。
图6 MaixHub 模型训练平台
K210 使用的编译环境软件是MaixPy IDE,图7 为K210 识别植物种类代码示例。
图7 代码示例
3.3.3 大津法二值化
K210 摄像头2 在观测整个盆栽的形状时,为了减少周围环境的干扰和提高图像处理速度,我们不使用RGB565彩色图像,而是使用灰度图像。
我们采用全局阈值法的OTSU 法来实现图像二值化,它的思想是求出图像的最佳门限阈值,该阈值将整个图像分割成黑色和白色两部分,使得这两块部分的类间方差取得最大值,同时类内方差值达到最小[4]。设置t 为二值化阈值,我们需要用到两个公式。其一用来计算图像所有像素的平均灰度u,公式为:
其中,w0 是前景像素在整个图像总像素的比例,u0 是前景像素的平均灰度值,w1 是背景像素在整个图像总像素的比例,u1 是背景像素的平均灰度值。其二用来计算类间方差,公式为:
我们对t 的取值计算从最小灰度一直到最大灰度值在程序中进行遍历,t 的某值使我们得到的类间方差最大时,我们就得到了二值化阈值t。最后,我们对图像进行了二值化处理。图8 为图像处理前后的变化。
图8 彩图-灰度图-二值化图像
为了得到效果更好的二值化图像,我们加了一个整体滤波函数来去除单一的噪点。当我们检测到一个黑色像素点周边全白时,我们使其变成白色像素点,或者一个白色像素点周边全黑时,我们使其变成黑色像素点,符合则同化。图9为图像滤波前后变化效果。
图9 图像滤波除噪点
获得处理好的二值化图像后,单片机对图像进行分割,分为植物和花盆两个部分,并将其在屏幕中显示便于观察,如图10 所示,我们对植物部分用黑色方框进行框选,花盆部分用红色线条包围。
图10 图像框选
框选植物使用的框的形状为程序中设定的植物塑造的形状,这里以矩形进行举例,超出矩形框选的部分就是机器需要裁剪的部分,记为裁剪块,在程序计算中,裁剪块面积的参考计算值以超出部分的黑色像素点数量作为标准。同时,记录下不同裁剪块的中心坐标在图像中的x 坐标和y 坐标。将不同裁剪块的中心坐标值反馈给K210 摄像头2(机械剪子手上的摄像头),之后K210 摄像头2 操控机械剪子手根据裁剪块的坐标点进行裁剪工作。
3.3.4 机械臂姿态解算
我们选取的机械臂是由6 个mg995 舵机和机械组件构成,考虑到利用运动学逆解等计算较为复杂,我们采用计算量较小的几何法进行机械臂的姿态解算[5]。其中,剪子上的1 号舵机只控制剪子的开合,2 号舵机根据裁剪块(裁剪的枝叶)所在根部情况对剪子进行适当旋转,6 号舵机主要控制机械剪子手底座旋转,当初始图像及坐标确定后,6 号舵机进行锁死角度,因此,3 个舵机不纳入计算,我们仅针对3、4、5 号舵机进行解析。计算模型如图11 所示。
图11 机械臂简图
在图中,我们已经知道了P 点x 和y 坐标,将图中3个舵机在x 轴方向和y 轴方向之间的距离进行叠加得到。
式中,1l、l2、l3为3、4、5 号舵机的长度。根据上式计算可得:
我们引入j和k为已知量,令:
式(16)就是我们需要的求根公式,其中:
由此求出 3θ的角度值,4θ和 5θ同理计算。得到了3、4、5 号舵机的角度值。根据计算出的角度值,给舵机输入对应的PWM 信号,如图12 所示。
图12 舵机输出角和PWM 对应关系
图13 实物图
4 运行测试结果
■4.1 数据显示
图14 为LCD 屏幕显示参数,单片机收集的温湿度和光照信息在屏幕上进行显示。
图14 LCD 屏幕显示数据
在调试PID 参数的过程中,观测波形能大大提高调参的效率。调试使用软件是ANO_TC 匿名科创地面站v4.34,这里截取了一张机器在循迹过程中测算出的路径误差波形,如图15 所示。
图15 上位机波形
图16为K210摄像头收集神经网络模型训练的数据集,对植物的特征点进行采集。
■4.2 模型精度
考虑到需要在识别精度和处理速度之间进行取舍,每次训练使用的数据集和权重比均有不同。表1 记录了K210 识别效果相对比较好的几次数据,最后,选取识别精度平均值最高的第三组模型作为该机器开展之后工作的模型。
表1 训练模型识别率数据汇总
5 结语
本文搭建了智能化植物修剪机器,并完成了各个任务的调试。该机器不仅能够对盆栽植物进行自动喷灌,还能对植物的形状进行修剪,还能修剪植物的枯枝烂叶,还能让植物可控向光生长,并且能做到远程实时监测。使用的YOLO-V2 神经网络模型,基本可以做到识别正确。图像传输和数据传输也非常稳定,该机器在智慧农业领域具有非常好的实用价值和较为广阔的市场前景。