ICRA 2024:北京工业大学马楠教授联合中科原动力公司推出番茄采摘自主机器人AHPPEBot,实现32.46秒快速准确采摘

当前,农业生产正深受劳动力短缺困扰,这一现状对生产规模的进一步拓展构成了严重制约。为了突破这一瓶颈,实施自动化已成为提升农业生产力的关键途径,这也使得机器人采收技术备受关注。

在这里插入图片描述

现今的机器人采收系统普遍采用先进感知方法,并结合精密收获程序来完成作业。具体而言,它们借助监督学习技术,精准地将作物成熟度划分为可收获与不可收获两类。在检测完毕后,系统会利用分割模型捕捉目标作物的点云数据,进而拟合出球体、圆柱体等几何形状,以便更准确地定位作物的位置和姿态,从而制定出最佳的抓取策略。这一技术在草莓、苹果等多种农作物的采收过程中已展现出显著成效。

在这里插入图片描述

然而,当这些技术应用于桁架番茄等鲜食经济作物的自动化收获时,却遇到了挑战。桁架番茄的成熟度评估需更为精细,以确保其卓越的食用品质。但目前基于深度学习的二元分类方法在可解释性和可调整性上尚有不足,这无疑加大了机器人选择性采收的难度,同时也影响了采收产品的质量控制。此外,桁架番茄的采收方式有别于其他作物,直接抓取和拉拽的方式可能会损害作物或相关的农业设施。

更理想的采收方式是通过切割花梗进行采摘,然而,由于花梗细长且颜色与背景相近,这使得花梗的检测和切割点定位变得异常困难。

▍ICRA接受?AHPPEBot有何创新之处?

为应对采摘机器人在成功率和作物损害风险方面的问题,北京工业大学马楠教授团队与中科原动力韩威CEO团队合作,设计了一款名为AHPPEBot的新型机器人。

该机器人通过智能感知作物表型和姿态,对番茄串进行精准识别,并据此做出自主决策与收割动作。为了提升机器人的工作成功率、效率和操作安全性,研究团队在表型分析、姿态估计及采收系统三个核心技术领域进行深入研发并取得了显著进展。

在表型分析方面,研究团队创新性地提出了一种基于对象检测技术的自适应DBScan聚类算法。这一算法能够有效地将单个水果与其所属的番茄桁架进行匹配,进而方便地提取相关信息,包括番茄桁架的整体成熟度、果实数量以及每个果实的成熟度等详尽数据。

以下视频来源于智能交互团队

在姿态估计领域,研究团队采用了一种先进的基于深度学习的关键点检测方法。该方法能够准确估计番茄桁架的姿态,为机械臂的路径规划和运动提供有力支持,同时最大程度地减少与目标物的接触,确保采摘过程的柔顺与安全。

在采收系统方面,AHPPEBot机器人能够综合表型和姿态信息,实现对番茄桁架状态的全面感知,从而自主选择最佳的采收目标。利用姿态关键点,机器人能够策略性地规划手臂轨迹,再配合新颖设计的末端执行器,确保每次采摘都能精准而高效地完成。

该研究成果的相关论文“AHPPEBot: Autonomous Robot for Tomato Harvesting based on Phenotyping and Pose Estimation”已被2024 年 IEEE 国际机器人与自动化会议 (ICRA) 接受。论文作者为北京工业大学控制科学与工程专业2023级博士生李兴旭、北京工业大学韩义恒助理教授、北京中科原动力科技有限公司杨顺博士和郑思仪博士,通讯作者是北京工业大学智能感知与自主控制教育部工程研究中心副主任马楠教授。

接下来,一起来和机器人大讲堂深入探索这一研究成果!

▍四大主要部分!AHPPEBot的设计与制作

专为商业温室内自动化桁架番茄收获而打造的采摘机器人AHPPEBot,其核心构造可细分为四大模块,即“平台设计”、“表型分析”、“姿势估计”及“决策与运动规划”。

研究团队通过改进感知技术,优化设计末端执行器,并基于作物实际姿态对机械臂运动轨迹进行精确规划,尝试最大限度地降低不必要物理接触,从而提升视觉定位的准确性,进而显著提高机器人收获作业的成功率与操作安全性。

在这里插入图片描述

A.平台设计

AHPPEBot的硬件架构包括五个主要组件:两个RGB-D相机、一个机械臂、一个末端执行器、一个计算单元和一个移动底盘。考虑到温室内空间狭窄,研究团队选择了 SCARA机械臂,并在其末端增加了旋转电。这种配置可以简化机械臂的路径规划,同时保持灵活性。

在末端执行器的设计上,研究团队特别在其外部加装了多个钉状导向槽和精细的锯片。凹槽的尺寸根据番茄藤蔓和桁架花梗的实际宽度量身定制,这样可以确保只有花序梗能够准确贴合并被切割,有效防止藤蔓意外进入,从而大大提升操作过程的安全性。当花梗被切断后,番茄会被暂时收集在特制的网袋中,便于后续处理。

在这里插入图片描述

B.表型分析

果实的成熟度、数量和大小是评估收获时机和质量等级的关键指标。研究团队通过让机器人细致观察每个水果的状态,来准确判断整个桁架果实的成熟度和质量等级。

基于农艺学的专业标准,研究团队将果实成熟度细分为四个阶段:青熟、转熟、熟熟和全熟。同时,研究团队还根据进行实验的温室生产基地实际收获标准设定,当桁架上的末端果实至少达到转熟阶段,且其他果实均已达到成熟或更成熟的阶段时,认为整个桁架的果实已经成熟,适宜进行采收、储藏和运输。

为了更精确地评估果实成熟度,研究团队对YOLOv5模型进行了升级,为其预测部分增加了一个新分支,用于专门判断果实的成熟度。新设计的多任务YOLOv5模型的损失函数,基于原始YOLOv5损失函数的基础上进行改进。

在这里插入图片描述

该模型虽能精准检测果实,但无法显示果实与番茄桁架的关系。为了克服这一局限性,研究团队在通过计算果实与桁架的交集并集比(IOU)果实与桁架关联的基础上,还进一步引入了更先进的图像处理技术,如边缘检测和轮廓分析,以更精细地描绘果实和桁架的形状及位置关系。对果实和桁架进行匹配分组,获取桁架上果实的数量和成熟度信息。

面向在二维空间中桁架重叠导致果实归属误判的挑战,研究团队引入了三维点云聚类技术。通过深度相机或其他三维扫描设备获取的点云数据,机器人可获取果实和桁架在三维空间中的精确位置信息。

在点云处理中,为解决传统DBScan算法在处理大规模点云数据时存在的计算效率低下问题,研究团队提出了一种优化的自适应DBScan算法,该算法能够根据点云的密度和分布自动调整聚类的参数。这种自适应性不仅提高了聚类的准确性,还显著减少了计算时间。为快速估算果实体积和位置,研究团队用球形虚拟点云代表果实,这为后续路径规划和碰撞检测提供了重要依据。

C.姿势估计

为更好支持机械臂路径规划,研究团队深入研究并结合了番茄桁架的结构特点,精确定义了七个花梗关键点,这些点对于确保准确的切割操作至关重要。其中,SP位于番茄梗与主茎交界,是末端执行器的预期切割位置;CP在茎的最大曲率处,是末端执行器的传统切割点;FP是果实叶柄与花序梗的连接处。这三点对于成功收获番茄尤为关键,因此要求有极高的预测和定位精度。

但即使在注释同一番茄桁架的花柄关键点时,不同的注释器也可能产生不完全一致的结果,从而可能导致不同程度的差异,因此,研究团队采用对象关键点相似度(OKS)作为评估指标,以衡量通过计算多个人类注释者关键点与专家地面实况注释之间的标准差获得的花梗关键点(sigmas)预测的准确性。然而,实验发现,某些在整体评估中得分高的模型,在预测SP、CP等关键点时精度并不理想。为解决这一问题,研究团队手动微调了评估参数,特别提高了对SP和CP点的预测精度要求,以确保模型更符合实际收获的需求。

在技术实现上,研究团队选用了HRnet-w48模型进行花梗关键点的检测。同时,也试验了多种在COCO关键点检测数据集上表现优异的网络,如RTMPose、CID、UDP和DarkPose等,力求找到最适合需求的模型。此外,研究团队还探索了基于回归的关键点检测方法,如YOLOv8-pose,以期进一步提高关键点检测的准确性和效率。

在这里插入图片描述

D.决策和运动规划

在温室环境中,自动化收获面临着有限的操作空间与错综复杂的藤蔓所带来的挑战。为了确保自动化收获的顺利进行,研究团队在设计收割机器人时,坚守“不伤害周围环境”的原则,并以此为基础构建和优化了整个决策流程,力求“尽可能降低操作风险”。

通过将从表型分析阶段获取的番茄桁架的局部细节信息与姿势估计阶段得到的整体构型数据相融合,研究团队为每个番茄桁架对象生成独特的特征编码,并基于这些特征数据进一步筛选出最佳收获目标,同时剔除那些不成熟或品质不达标的目标,此外,位于极端生长位置或与藤蔓悬挂方向相反的番茄桁架也被排除在外,因为这些位置在收获时可能会导致机械臂与加热管相撞或与藤蔓发生缠绕,从而增加操作风险。这样的筛选过程不仅降低了事故发生的概率,还有助于提升采伐作业的整体流畅性和成功率。

在选择目标之后,机器人会根据目标的体积和姿态关键信息来规划末端执行器的移动路径。在路径规划中,研究团队初步设定了EP、TQP、MP、QP和FP等关键路径点,以确保末端执行器能够沿着平滑的轨迹移动。为了进一步提高收获的成功率,研究团队实施了碰撞检测,防止末端执行器的内壁和上边缘与番茄桁架发生碰撞。根据对番茄桁架生长方式的了解,果实通常朝着花序梗曲线的法线方向生长。如果检测到潜在的碰撞风险,研究人员会相应地调整末端执行器的路径点,使其沿着花柄曲线的法线方向移动,以避免碰撞。之后,末端执行器会按照预定的轨迹,逐渐包围住含有果实的番茄桁架主体,直至包含刀片的边缘抵达SP点。最终,通过旋转末端执行器,对其施加压力并切断花梗,从而顺利完成收获作业。

▍成功率最高可达为93.75%!多次实验验证AHPPEBot性能

由于缺乏公开的樱桃番茄数据集,研究团队从北京市海淀区的一个商业温室收集了图像数据。经专家精心手动注释后,研究团队成功构建了两个数据集。其中,Dataset-1 是专为番茄目标检测和成熟度识别而设计的,它涵盖了2,000张带有详细注释的图像,共计标注了112,000个目标。而 Dataset-2 则是为了花梗关键点检测而特别创建的,包含了1,000张图像和5,432个精确注释的主题。

在进行表型多任务建模时,研究团队采用了Yolov5m模型,并利用Dataset-1对其进行了深入的训练。为了确保模型的准确性和可靠性,我们特意指定了300张图像作为验证集。同时,研究团队还使用Dataset-2来训练多个花梗关键点预测的模型,并为此分配了150张图像作为验证集,以全面评估模型的性能。

A.表型测试

经过训练的多任务 YOLOv5m在验证集上展现出了卓越的性能,针对番茄桁架和水果的四个成熟阶段,当IOU阈值设为0.5时,达到了90.18%的mAP。为了评估整体成熟度和其他表型应用,研究团队采用了该模型与自适应DBscan方法相结合的方式。接下来,通过强化的自适应聚类算法,研究团队能够将水果与其对应的桁架进行系统的匹配,这有助于从单一的水果指标推断出整体的成熟度。

作为基准,传统方法利用有监督的二元分类模型直接评估桁架的成熟度。在由 300 个图像样本组成的验证数据集中,这两种方法都经过严格检查,结果如表 1 所示。

为了对比,研究团队还采用了传统的方法,即使用有监督的二元分类模型来直接评估桁架的成熟度,并在包含300张图像样本的验证数据集中,对这两种方法都进行了严格的测试。

在这里插入图片描述

实验数据表明,研究团队的方法在估算整个番茄桁架成熟度方面具有显著的准确性优势。不仅如此,该方法还与农艺标准高度契合,保持了出色的可解释性和可调节性。例如,如果成熟度标准发生变化,要求只有每个果实都达到或超过某个特定的成熟度阈值时,才能将番茄串视为成熟,那么传统的分类方法将需要对整个数据集的注释进行全面的重新评估和调整。而研究团队的方法则能更灵活地适应这种变化。

B.姿势估计测试

研究团队精心编制了一个包含150张图像的花梗关键点验证集,用以评估多款模型的姿态估计准确度。

从实验结果来看,当采用阈值为0.75的OKS指标进行衡量时,研究团队的方法展现出了卓越的性能,精确度高达0.7561。尽管算法在推理速度上稍显不足,但考虑到收割机器人的工作效率主要受其机械部件几秒动作周期的限制,这种速度上的微小差距相较于感知速度而言,几乎可以忽略不计。

在这里插入图片描述

另外,研究团队还注意到,基于热图的关键点预测模型在检测花梗关键点时,其表现通常优于直接回归关键点位置的模型。这一现象可能与花序梗在图像中所占的像素区域较小有关。以包含尺寸为138x438像素的番茄桁架图像的720P帧为例,其中花梗的像素宽度仅为8。在将这些图像输入到输入层为192x168的HRnet之前,花梗的像素区域得到了放大。相反,像YOLO这样采用全局计算且输入层为640x640的模型,会对花梗图像进行压缩,从而影响预测的精确度。

C.机器人采摘实验

在温室中,研究团队进行了两轮实验以评估机器人的收获性能。

首先,在受控场景下,研究团队使用基于位姿估计的收获路径规划来测试机器人的性能和末端执行器的熟练度。为确保准确评估,研究团队手动修剪了环境,仅留下一簇西红柿供机器人采摘。实验结果显示,自下而上包裹成功率为93.75%,剥离成功率为95.56%,整体收获成功率为89.58%。

在这里插入图片描述

而后,研究团队在未修剪的环境中测试了机器人的连续采集能力。机器人需自主完成前进、目标识别、评估收获可行性、执行收获及移动到下一个目标位置等动作。在多次测试中,研究团队选出了涉及15个番茄桁架运行的代表性实验。此次实验中,基于姿态估计的包裹方法成功率为93.33%,茎脱离成功率为92.86%,整体收获成功率为86.67%。

在这里插入图片描述

温室实验测试充分展现了AHPPEBot在连续收获作业中的非凡实力,其卓越的收获能力以及业界领先的收获成功率得到了有力印证。本研究不仅为农业机器人领域贡献了一种高效且稳定的自动化解决方案,更象征着农业自动化技术迈出了重要的一步。

最近更新

  1. TCP协议是安全的吗?

    2024-06-13 22:06:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-13 22:06:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-13 22:06:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-13 22:06:03       20 阅读

热门阅读

  1. Rust在前端领域有哪些应用?

    2024-06-13 22:06:03       7 阅读
  2. 用python+vue实现一个计算页面

    2024-06-13 22:06:03       8 阅读
  3. 网络:用2个IP地址描述一个连接

    2024-06-13 22:06:03       8 阅读
  4. 【无标题】

    2024-06-13 22:06:03       7 阅读
  5. vue3生命周期

    2024-06-13 22:06:03       5 阅读
  6. Qt | QTextStream 类(文本流)

    2024-06-13 22:06:03       10 阅读
  7. oppo手机精简包名列表

    2024-06-13 22:06:03       3 阅读
  8. SQL Server中的CTE和临时表优化

    2024-06-13 22:06:03       9 阅读
  9. Pipeline流水线组件

    2024-06-13 22:06:03       7 阅读
  10. 配置调整BGP网络的收敛速度方法

    2024-06-13 22:06:03       7 阅读
  11. Scikit Learn中支持单变量特征选择的SVM示例

    2024-06-13 22:06:03       8 阅读
  12. 一文入门机器学习

    2024-06-13 22:06:03       9 阅读
  13. Go AfterFunc 不触发

    2024-06-13 22:06:03       7 阅读
  14. 源码编译构建LAMP

    2024-06-13 22:06:03       8 阅读
  15. 超详细Python教程——迭代器和生成器综合例子

    2024-06-13 22:06:03       9 阅读
  16. C 运算符优先级

    2024-06-13 22:06:03       9 阅读
  17. windows执行定时任务

    2024-06-13 22:06:03       8 阅读