砂糖橘采摘机器人分拣机构设计*

2023-10-09 12:11侯义锋钱俊王梁贺杰闭耀锋
中国农机化学报 2023年9期
关键词:橙黄色砂糖舵机

侯义锋,钱俊,王梁,贺杰,闭耀锋

(1. 广西民族大学电子信息学院,南宁市,530006; 2. 梧州学院广西机器视觉与智能控制重点实验室,广西梧州,543002)

0 引言

中国是农业大国,党的十八大以来,为了消除绝对贫困,各地区针对各自地理条件进行特色化种植和养殖,其中水果的种植和发展是各个地区首选,因此水果的种植面积大大提高。广西的水果产量在2018年跃升为全国第一位,到2020年领先第二位达6 300 kt,其中柑橘产量已领先第二位省份7 000 kt。而砂糖橘是柑橘中的一个品种,汁多味甜很受欢迎,也常常被选作发展农村经济的首选种植果树,其规模化种植面积激增。在此背景下,为了提高农村收入,振兴乡村,在加强种植面积的同时,加强农业机械的自动化势在必行。

随着农业生产的现代化,为了农业增收,提高采摘效率,降低经济成本,很多学者在采摘机器人各个细节方面进行了研究:如李贇钊等[1]研究出一种适合地垄式种植模式的草莓采摘的机器人行走机构;杨延丽[2]开发了温室番茄采摘机器人系统,该番茄采摘机器人系统主要由末端执行器、机器视觉、机器人载体和控制系统构成;魏博等[3]设计了一款欠驱动式柑橘采摘末端执行器,该执行器通过三指充分抓握与偏转的融合控制,实现对不同大小及椭圆形的柑橘的稳定采摘;冯柯茹[4]建立了基于4自由度的猕猴桃采摘机器人的运动学模型和动力学模型,并以降低能耗为目的进行了采摘轨迹规划;刘校峰等[5]研究了可伸缩、定力矩、自运输式苹果高效采摘机械手;成亮等[6]设计了一种自适应多功能水果采摘装置。但是对砂糖橘采摘机器人的研究较少,基于此,本文结合前期研发[7],以自动分拣成熟砂糖橘果实为研究对象,设计一款基于机器视觉技术的成熟砂糖橘果实目标识别、检测与分拣的装置。

1 砂糖橘分类识别原理

砂糖橘(Citrus reticulate Blanco,Shatangju)果实色泽鲜艳,皮薄肉甜,汁液鲜美,深受广大消费者的喜爱。砂糖橘的果实大小不仅影响其贮藏性,而且影响果实风味,在消费市场上人们比较喜欢中果或小果[8]。而根据文献[9]和文献[10]的结果,小果和中果砂糖橘的贮藏效果较大果好,而且果实的营养与风味也好于大果。因此本文砂糖橘的分级按果实的大小进行。

1.1 砂糖橘大小识别原理

为了减少系统的计算量,提高系统的实时性,把OpenMV测砂糖橘大小做了简化处理,图1为测量砂糖橘直径近似几何示意图,左边为摄像头,右边为砂糖橘。

图1 几何示意图Fig. 1 Geometric diagram

由图1左边的摄像头里的几何关系可知

(1)

(2)

(3)

由图1右边的几何关系可得

(4)

代入式(1)可得

(5)

式中:R——砂糖橘的真实半径;

Y——摄像头中砂糖橘直径所占的像素;

a——1/2最大视角;

b——实测物体边缘与中心线的夹角;

X——固定的像素;

L——摄像头距砂糖橘的长度。

感光元件是由很多个感光点构成的,每个点就是一个像素,把每个点的像素收集整理起来,就是一幅图片。当摄像头固定安装好后,摄像头和砂糖橘间的距离就是一个定值,摄像头的视角a也就固定了,此时式(5)右边近似为一常量,设为K,即

(6)

式(5)可简化为

R=K×Y

(7)

其中K可以看作比例系数。通过实际测量一个砂糖橘半径R,将砂糖橘放入测试区,测出视觉模块中砂糖橘的像素值Y,通过式(6)可得K的值。

1.2 砂糖橘成熟度识别原理

根据参考文献[11]可知在柑橘类果实成熟的过程中,随着成熟度的增加,果皮色泽由绿色转为浅黄色,最后转为橙黄色。因此成熟度主要通过颜色识别,本系统由OpenMV获取图像,进行二值化处理,通过OpenMV IDE软件中的阈值编辑器设置LAB数值为(76, 97, 10, 30, 8, 66),则可以得到橙黄色砂糖橘的二值化图像,其中括号中的数据是L、A、B分量最小值和最大值(minL, maxL, minA, maxA, minB, maxB),L代表像素的亮度,取值范围从0~100,为纯黑色到纯白色的变化;A代表颜色范围从深绿色到深红色的变化,取值范围从-128~+127,负值代表绿色,正值代表红色;B代表从深蓝色到深黄色的范围,取值范围为-128~+127,负值代表蓝色,正值代表黄色[11-13]。

2 硬件控制电路设计

控制系统的电路主要组成部分包括:单片机模块、视觉识别模块、步进电机驱动模块、舵机模块、人机交互模块、液晶显示模块,系统总体结构如图2所示。

图2 系统总体结构图Fig. 2 Overall structure of the system

1) 单片机:此系统采用STC89C51单片机,该单片机相对来说性价比高,适用于计算量不是特别大的系统中,它具有全双工可编程串行端口,可实现8位并行数据的串行传输和接收。16位定时器/定时器T0和T1分别对应于两个8位寄存器TL0,TH0和TL1,TH1。本机构中的计算量和控制端口要求不是很高,该单片机作为该部件的控制核心已足够,其电路图如图3所示。

图3 最小系统电路图Fig. 3 Minimum system circuit diagram

2) 视觉模块:本机构采用OpenMv模块,电路图如图4所示,可以借助于该模块识别砂糖橘的颜色和大小。

图4 视觉模块电路图Fig. 4 Visual module circuit diagram

其主要是通过IDE的帧缓冲区窗口中将采集到的砂糖橘彩色图片转换为LAB色彩模型[14],再调用寻找色块函数,设置好颜色的阈值为黄色,并设置函数查找的色块像素值范围为大于等于1 000,该函数返回的是多个色块的列表,包含目标区域的坐标和长宽值。随后采用像素统计函数,得到LAB色彩空间的直方图及L、A、B分量的众数值,通过比较众数值可以判别颜色[15-16]。

由于搜寻颜色的时候采用矩形框标记出目标颜色区域,而标颜色区域的直径占的像素可以近似为该区域高和宽占像素值的均值[17-18]。则该目标颜色区域的直径像素

Y=(b[2]+b[3])/2

(8)

式中:b[2]——目标区域宽的像素值;

b[3]——目标区域高像素值。

将Y代入式(7)可得所测砂糖橘的大小[19]。

3) 传动机构:砂糖橘检测到分类的整个传动结构采用3个舵机和1个步进电机的组合,电路图如图5和图6所示,结构图如图7所示。

图5 部分舵机电路图Fig. 5 Partial steering gear circuit diagram

图6 步进电机驱动电路Fig. 6 Stepping motor drive circuit

图7 传动机构示意图Fig. 7 Schematic diagram of transmission mechanism

步进电机的作用是将采摘后待被分拣的砂糖橘传送到识别区域,经识别后通过舵机转动进行颜色和大小分拣(为了验证本文的设计适合黄色砂糖橘的分拣,设置了简单的红色、蓝色、黄色和绿色四种进行实验),1号舵机负责分拣橙黄色大果砂糖橘,2号舵机负责分拣橙黄色色中果砂糖橘,3号舵机负责分拣橙黄色小果砂糖橘3个分装区域,传送带终点则为不合格砂糖橘的分装区域。本设计中采用的舵机为MG996舵机,该舵机力矩大,有足够的力量把砂糖橘拨到对应的分拣区域。舵机有三根导线,橙色导线是信号线,红色导线是电源线,棕色导线是地线。电源线和地线用于提供直流电机和转向器内信号线所需的能量。电压通常在3.5~6 V之间。转向器内部有一个参考电压。当给定一特定的电压,通过内部伺服电压与内部参考电压进行比较,得到电压差输出。单片机通过发送0.5~2.5 ms的PWM控制舵机工作。

具体分拣步骤如下:首先设置橙黄色砂糖橘代表为已经成熟的砂糖橘,所有采摘的砂糖橘经过传送带送到识别区,经过颜色检测,如果不是符合要求的橙黄色砂糖橘,则直接认定为不符合要求的砂糖橘,所有舵机及其红外对管不工作,直接随传送带到终点的不合格分装区;如果砂糖橘颜色检测符合要求,则进行大小的分类,当检测的大小直径大于42 mm时候,该砂糖橘随传送带到达1号舵机位置,该处红外对管检测到砂糖橘则1号舵机旋转,将砂糖橘推入大果分装区;如果检测的大小直径在36.5~42 mm之间时,该砂糖橘随传送带到达2号舵机位置,该处红外对管检测到砂糖橘则2号舵机旋转,将砂糖橘推入中果分装区;如果检测的大小直径小于36.5 mm时候,该砂糖橘随传送带到达3号舵机位置,该处红外对管检测到砂糖橘则3号舵机旋转,将砂糖橘推入小果分装区。

4) 液晶显示模块:为了更加明确的显示所检测分拣的结果,本系统采用一块LCD12864作为显示器件,该液晶屏具有128×64个像素点阵,内置8 192个汉字和 128个ASCII字符集。该模块的最大优点是接口方式简单、操作指令方便,可构成 中文、数字、字符的直观界面。

3 软件设计

该系统的软件设计分为步进电机舵机、液晶显示、OpenMV识别等。其中显示部分和控制部分都采用C语言编程,编程软件为keil uvision4。识别部分采用Python语言编程,编程软件为OpenMV IDE。在电脑上编译后分别下载到单片机和OpenMV中,对砂糖橘的颜色和大小进行识别,识别后发送数据到单片机。

3.1 砂糖橘识别程序设计

整体流程如图8所示。

图8 系统软件总体流程图Fig. 8 Overall flow chart of system software

首先对砂糖橘的颜色进行识别,寻找视野中是否出现设置的色块,然后判断色块颜色,接着判断识别到的色块的大小[20],检测砂糖橘果实的颜色是否为橙黄色,如果不是,则为不合格果实,无需测试大小。如果该果实为橙黄色,则进行果实直径检测程序,分级标准为:果实直径大于42 mm为大果;果实直径在36.5~42 mm之间为中果;果实直径小于36.5 mm为小果[9],先判断果实直径是否大于42 mm,如果是,则为大果;如果不是,则判断该果实直径是否小于36.5 mm,如果成立则为小果,否则为中果。

3.2 步进电机程序设计

本设计采用的步进电机为八拍逆时针运行方式:A-AB-B-BC-C-CD-D-DA,顺时针方式则反转。八拍模式控制顺序如表1所示,根据步进电机工作原理可得步进电机正反转控制对应数组表如表2所示。

表1 步进电机八拍模式控制顺序表Tab. 1 Control sequence of eight beat mode of stepper motor

表2 步进电机正反转控制对应数组表Tab. 2 Corresponding array of stepper motor forward and reverse control

本设计采用的步进电机的参数如表3所示,该步进电机的步进角度为5.625°,即单片机给一个脉冲电机的转子旋转5.625°,而该电机采用八拍运行方式,也就是八个脉冲构成一个周期,即一个周期步进电机的转子旋转45°,旋转一周则需要8个周期。而步进电机的减速比是1∶64,即输出轴旋转一周需要512个周期。

表3 步进电机参数表Tab. 3 Parameters of stepper motor

步进电机的整个程序设计流程如图9所示。

图9 步进电机程序流程图Fig. 9 Control program of step motor

3.3 舵机程序设计流程

本设计中舵机的转动控制是单片机通过产生PWM进行控制,先设置舵机的初始角度为0°,即高电平时间为0.5 ms的PWM;舵机旋转180°,则单片机需提供高电平时间为2.5 ms的PWM。首先,程序初始化,配置定时器参数,输出PWM波,再设置对应的占空比,保证输出符合参数要求的PWM波形,通过PWM波形控制舵机转动的角度,其流程如图10所示。

图10 舵机程设计流程Fig. 10 Steering gear program

3.4 LCD12864液晶显示程序设计流程

本设计中通过LCD12864液晶用于显示分拣出的砂糖橘信息,LCD12864采用串行显示,根据手册编程出LCD12864的驱动程序。程序首先初始化液晶显示屏,再设置要显示砂糖橘信息的对应变量,将收到变量的对应数据转换成ASCII码,最后通过LCD12864液晶显示显示分拣出的砂糖橘大果、中果、小果信息,流程图如图11所示。

图11 总体流程图Fig. 11 System flow chart

4 试验结果与分析

试验地点为科研实验室,实验室照明条件是LED灯,摄像头距离测试物体的距离为4 cm,砂糖橘的分拣速度设为120个/min,此时程序中的K值经过测试后定为0.16。通过视觉模块OpenMV测出砂糖橘的颜色和大小。再测试该系统对于各个颜色的识别能力,先找到一块边长为5 cm的正方形纸张上均匀涂宽为1 cm的红色、蓝色、橙黄色和绿色的色条,而各色条的长度依次递减,分别是红色色条长5 cm,蓝色色条长4 cm,橙黄色色条长3 cm和绿色色条长2 cm,将上述纸张放在摄像头前进行测试,分别测试各个色条的长度和宽度,如果测试的数据和实际的色条尺寸基本吻合,则能识别该颜色,具体测试结果见表4所示。最后进行砂糖橘直径测试,测试结果如表5所示。

表4 系统颜色测试结果表Tab. 4 System color test results

表5 橙黄色砂糖橘大小检测结果表Tab. 5 Orange sugar orange size test results

从表4可以看出,只要颜色的阈值设置合理,该系统的颜色识别比较准确,由于现实生活中砂糖橘的销售主要是通过肉眼分辨颜色,因此对砂糖橘的颜色分辨率不是很高,通过表4可以看出该系统可以分辨颜色,足以分辨橙黄色砂糖橘。表5是分拣速率设定为120个/min时,采用不同大小但是颜色都差不多是橙黄色的砂糖橘进行实际测试的结果,可以看出,大小识别虽然误差参差不齐,但是误差不大。

表6中分别采集5组橙黄色满足大果、中果、小果的砂糖橘各100个进行分拣测试,测试结果表明,该系统对果实的分类分拣准确率达到95.4%,对不合格果实检测率达到97.2%。

表6 橙黄色砂糖橘分拣结果Tab. 6 Results of sorting orange Shatangju

综上可以看出,该方案识别的砂糖橘大小比较精确,误差不太大,对于现实中分级要求不是非常高的砂糖橘已经足够了;而该系统只要颜色阈值设置合理,对颜色的识别也可以做到比较精确。

造成上述误差的原因有以下几点:(1)上述检测的样本是采用天然果实进行测试,在样本选取的时候,每个果实的颜色通过肉眼看起来都是橙黄色,其实有深有浅差别较大,再加上砂糖橘果实本身不完全是圆形,实际测量也有些误差,所以会造成参差不齐的误差。(2)本设计的测试区域环境需要特别注意,颜色识别很容易受到外界的干扰,本设计检测区域底色为黑色,要做到测试误差小,需要选择测试物体的颜色和底色对比度高的场景,同时可以外加光源增加清晰度。

5 结论

1) 本文以自动分拣成熟砂糖橘果实为研究对象,设计了一款基于机器视觉技术的成熟砂糖橘果实目标识别与检测分拣装置,解决了目前我国砂糖橘分拣过程中存在果实分类大小差异较大、人力成本大,自动化水平低的问题,有效提高了分拣成熟砂糖橘果实的精确度,保证了分拣出的每一类砂糖橘果实色彩一致,大小均匀,保证了果实的卖相好看,降低了砂糖橘的生产成本。

2) 在砂糖橘果实的分拣装置中应用了机器视觉技术,采用机器视觉模块OpenMV获取砂糖橘果实图像,进行图像二值化处理,再通过OpenMV IDE软件中的阈值编辑器设置代表成熟砂糖橘果实的颜色的LAB数值,通过比对得出砂糖橘果实的颜色是否是成熟砂糖橘的颜色。通过颜色识别实验,测试各个色块:红色(长5 cm,宽1 cm)、蓝色(长4 cm,宽1 cm)、橙黄色(长3 cm,宽1 cm)和绿色(长2 cm,宽1 cm),结果表明,该系统对颜色的识别准确。

3) 为了简化单片机的运算量,砂糖橘果实直径的测量是由砂糖橘果实的像素和果实直径的关系式计算得到,经测试,可知误差在1.6 mm内,精度达到96.19%,对果实的分类分拣准确率达到95.4%,对不合格果实检测率达到97.2%。测试结果表明,该装置测试精度高、稳定性好,能够解决砂糖橘采摘机器人自动分拣归类的问题,为砂糖橘采摘机器人的发展提供了新的方案,有一定的参考价值。

猜你喜欢
橙黄色砂糖舵机
窗:姜彦希
orange用法知多少
砂糖
两朵花
含齿隙弹载舵机的全局反步模糊自适应控制
砂糖变硬 三招解决
基于dsPIC单片机的飞艇舵机控制实现
在路上
基于高速同步485总线通信的多通道舵机控制器设计
生化黄腐酸对砂糖橘黄化病的治疗作用