于丰华 周传琦 杨 鑫 郭忠辉 陈春玲
(1.沈阳农业大学信息与电气工程学院, 沈阳 110866; 2.辽宁省农业信息化工程技术研究中心, 沈阳 110866)
设施农业是典型的劳动密集型产业,即使在设施农业领域拥有高度自动化作业的发达国家,其作物采摘环节仍依赖大量人工来完成[1-2]。人工采摘费时费力,实现温室自动化采摘已成为当下设施农业发展的主要需求。
随着电子信息技术、人工智能技术、图像识别技术的逐渐成熟,日本、荷兰、英国、法国、美国等从20世纪80年代中期就开展了采摘机器人研究,采摘对象包括苹果、芦笋、草莓、葡萄、甘蓝、黄瓜、番茄、蘑菇等。
而我国对于农业采摘机器人的研究较晚,且目前仍处于起步阶段[3]。王顺沩等[4]设计了一款通过震动使果梗分离、通过仿雨伞机构收集果实的采摘机械臂。但此机械臂会由于果梗柔韧性过大而发生漏采现象,且在收集过程中无法避免果实间的碰撞,这将严重影响采摘覆盖率与果实品质。马廷辉[5]设计了四自由度机械手,采用空间坐标转换进行运动学分析,实现了强适应能力草莓采摘机器人的研制,但自由度限制了机械臂灵活度[6]。邵堃[7]通过将采摘机器人的机械臂扩展到五自由度,在9个不同高度和不同方向的目标点采摘中,最大距离偏差仅为6.71 mm。但其采用的履带式底盘由于行驶速度慢、需要大量的转向空间等问题,无法在日光温室内运行。此外,汤亚东[8]通过双目视觉、机械臂运动仿真等构建了番茄采摘机器人样机,并完成了复杂环境下的番茄采摘测试,但因其刚性抓手的使用导致无伤采摘成功率仅为76.3%。王晓楠等[9]通过使用真空吸附装置、柔性气囊装置、旋拧电机等,实现了番茄的无伤采摘。但是由于枝干、叶片等会对识别系统产生干扰,从而导致机器人的采摘精准度下降。刘芳等[10]运用改进型多尺度YOLO算法,从不同角度、不同光照强度等环境下对番茄进行训练识别。朱明秀[11]基于K-means聚类算法,配合卷积神经网络与双目视觉技术,实现了采摘机器人的水果检测与定位。胡慧明[12]使用双目视觉技术,为采摘机器人获取了果蔬的三维坐标,为温室环境下的果蔬机器人采摘奠定了基础。
本研究以北方日光温室中的番茄为采摘对象,设计并制作一款适用于日光温室、可以巡检并识别采摘成熟番茄果实的移动机器人。
采摘机器人系统分为底盘四轮驱动系统、采摘系统、可升降平台系统、图像识别系统和风机系统。其中底盘驱动系统包括4个麦克纳姆轮及其驱动电机、底盘悬挂结构和底部巡线摄像头等。采摘系统包括柔性手爪和滑轨型机械臂。可升降上平台系统包括驱动电机及上平台铝板,并附有机械臂滑轨和图像识别系统、风机系统等安装支架。
目前,日光温室内机器人常用的作业方式有:地面自由移动式、悬挂导轨移动式、地面导轨移动式等。鉴于日光温室需要对光能的直接性利用[13],安装悬挂导轨会占用大量日光温室内的上层空间,这将严重影响日光温室的透光率,导致对光能利用率下降;地面导轨的安装占用温室内大量种植面积,影响土地利用率,且不利于后期大棚改造升级。故本研究采用了麦克纳姆轮地面导轨移动式机器人作业方式。麦克纳姆轮四驱移动平台相对于传统转向机构移动平台更加灵活,通过控制各个轮系的转速和方向即可组合出任意方向的移动[14],可以在狭窄的温室内不改变自身状态完成采摘任务。
日光温室内的番茄主要采用架棚、作床的培育模式,列式分布、垂直生长种植方式。番茄果实纵向生长于植株上。故底盘的设计综合考虑了以上因素,采用摆式悬挂结构,此结构可以增加机器人的地形适应能力,保证机器人行驶时底盘的贴地性,提升了行驶时底盘的稳定性与控制精确度[15]。日光温室番茄栽培模式如图1所示。
图1 番茄栽培模式Fig.1 Patterns of tomato cultivation
采摘机器人工作时,机械爪的作用是抓紧果实以便进行果梗分离[16-17],考虑到成熟番茄果实表皮的力学特性[18],机器人采摘机构采用柔性手爪,柔性手爪由注塑工艺的橡胶材质制作。该柔性手爪采用三指抓取,由42步进电机驱动,手爪动作部分长95 mm,夹取直径为10~120 mm,抓取频率小于40次/min,相邻两指(可动)间距H1长8~100 mm,柔性手爪总长H2为152.5 mm,驱动器安装部分高度H3为40 mm,其结构图如图2所示。
图2 柔性手爪结构图Fig.2 Structure diagram of flexible gripper
此外,在抓手的内壁还贴有如图3所示的薄膜压力传感器,控制器可以通过与之连接的AD转换电路[19]获得抓手内部的压力数据,进一步精准控制番茄的采摘力度,从而防止番茄因发生机械损伤而导致的皱缩、品质降低、快速腐烂[20]等。薄膜压力传感器的响应时间小于1 ms,形变恢复时间小于15 ms,可以在-20~60℃的环境中工作。测试中随机读取25次柔性手爪采摘番茄时的压力传感器数据,绘制曲线如图4所示。
图3 柔性手爪实物图Fig.3 Physical picture of flexible gripper1.薄膜压力传感器 2.抓手柔性手指 3.抓手驱动电机
图4 采摘番茄的手爪压力变化曲线Fig.4 Claw pressure change curves for picking tomatoes
为了使机械臂摘取番茄更为灵活[21],支撑手爪的机械臂采用6自由度设计。其中单个关节舵机在8.4 V标准工作电压下的扭力为52 kg/cm,机械臂底座直径L1为110 mm,底座高L2为81.5 mm,机械臂第1段关节长L3为105 mm,第2段关节长L4为77.5 mm,第3段关节长L5为58 mm,整体活动半径为513 mm。且经过分析与讨论黄国伟等[22]关于番茄果实与茎秆分离力的研究,确定了旋拧摘下的采摘方案,并设计了可以连续旋转180°的末端关节。由此,在采摘动作方案的设计时便可使机械手在0°时深入番茄植株中,在抓取稳定后的0.8 s内,末端关节快速旋转180°,使番茄梗与茎秆呈远离90°角的方向受力,以实现使用最小的力使果实与茎秆分离。手爪采摘示意图如图5所示。
图5 采摘示意图Fig.5 Picking diagram1.柔性手爪 2.番茄 3.番茄果梗 4.手爪旋转方向
生长过程中,番茄果实位置并不固定,成熟番茄果实容易被四周枝叶所遮挡,导致摄像头无法准确判断甚至无法识别出成熟的番茄。因此,在上平台添加了带有二自由度云台的风力补偿装置,其装置结构简图如图6a所示。机器人在垄道间巡检过程中,风力装置向机器人的预识别区域吹风,枝叶被吹开后,即可使枝叶后面的成熟果实暴露于摄像头视角下,实现被遮挡果实的识别。
考虑到番茄并不是处于固定高度,故设计时采用Z轴(垂直于地平面的方向)升降结构,升降结构采用丝杆控制,通过电机转动带动上平台的升降,即可实现对不同高度番茄的采摘。且相对于机器人,番茄生长的深度(番茄果实与垄间中线水平距离)不同,故在机器人上平台上安装一由丝杆控制的可水平移动的X轴(水平面内垂直于机器人行进方向)滑轨结构。控制器通过深度相机等传感器获取番茄深度数据后,将自身坐标与机械臂坐标通过
AR=RB
式中A——机器人视觉坐标系
R——视觉坐标系与机械臂坐标系转换矩阵
B——机器人机械臂坐标系
换算,计算得出相较于丝杆平台中心位置的番茄深度数据,通过丝杆驱动电机与测距传感器负反馈调节的配合,使机械臂运动到正确的位置后,手爪再深入抓取番茄果实。X、Z轴驱动结构简图如图6a、6b所示。其中X、Z轴结构设计参数如表1所示。
表1 底盘升降平台结构硬件参数Tab.1 Hardware parameters of chassis lifting platform structure
图6 番茄采摘机器人结构图Fig.6 Pictures of tomato picking robot1.滑块 2、19.测距传感器 3.机械臂底座 4、15、26.机械臂 5、23.果篮 6.摄像头支架 7、28.摄像头 8、16.丝杆 9、18.步进电机 10.风扇 11、14、22.机器人底盘上平台 12.二自由度云台 13.机器人底盘下平台 17.车轮 20.麦克纳姆轮 21.摆式悬挂底盘 24.水平导轨 25.风机 27.柔性手爪 29.升降驱动轴 30.巡线相机
图7 上平台坐标系示意图Fig.7 Schematics of upper platform coordinate system1.机械手爪 2.风机 3.二自由度云台 4.水平导轨 5.可升降上平台 6.摄像头
设偏移矩阵
Δ=[dxdyd]T
则
(1)
且易知
OArm=Ocam-Δ
(2)
式中dx——偏移矩阵中相机坐标原点与机械臂坐标原点在X轴方向的距离
dy——偏移矩阵中相机坐标原点与机械臂坐标原点在Y轴方向的距离
d——偏移矩阵中相机坐标原点与机械臂坐标原点在Z轴方向的距离
Yx——实际测量相机坐标原点与机械臂坐标原点在X轴方向的距离
Yy——实际测量相机坐标原点与小车原点在Y轴方向的距离
Yz——实际测量相机坐标原点与机械臂坐标原点在Z轴方向的距离
Δz——实际测量小车原点与运动中的机械臂坐标原点在Z轴方向的距离
采用图漾FM810-HD型深度相机,配合Raspberry Pi 4B使用。此外,在相机和机器人上平台连接处采用减震球连接,这样可以使相机在底盘遇到震动时保持平稳,减少番茄位置信息的误报,提升采摘准确度。摄像头摆放位置如图6a所示。
番茄识别主要由基于RGB图像的目标检测以及图像数据处理两部分构成。获取到的RGB图像经过R-FCN目标检测网络,计算出番茄所在的矩形框,然后将深度信息与目标检测产生的二维信息融合,最终计算出番茄的点云中心位置。整体算法流程图如图8所示。
图8 图像算法流程图Fig.8 Flowchart of image algorithm
R-FCN卷积神经网络主要由网络卷积神经网络ResNet101、RPN网络、ROI pooling层以及最后的投票决策层构成,其结构如图9所示。图像输入之后,经过卷积层ResNet进行特征提取后传给区域建议网络RPN,经过计算之后生成候选区,将候选区加入位置特征,之后进入池化层和分类层,从而得到番茄的具体位置。R-FCN算法主要采用ResNet网络和RPN区域建议网络来进行训练,ResNet的具体结构如表2所示,RPN区域建议网络的结构由512个卷积核为3×3、边界填充为1、滑动步长为1的卷积核组成的卷积层。R-FCN处理速度在大量试验中比Faster RCNN更快[26-28]。
表2 ResNet结构参数Tab.2 ResNet structure parameters
图9 R-FCN卷积神经网络结构图Fig.9 Structure diagram of R-FCN convolutional neural network
首先将预先拍摄好的番茄图像标注后,按4∶1分为训练集与测试集输入R-FCN目标检测网络训练模型,并转换为NCNN(腾讯开源的移动端神经网络模型)轻量级神经网络框架,部署在Raspberry Pi 4B中。通过双目红外RGB深度相机获取图像,以相机为坐标系构建点云地图,将三维点云信息经过多平面分割、聚类等算法过滤,再将三维点云信息反投影到二维坐标,并与检测到的番茄关键帧对应的二维信息匹配,从而得到目标番茄对应的三维包围框,计算三维包围框的中心,作为番茄的中心点。图10为番茄识别结果。
图10 番茄识别结果Fig.10 Tomato identification results
传统的采摘机器人多自由度机械臂运动采用微分插补法[29]、坐标逆运动学分析[30]等,通过摄像头等传感器得到目标的坐标、朝向角等信息。控制器通过采集到的数据解算出各个关节的转角,再通过控制器的脉宽调制技术产生控制信号驱动机械臂旋转,把末端执行器以正确的角度送达指定位置以完成采摘任务。但是由于番茄等作物的生长方式较为固定,即由于重力作用,均向地心方向生长。所以如图11所示的机械臂模型的末端执行器所连接的关节DE始终保持与地面平行即可,即末端执行器倾角α始终为0°。则机械臂进行逆运动学分析的过程中α便可直接作为已知条件代入,大大减轻了控制器的运算强度。此外,由于考虑到机械臂过长,关节B所承受力的问题,系统在设计过程中将BC臂与水平面的夹角β3固定为45°,其他关节不做限制。经过理论分析满足
图11 采摘机械臂关节结构简图Fig.11 Schematic of joint structure of picking manipulator
(3)
式中δ——上平台滑轨可移动距离
D——大棚内供机器人行驶的垄间距
β4——机械臂第2段关节与第1段关节夹角
β5——机械臂第3段关节与第2段关节夹角
在β3与α都已知的情况下,对于执行器将运动到的番茄目标点坐标信息(Xtmo,Ytmo,Ztmo),通过机械臂逆运动学解算分析与化简,将番茄相对于机械臂原点OArm的高度信息分为4个阶段
y1≤L3sinβ3-L4cosβ3
(4)
L3sinβ3-L4cosβ3 (5) L3sinβ3-L4cosβ3 (6) L3sinβ3+L4≤y4 (7) 式中y1、y2、y3、y4——第1~4阶段高度 由此得番茄果实在不同高度段下的深度信息为 (8) 机械臂各关节转角为 (9) (10) 且易知,机械手末端坐标即为番茄坐标,故 XArm=Xtmo (11) YArm=Ytmo (12) 最终将机械臂逆运动学计算过程与式(1)、(2)和式(4)~(12)写入控制器中,机器人即可根据摄像头识别到的番茄坐标信息完成采摘动作。 试验于2021年4月在沈阳农业大学后山科研基地21—22号日光温室中进行。温室长60 m,宽10 m,温室内种植28行番茄,行与行垄间距1.2 m,番茄植株平均高度1.9 m,番茄在植株上的分布范围为0.6~1.5 m,垄道间铺有防止土壤水分蒸发的塑料布。 首先将温室地面铺设成如图12所示效果,将机器人放置于正确位置,将果蔬收集筐置于机器人上平台后,系统开机运行。 图12 温室内定位胶带布线效果图Fig.12 Effect diagram of positioning tape wiring in greenhouse1.番茄种植区 2.机器人行驶区 3.定位线 4.机器人 5.日光温室 机器人巡检过程中记录每次采摘状态、采摘效果等;在单次测试完成后导出每次相机识别坐标与机械臂关节运动角度等;随机抽取当天所采番茄约20颗,在室内无光照(约26℃)环境下观察其表皮褐变情况与果实腐烂程度,并与人工采摘番茄对比。试验现场如图13所示。 图13 试验现场Fig.13 Field experiment diagram1.果篮 2.升降平台 3.滑轨 4.定位线 5.风机 6.摄像头 7.机械臂 8.柔性手爪 番茄采摘机器人试验数据如表3所示。控制器芯片导出数据经整理得采摘过程部分坐标信息如表4所示。经1~28 d观察与统计,番茄的表皮褐变与腐烂情况如表5所示。 表3 机器人采摘效果数据Tab.3 Data sheet of robot picking effect 表4 采摘过程信息数据Tab.4 Picking process information data mm 表5 番茄状态数据Tab.5 Tomato state data 综上所述,通过机器与人工采摘果实质量对比可知:采摘机器人在一定程度上不会对果实产生较大损伤,其产生的损伤也在可接受范围内。此外,尽管机械手爪与定位坐标仅有2 cm以内的误差,但是在测试过程中如图14a所示的采摘偏差仍不可忽略,图14b所示未完全采摘状况也尚未解决。 图14 不良采摘状况Fig.14 Bad picking condition 经分析可知系统误差主要来源于摄像头所在上平面未与地面保持水平,导致摄像头与机械臂的坐标系与真实环境坐标系具有一定的旋转角度差异,从而导致采摘误差。此外,由于预先设计机械臂时没有考虑到结构强度与弹性变形,导致机器人工作一段时间后,机械臂第2关节发生了变形,从而导致采摘不精准。还有部分番茄果梗韧性较大,机械手爪旋转不足以将其摘下,从而导致采摘成功率较低。 (1)设计并制作了一种可以在日光温室内自动巡检并采摘成熟番茄果实的移动机器人。机器人采用贴有薄膜压力传感器的柔性机械手爪。 (2)在手眼坐标系始终相同的前提下进行机械臂逆解、定位,控制的实时性得到了有效的提高。风力补偿装置对提高被枝叶遮挡番茄的识别有积极作用。3 试验与结果分析
3.1 试验方法
3.2 试验结果
3.3 误差分析
4 结论