【果树农药喷洒机器人】Part8:果树对靶变量喷药实验
📢:博客主页 【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载注明出处
📢:如果你也对机器人、人工智能等方面感兴趣,看来我们志同道合✨
文章目录
- 一、引言
- 二、果树对靶变量喷药实验
- 2.1实验准备
- 2.2实验步骤
- 2.3实验结果与分析
- 总结
一、引言
对靶不变量喷药指视觉系统识别出树冠后对其喷药,而不将树冠间隙作为喷施对象,为间歇性喷药模式,有别于连续喷药对非靶标和靶标均进行的无差别喷药模式。对靶变量喷药指在识别出树冠并计算出体积后变量调控施药量,不同于仅识别但不变量控制的对靶喷药模式。为便于阅读,声明下文所指的“对靶喷药”为“对靶不变量喷药”的简称;“变量喷药”为“对靶变量喷药”的简称。
二、果树对靶变量喷药实验
2.1实验准备
实验目的:为验证本文所设计的变量喷药系统在果树喷药过程表现的病虫害防治效果与节药率,本节以仿真柑橘树为喷施对象,开展了果树对靶变量喷药实验。
实验工具:果树喷药机器人、水敏试纸、曲别针、雾滴沉积分析软件、风速测量仪、温湿度测量仪、软皮尺。
实验地点:室内柑橘园场景。
实验时气象:整个实验中平均风速、温度和空气湿度分别为0.12m/s、19.5℃和33.4%。
2.2实验步骤
步骤1:选择采样植株。为验证喷药系统能根据不同的树冠体积调整施药量,由于果园内的环境限制,实验对象较难满足实验需要。因此,为便于实验和评估所设计的变量喷药系统性能,本章采用两棵体积有明显差距的仿真柑橘树作为实验对象,并以序号命名,依次标记为仿真树1、树2,如图5-4所示。由于仿真树是通过可拆卸的树枝插入主干组装而成的,因此树枝可根据实验需要进行插拔,从而改变树冠体积;其次,两棵仿真树的间距也可调整,便于实验的调整,设置株距为1.9m。两棵仿真柑橘树经过测量得出树冠的参数如表5-3所示。
步骤2:布置水敏试纸。为准确判断变量喷药效果,设计了喷雾沉积等数据的收集方案。将所选树冠分为上、中、下三层,在被喷雾一侧的六个方位(上、下、左、右、前、中)上各布置一张水敏试纸(35 mm×55 mm),并用曲别针将其夹紧在叶片的上表面。布置示意图如图55所示,树冠上、中、下各布置了5、4、5张试纸,共14个采样点,并根据位置依次对试纸进行编号。此外,y轴方向为果树喷药机器人的行驶方向,并且仅朝着贴有水敏试纸的一侧喷药,因此背面的农药沉着量较少,故不对树冠背面设置采样点。
步骤3:控制机器人喷药。喷药实验实施的流程如图5-6所示,实验时用纯净水代替药液并装满药箱,喷雾压力设定为0.4MPa。使用遥控器远程控制所设计的履带式果树喷药机器人从起始位置以正常的作业速度(约0.15m/s)匀速经过植株,行驶距离为3m。分别控制进行连续喷药、对靶喷药以及变量喷药,并且均为单边喷药(实验果树一侧),对靶喷药模式下PWM占空比设定为100%,与连续喷药的相同。每种喷药方式实验重复3次,每次实验记录对每棵树的施药量。
步骤4:收集和分析水敏试纸。每次喷药实验完成后,以防汗渍污染试纸,导致产生的斑点影响实验数据,需穿戴一次性医用手套收集各个采样点的水敏试纸。试纸经过晾干后放入自封袋中,并根据喷药模式和采样点的位置在袋上标注相应信息,如所图5-7展示的已分类并装在自封袋内的水敏试纸。
待收集完所有的水敏试纸后,将其逐一扫描成灰度图像(600像 × 600像素、PNG格式),最后使用重庆六六山下有限公司研发的雾滴分析软件进行测定,并记录雾滴覆盖率、沉积密度等各项喷雾效果检测指标,示例结果如图5-8所示。其中,沉积密度是指水敏试纸上单位面积内的液滴颗粒数,单位为滴/cm2;覆盖率是指水敏纸上雾滴沉积面积与水敏纸总面积的比值,反映了雾滴在水敏纸上沉积量,单位为百分比。
2.3实验结果与分析
本节通过对靶喷药与连续喷药的对比实验,分析第3章所设计的实例分割模型MSEU R-CNN检测树冠的算法实时性与准确率对喷药控制的影响,依据两种喷药模式下对每棵树的施药量的差异进行评判;另外,通过变量喷药与对靶喷药的比较实验,以评估所设计的变量喷药系统根据树冠体积,实现调控施药量的可行性、喷药防治病虫害的效果以及省药率等性能;同时也为了检测第4章所提出的视觉探测法在实际变量喷药中所体现的体积检测精度。因此,以上性能依据对比三种喷药模式下对每棵树的施药量以及反映病虫害防治效果的喷雾效果检测指标进行评估。
(1)病虫害防治效果的评估
为评价连续喷药、对靶喷药以及变量喷药的雾化沉积效果是否起到防治病虫害的作用,根据水敏试纸上的雾滴沉积分布等数据进行分析,利用Origin软件生成两棵橘树冠层的六个位置在三种喷药模式下的性能对比结果,其雾滴覆盖率均值、沉积密度均值条形图分别如图5-9和图5-10所示。
针对雾滴覆盖率的分析。雾滴覆盖率是指农药雾化后在水敏纸上的沉积量,该值越高,反映了单位时间喷施的农药量越多。根据我国农业部发布的相关质量标准,规定风送式果园雾化机械喷药作业时的雾滴覆盖率不低于33%。由图5-9可知,连续喷药和对靶喷药模式下,各个位置的雾滴覆盖率均超过50%,最大为71.5%。
相比连续喷药和对靶喷药,果树喷药机器人在变量喷药模式下对2棵树冠上所有位置处产生的雾滴覆盖率均明显下降,其中树冠1冠层中部位置的雾滴覆盖率较低,分析原因是由于冠层枝叶茂密,外层枝叶抵挡了大量药液的沉积。但变量喷药模式下的大多位置上雾滴覆盖率都超过33%,树1和树2的平均覆盖率分别达到了34.7%、43.3%,均达到了防治要求。对比两棵树在变量喷药模式下各水敏试纸检测点上的雾滴覆盖率可知,雾滴覆盖率也普遍大于树1,表明由于树2相比树1冠层体积更大,因此喷洒在树2的农药相对更多。上述实验结果表明,变量喷药系统在实验中表现了较好的雾滴覆盖效果,系统能根据冠层体积的不同对喷药流速进行对应地调节,在体积更小的冠层树叶上留下更少的农药,因此变量喷药系统降低了冠层内雾滴覆盖率和提高了农药利用率。
针对雾滴沉积密度的分析。雾滴沉积密度越大,在植物叶面上的作用点越多,说明药液的分布越广泛。依据《农药喷雾机(器)田间操作规程及喷洒质量 评定》可知,若要有效防治果树的病虫害,规定常量喷药的雾滴沉积密度不小于30滴/cm2。图5-10的结果表明,三种喷药模式下的任意监测点雾滴沉积点密度均大于30滴/cm2,因此喷雾效果均满足果园虫害防治要求。但连续喷药模式下,在六个位置产生的沉积密度多数处于120~150滴/cm2,远远大于最小雾滴沉积密度标准,会造成较多的雾滴相互重叠,对防治药效提升并不明显,因此属于严重的过量喷药。
对靶喷药模式下,由于设定在检测出树冠后保持100%的PWM占空比,因此与连续喷药的沉积密度不相上下。而变量喷药模式下,橘树1和橘树2的最大雾滴沉积密度约为76滴/cm2和91滴/cm2,远低于连续喷药的沉积密度。上述实验结果表明,所研发的变量喷药系统在满足病虫害有效防治要求的基础上,表现出较为精准的对靶变量喷药效果。
省药率的评估
为进一步探究变量喷药系统的省药效果,通过对每棵树的施药量差异程度进行评判。启动机器人对两株仿真柑橘树进行喷药,根据喷施前后药箱中的刻度变化,求出并记录三种喷药模式下的农药量消耗情况,每种模式下重复三次并求平均值,结果如表5-4所示。
通过表5-4观察对靶喷药和连续喷药模式的平均施药量可知,对靶喷药模式相比于连续喷药模式,省药36.72%。原因分析:由于两棵仿真橘树的株距为1.9米,故果树之间存在较大的空隙。根据对靶喷药的原理可知,果树喷药机器人在经过非靶标区域时,对靶喷药模式只对树冠喷施农药,在识别不到目标果树情况下,PWM占空比为0,因此变量喷药系统在此过程中一直处于关闭状态。相反,连续喷药无法区分靶标与非靶标区域,对非靶标区域同样进行喷施,导致施药量浪费过多。实验结果验证了所构建的MSEU R-CNN实例分割模型在机器人检测树冠时,表现出的实时性与准确率具有一定的可行性。
对比变量喷药和对靶喷药模式的平均施药量可知,变量喷药模式相比对靶喷药、连续喷药模式分别节约用药40.74%、62.50%。原因分析:对靶喷药作为开关式喷药模式,仅有全开和关闭两种状态,在非靶标区域处于关闭状态,从而节省了药量,但全开状态下的PWM为100%,对两棵树不进行喷头流速调节,该状态等同于连续喷药,因此对靶喷药相比连续喷药仅节约了非靶标区域的用药。变量喷药模式不仅对非靶标区域不进行农药喷施,再者由于两棵仿真树的体积相差较大,树2的体积相比树1明显更大,冠层更加茂密,因此系统根据树冠体积的较大差距调整了PWM占空比,对树2的平均施药量相比树1多27.89%。以上实验结果表明,所设计的变量喷药系统基于视觉探测法能准确测量树冠体积,并给出相应的占空比,相比对靶喷药节省了不少施药量,进而验证了该变量喷药系统实际作业的有效性。
总结
本章首先搭建了静态变量喷药实验平台,通过PWM变量喷药实验确定了系统的喷药控制规律,探究变量喷药系统在0.2、0.3和0.4MPa压力下不同占空比的电磁阀流量数据,并进行线性拟合。实验结果表明,PWM占空比与喷头流量之间均呈现线性关系。再者,使用所设计的果树喷药机器人进行了三种喷药模式的综合对比实验。实验结果表明,变量喷药模式下的输出流量大小与冠层体积相匹配,可提高喷雾沉积量和沉积均匀性,在满足果园虫害防治要求的基础上提高了农药利用率。
相关文章:

【果树农药喷洒机器人】Part8:果树对靶变量喷药实验
📢:博客主页 【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉 📢:内容若有错误,敬请留言 📝指正…...
framework.beans.factory.annotation.Autowired(required=true)}
将其它项目复制过来,启动后会报错 15:24:55.880 [main] ERROR o.s.b.SpringApplication - [reportFailure,843] - Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name containerDataHandleC…...

【应用笔记】使用 CW32 实现电池备份(VBAT)功能
前言 电池备份(VBAT)功能的实现方法,一般是使用 MCU 自带的 VBAT 引脚,通过在该引脚连接钮扣电池,当系统电源因故掉电时,保持 MCU 内部备份寄存器内容和 RTC 时间信息不会丢失。 本文档介绍了如何基于 C…...

探讨uniapp的navigator 页面跳转问题
navigator 页面跳转。该组件类似HTML中的<a>组件,但只能跳转本地页面。目标页面必须在pages.json中注册。 "tabBar": {"color": "#7A7E83","selectedColor": "#3cc51f","borderStyle": "bl…...
使用Epoll实现高效的多路I/O转接
文章目录 概述1. 理解Epoll机制2. Epoll的三个主要函数3. 基于Epoll实现多路I/O转接4. 总结 概述 在网络编程中,高效地处理大量并发连接是提升系统性能的关键。传统的多线程或多进程模型在这种情况下可能会导致资源消耗过大,而Epoll(事件驱动…...

流程挖掘in汽车丨宝马的流程效能提升实例
汽车行业在未来10年里,可能会面临比过去50年更多的变化。电动化、智能化、共享化和自动驾驶等方面的趋势可能给企业流程带来以下挑战: 供应链管理-电动化和智能化的发展可能导致供应链中的零部件和系统结构发生变化,企业需要重新评估和优化供…...

微信小程序实现当前页面更新上一个页面
日常项目中需要实现的一个价格脱敏功能:通过点击页面二中的查看完整信息 点击回退按钮实现页面一中的价格显露出来 通过查询了大量资料发现 大多数都是通过调用上一个接口的onload 或者onshow 实现视图更新 经测试后 发现 无法实现 只能更改数据 无法更新视图 实现…...

基于PSO-KELM的时间序列数据预测(含对比实验)
前段时间有粉丝私信想让我出一期对时间序列预测的文章,所以今天它来了。 时间序列数据,如股指价格,具有波动性、非线性和突变的特点,对于这类数据的预测往往需要可靠强健的预测模型,而传统的机器学习算法如SVM、BP等…...

线性代数(二) 矩阵及其运算
前言 行列式det(A) 其实表示的只是一个值 ∣ a b c d ∣ a d − b c \begin{vmatrix} a & b\\ c & d\end{vmatrix} ad -bc acbd ad−bc,其基本变化是基于这个值是不变。而矩阵表示的是一个数表。 定义 矩阵与线性变换的关系 即得 ( a 11 a 12…...

【图像分类】理论篇(4)图像增强opencv实现
随机旋转 随机旋转是一种图像增强技术,它通过将图像以随机角度进行旋转来增加数据的多样性,从而帮助改善模型的鲁棒性和泛化能力。这在训练深度学习模型时尤其有用,可以使模型更好地适应各种角度的输入。 原图像: 旋转后的图像&…...
Centos下的tcpdump抓包用法
先查一下是否安装, 无的话装一下 (版本低的用yum install) : rpm -qa tcpdump dnf install tcpdump 1. 列出能抓包的网卡: tcpdump -D | --list-interfaces 2. 在eth0网卡上抓来源为10.1.1.1 的包, 只抓一个包 (-n这里是不解析DNS) : tcpdump -i eth0 -n src 10.1.1.1 -…...
自然语言处理从入门到应用——LangChain:记忆(Memory)-[记忆的存储与应用]
分类目录:《自然语言处理从入门到应用》总目录 使用SQLite存储的实体记忆 我们将创建一个简单的对话链,该链使用ConversationEntityMemory,并使用SqliteEntityStore作为后端存储。使用EntitySqliteStore作为记忆entity_store属性上的参数&am…...

微服务与Nacos概述-5
引入OpenFeign 添加依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><groupId>com.alibaba.cloud</groupId>…...

第九章 动态规划part08(代码随想录)
139.单词拆分 1. 确定dp[i][j] dp数组以及下标的含义一维dp数组的递推公式 dp[i] : 字符串长度为i的话,dp[i]为true,表示可以单词能被在字典中出现的单词组成。 dp[s.size()] true; 说明可以利用字典中出现的单词拼接出 s 。 2. 一维dp数组的递推公式…...
智能家居(1)---工厂模式实现灯光控制(继电器组)以及火灾报警模组的封装
采用工厂模式以面向对象的方式来封装各种设备模块,方便整合项目以及后期的维护和扩展 mainPro.c(主函数) #include <stdio.h> #include "controlDevice.h"struct Devices *pdeviceHead NULL; //设备工厂链…...

kubernetes的存储卷使用
目录 一、为什么使用存储卷 二、emptyDir存储卷 1.概念 2.创建Pod emptyDir 3. 验证emptyDir存储卷 三、hostPath存储卷 1.概念 2.创建Pod hostPath 3.验证hostPath存储卷 三、nfs共享存储卷 1.概念 2.安装nfs,配置nfs服务 3.创建Pod 4.验证nfs存储卷 一、…...
centos 之安装 openssl 1.1.1报错
源码make时报错,可能是系统的perl的版本太低问题。 [rootlocalhost ~]# cpan -a | grep Test::More Test::More 0.92 1.302171 EXODIST/Test-Simple-1.302171.tar.gz [rootlocalhost ~]# cpan -a | grep Text::Template [rootlocalhost ~]# …...

matlab使用教程(16)—图论中图的定义与修改
1.修改现有图的节点和边 此示例演示如何使用 addedge 、 rmedge 、 addnode 、 rmnode 、 findedge 、 findnode 及 subgraph 函数访问和修改 graph 或 digraph 对象中的节点和/或边。 1.1 添加节点 创建一个包含四个节点和四条边的图。s 和 t 中的对应元素用于指定每条…...

【C++面向对象】--- 继承 的奥秘(下篇)
个人主页:平行线也会相交💪 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【C之路】💌 本专栏旨在记录C的学习路线,望对大家有所帮助🙇 希望我们一起努力、成长&…...

Android 面试笔记整理-Binder机制
作者:浪人笔记 面试可能会问到的问题 从IPC的方式问到Binder的优势为什么zygote跟其他服务进程的通讯不使用BinderBinder线程池和Binder机制 等等这些问题都是基于你对Binder的理解还有对其他IPC通讯的理解 IPC方式有多少种 传统的IPC方式有Socket、共享内存、管道…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积
1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...

C# winform教程(二)----checkbox
一、作用 提供一个用户选择或者不选的状态,这是一个可以多选的控件。 二、属性 其实功能大差不差,除了特殊的几个外,与button基本相同,所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...
数据库正常,但后端收不到数据原因及解决
从代码和日志来看,后端SQL查询确实返回了数据,但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离,并且ai辅助开发的时候,很容易出现前后端变量名不一致情况,还不报错,只是单…...
算法刷题-回溯
今天给大家分享的还是一道关于dfs回溯的问题,对于这类问题大家还是要多刷和总结,总体难度还是偏大。 对于回溯问题有几个关键点: 1.首先对于这类回溯可以节点可以随机选择的问题,要做mian函数中循环调用dfs(i&#x…...

【记录坑点问题】IDEA运行:maven-resources-production:XX: OOM: Java heap space
问题:IDEA出现maven-resources-production:operation-service: java.lang.OutOfMemoryError: Java heap space 解决方案:将编译的堆内存增加一点 位置:设置setting-》构建菜单build-》编译器Complier...

npm安装electron下载太慢,导致报错
npm安装electron下载太慢,导致报错 背景 想学习electron框架做个桌面应用,卡在了安装依赖(无语了)。。。一开始以为node版本或者npm版本太低问题,调整版本后还是报错。偶尔执行install命令后,可以开始下载…...