【果树农药喷洒机器人】Part1:研究现状分析以及技术路线介绍
本专栏介绍:付费专栏,持续更新机器人实战项目,欢迎各位订阅关注。
关注我,带你了解更多关于机器人、嵌入式、人工智能等方面的优质文章!
文章目录
- 一、项目背景
- 二、国内外研究现状
- 2.1 国内研究现状
- 2.2 国外研究现状
- 三、研究内容
- 四、技术路线图
一、项目背景
我国自古以来都是农业大国,目前已成为世界上最大的水果产业国,水果种植面积和产量均居世界第一。果园产量的高低与植保手段有着密切关系,且大面积的果园植保得益于农药的广泛使用。据统计,我国每年用于病虫害防治而消耗的农药量占全球农药使用总量的35%。然而,我国单位面积农药的平均用量比世界平均用量高2.5-5倍,农药利用率竟不足30%,过量使用反而导致农民中毒、环境污染等危害事件频发。相比之下,日本、美国等农业发达国家的农药利用率已达到了50~60%的高水平,差距显著。
目前,国内外对果园病虫害防治的主要喷药手段分为人工喷药、人机喷药与机器人智能喷药,作业方式分别如图1-1所示。在我国的果园病虫害防治措施中,前两种的传统喷药方式占据主导地位,其效率较低、人力成本高、人体接触农药时间长、危害性大。而农业发达国家逐渐淘汰了此类喷施模式,大力研发并推广使用如图1-1(c)所示的智能化果树喷药机器人,农户远程即可控制机器人高效喷药,实现了人体与农药的分离,对人体几乎无危害,且大大节省了劳动力。而农药利用率的提高在于智能化喷药机器人搭载了变量喷药系统,可根据果树生物特征参数调控施药量,实现按需喷药。精准变量喷药的实现离不开两大关键技术:靶标探测技术与变量喷雾控制技术,前者通过各类传感器检测果树并获取树冠体积、叶面积密度等生物参数,为变量喷药提供数据支持,后者为调控施药量的控制方式。
综上所述,我国的果园喷药机器人在农药精准喷施方面的发展仍存在一定的不足,使用先进、高效的智能化植保机器人已成为农业现代化发展的必然选择,这对提高农药利用率,保护生态环境具有十分重要的意义。为此,本文设计基于机器视觉的农药变量喷施控制系统,以提高果树喷药机器人的农药喷施效率和利用率。
二、国内外研究现状
2.1 国内研究现状
在农田和大棚中,人工喷施农药不仅费时费力,而且对人体健康有不良影响,过量喷药对环境也造成了极大的污染,有效的解决方案是使用机械化设备和机器人代替人工完成自动化喷药操作。然而,资料显示我国丘陵山区果园植保机械化的覆盖率仅为7.5%,平原果园为15%,表明我国果树喷药机器人的总体覆盖率并不高,发展水平偏低。在已应用的植保机械中,大中型移动式喷药机器人的药液存储量大、喷雾效率高,适用于种植密度相对稀疏、地面平坦的果园中。如窦汉杰等在拖拉机的基础上增设变量喷雾控制系统,设计出WG-1200A型果园风送喷药机,相比常量喷药,该款喷药机变量喷药的药液节约率超过60%,所设计的喷药机如图1-2所示。
为提高果树喷药机器人精准作业的性能,李龙龙等研制了一款基于激光雷达的仿形变量喷雾机。闫成功等研制的葡萄园背负式风送喷药机器人,所搭载的喷洒系统通过测量喷雾机行驶速度和采用双目相机,实现了对葡萄叶冠层体积的实时探测,根据冠层体积来调整电磁阀通断的占空比以实现药液的变量喷雾,变量喷雾模式下节省超过50%的用药量,喷雾机结构示意图如图1-3所示。
2.2 国外研究现状
此外,欧美等农业发达国家也十分重视植保机器人对农业环境的改善作用,其果园自动机械化水平较高,果园喷施机械种类多样。如图1-5(a)所示,2022年,韩国的Seol等开发的智能喷药机器人,喷雾系统配备了一个300L的农药罐、计算平台和带有8个喷头的喷杆,平台两侧各安装了一个深度摄像头,数据在计算平台和摄像头之间传输。图1-5(b)为2015年,伊朗的Maghsoudi等研究的原型喷雾机器人,它能够实时、连续地提供与果树冠层体积相适应的施肥量,通过变量技术,农药使用量减少了约34.5%。2019年,意大利的Cantelli等研制了一种针对温室番茄研发的农药自动喷雾机器人,如图1-5(c)所示,该款机器人搭载了智能喷雾管理系统,可完成自主导航和喷雾操作。2015年,美国的Palleja等研发用于葡萄园和苹果园的喷雾机,通过组合多个超声波传感器形成阵列,实现对果树冠层密度的实时估算,为喷洒系统提供数据支持,如图1-5(d)所示。
综上所述,当前我国果园植保机械设备相对落后,主要以大型植保机械为主,并且多数在拖拉机的基础上进行改造,体型庞大且需要驾驶员操控,增加了人力成本。相对于欧、美等农业发达国家来说,我国农药使用量更高、农药利用效率显著偏低,容易对环境造成严重污染以及对施药者产生人身伤害。虽然部分丘陵山区果园植保采用无人机作业,但其局限性也较明显,存在雾滴扰流、喷雾不均、果树冠层底部不易附着以及操控较难等问题。为有效提高施药效率和适用性,各国仍以地面植保机械研发为主,并将靶标探测技术和变量喷施控制技术等先进智慧农业技术应用其中,使果树精准喷药机器人朝着无人化、智能化方向持续发展。
三、研究内容
目前,我国的地表喷雾植保机器人的发展水平相比国外的农业发达国家还存在一定的差距,精准变量喷药技术还有待进一步研究和提升。为此,本文首先在考察果园的实地情况和分析国内外研究现状的基础上,制定了果树喷药机器人的总体方案。其次,将当下发展迅速的计算机视觉技术,用于果树冠层图像的识别、定位和分割上,以期解决靶标识定位问题;采用新型深度相机感知果园环境,获取真实空间和二位图像间的比例换算关系,估算果树冠层的特征参数,以期解决果树靶标探测问题;变量喷施控制系统采用主流的PWM控制方式,根据每株树冠的生物参数信息做出合理的药量决策。最后,通过远程遥控智能变量喷药机器人在室外完成实际喷药性能测试。本文以柑橘树作为主要的实验对象,制定了如下的具体研究内容:
(1)通过实地考察柑橘园的地形以及果树的种植情况,对比分析国内外有关研究现状得出系统的总体设计要求,确定地面喷药机器人的整体设计方案,以此选购合适型号和尺寸的机器人底盘。
(2)深入研究基于深度相机和实例分割模型的果树冠层探测技术,采用Mask R-CNN实例分割模型对三种生长周期的柑橘树进行视觉检测和分割,并通过替换主干网络和掩膜分支进行算法优化,以提高分割精度与检测的准确率。
(3)基于视觉分割树冠的基础上,结合深度相机扫描树冠获取与树冠间的实际距离信息,可计算出每个分割掩膜像素点代表的实际长度,进而估算出整株树冠的真实体积,并与人工测量法进行比较,分析视觉方法探测树冠体积的精度。
(4)相比变压力以及变浓度调节式,PWM有着更好的动态响应特性和流量调节性能,因此确定其为喷药控制系统的控制方式。根据喷药要求,选购下位机、喷头、喷药泵等关键部件型号,通过合理布置电路、水路以及确定喷头的喷雾角度和垂直分布间距,搭建出整体的变量喷药控制实验平台,经过PWM变量喷药测试,确定电磁阀的通断频率、喷药压力等因素跟药液流量之间的关系。
(5)在完成机器人底盘选型、视觉感知系统以及变量喷药控制系统的设计后,搭建出本文的果树变量喷药机器人,并通过对比分析三种喷药模式下的雾滴沉积密度以及覆盖率等评价指标,测试机器人对仿真柑橘树的喷施效果。其次,在保证病虫害防治效果的基础上,得出变量喷药模式的节药率。
四、技术路线图
根据所要研究的内容,制定整体的技术路线,如图所示。
相关文章:

【果树农药喷洒机器人】Part1:研究现状分析以及技术路线介绍
本专栏介绍:付费专栏,持续更新机器人实战项目,欢迎各位订阅关注。 关注我,带你了解更多关于机器人、嵌入式、人工智能等方面的优质文章! 文章目录 一、项目背景二、国内外研究现状2.1 国内研究现状2.2 国外研究现状 三…...
QT-QTablewidget 设置选中某一行
要在 QTableWidget 中设置选中的行,可以使用 setCurrentItem() 函数来设置当前的 QTableWidgetItem。你可以通过调用 QTableWidget 的 item() 函数获得指定行和列的 QTableWidgetItem,然后通过将其传递给 setCurrentItem() 函数来设置选中的行。 下面是…...
[shell] 删除指定文件状态变更之前的文件及文件夹示例
参考文件 Linux查找某个指定时间要求的文件 脚本示例 #!/bin/bash# 删除指定时间之前文件,单位:分钟 ago75# 监控路径,必须使用使用绝对路径,防止意外删除重要文件 monitoring_path"/home/dev/test/test" # 使用find命令查找75分…...
代码中 isEmpty 和 isBlank 的区别
isEmpty系列 StringUtils.isEmpty() 是否为空. 可以看到 " " 空格是会绕过这种空判断,因为是一个空格,并不是严格的空值,会导致 isEmpty(" ")false tringUtils.isEmpty(null) true StringUtils.isEmpty("") true StringUtils.isEmpty(" …...

为什么要选择文件传输软件?有哪些最佳高速文件传输软件?
是否经历过这样的场景,正在努力地完成工作任务,但是由于制作的数据无法及时传送给合作伙伴,工作流程被打断了?这听起来很令人沮丧,对吧?可是,这种情况在现实中并不罕见。 因此,需要…...

aardio + customPlus 显示图片演示
看效果: 上代码: import win.ui; /*DSG{{*/ var winform win.form(text"aardio customPlus 显示图片演示 by 光庆";right927;bottom607) winform.add( button{cls"button";text"下一页";left664;top536;right794;bott…...

收集到大量的名片怎么转为excel?
来百度APP畅享高清图片 参加完展会或集体会议,是不是收了一大堆名片,保管起来超级麻烦,还容易丢三落四?别急,我们有办法!把名片转成电子版保存到电脑上就完美啦!但要是名片数量有点多࿰…...

JAVASE---方法的使用
方法概念及使用 什么是方法(method) 方法就是一个代码片段. 类似于 C 语言中的 "函数"。方法存在的意义(不要背, 重在体会): 1. 是能够模块化的组织代码(当代码规模比较复杂的时候)。 2. 做到代码被重复使用, 一份代码可以在多个位置使用。 3. 让代码更好理解更简单…...
CryptoJS.lib.WordArray.create、CryptoJS.enc.Base64介绍
1、CryptoJS.lib.WordArray.create:它是 CryptoJS 库中的一个方法,用于创建 WordArray 对象。WordArray 对象是 CryptoJS 库中用于处理二进制数据的基本数据类型。它通常用于表示加密算法的输入和输出。 2、CryptoJS.enc.Base64:它是 CryptoJ…...
linux 配置java环境变量
单个用户 vim ~/.bashrc 或者 vim ~/.bash_profile全局用户 vim /etc/profileexport JAVA_HOME/path/to/java export PATH$JAVA_HOME/bin:$PATH立即生效使用 source 命令 source ~/.bashrc source /etc/profilejava -version...

Mybatis异常Invalid bound statement (not found)原因之Mapper文件配置不匹配
模拟登录操作 $.post("/admin/login", {aname, pwd }, rt > {if (rt.code 200) {location.href "manager/index.html";return;}alert(rt.msg)});网页提示服务器代码错误 POST http://localhost:8888/admin/login 500后端显示无法找到Mapper中对应的…...

SAP中采购文档出现定价转换因子字段溢出是何原因?
近期处理了一笔用户反馈的主题问题。这个问题有意思的地方在于,多重错误的叠加,导致了问题在开始就暴露出来,可以将隐患消除在萌芽状态。 在公司的应用中,会由采购创建价格合同,物流参照价格合同创建计划协议。但采购…...

Linux6.33 Kubernetes kubectl详解
文章目录 计算机系统5G云计算第三章 LINUX Kubernetes kubectl详解一、陈述式资源管理方法1.基本信息查看2.项目的生命周期:创建-->发布-->更新-->回滚-->删除 二、声明式管理方法 计算机系统 5G云计算 第三章 LINUX Kubernetes kubectl详解 一、陈述…...
小程序uni-select溢出文字处理方式
<uni-data-select v-model="customFormData.limitedBy" :localdata="cancelWays" @change="change"></uni-data-select>溢出效果如下图...
【MacOS】mac OS 安装HP 打印机驱动 hp laserjet m1213nf mfp
先确认一下机器复印是否正常.确认一下打印机的硬件. 如果复印没问题 1. 下载v5.1集合包Hewlett-Packard 打印机驱动程序 v5.1.1 (OS X) (中国) 2. 苹果商城中,下载Pacifist,运行Pacifist,用Pacifist程序打开v5.1并安装 3. 电脑--系统偏好设置--打印…...
【搜索】DFS剪枝与优化
算法提高课笔记 目录 小猫爬山题意思路代码 数独题意思路代码 木棒题意思路代码 生日蛋糕题意思路代码 剪枝是什么意思呢? 我们知道,不管是内部搜索还是外部搜索,都可以形成一棵搜索树,如果将搜索树全部遍历一遍,效率…...

dfs之卒的遍历
题面 题目描述 在一张nm 的棋盘上(如 6 行 7 列)的最左上角(1,1) 的位置有一个卒。该卒只能向下或者向右走,且卒采取的策略是先向下,下边走到头就向右,请问从(1,1) 点走到 (n,m) 点可以怎样走,输出这些走法…...
Springboot整合activiti5,达梦数据库,mybatis中间件
Springboot整合activiti5,达梦数据库,mybatis中间件 问题现象解决方案 问题现象 由于工作流引擎不支持达梦数据库以及国产中间件,所以我们引入的时候会报错,这个时候就需要去改造代码和配置文件。各种文档和资料查找一天…...

使用Python + Flask搭建web服务
示例脚本 from flask import Flask# 获取一个实例对象 app Flask(__name__)# 1、注册 app.route(/reg, methods[get]) def reg():return {code: 200,msg: reg ok!}# 2、登录 app.route(/login, methods[get]) def login():return login ok!if __name__ __main__:…...
Winform 打开文件夹、文件、拖拽上传
参考原文:https://blog.csdn.net/u012543266/article/details/21834073 1、打开文件 private void button1_Click(object sender, EventArgs e){OpenFileDialog dialog new OpenFileDialog();dialog.Multiselect true;//该值确定是否可以选择多个文件dialog.Titl…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

MySQL体系架构解析(三):MySQL目录与启动配置全解析
MySQL中的目录和文件 bin目录 在 MySQL 的安装目录下有一个特别重要的 bin 目录,这个目录下存放着许多可执行文件。与其他系统的可执行文件类似,这些可执行文件都是与服务器和客户端程序相关的。 启动MySQL服务器程序 在 UNIX 系统中,用…...
从零手写Java版本的LSM Tree (一):LSM Tree 概述
🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...