【果树农药喷洒机器人】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、共享内存、管道…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
