白振伟,严富威,袁培海,张浩明,杨润树
(仲恺农业工程学院机电工程学院,广东广州,510225)
我国是农业大国,水果产业是我国种植业中的第三大产业,当前我国水果产量每年都在急剧增长。据统计:未来10 年,水单产继续提高,产量稳中有增,品种结构进一步优化,优质水果供给增加。预计2032 年达3.53×108t[1]。其中水果分拣是水果产业中最耗时耗力的环节之一,分拣环节成本高、季节性强、需要大量劳动力高强度工作[2]。其中水果的采摘和分拣工作是水果生产必不可少的环节,仅靠传统人力进行采摘分拣果实,工作强度大,耗费时间长。而随着科学技术的进步,水果采摘分拣工作逐渐向自动化、智能化的方向发展,极大提高了水果分拣效率[3]。按照水果的内外部品质和大小重量进行分拣是当前国内外水果分拣技术的两个主要研究方向[1]。
国外早期的水果品质方法主要通过CCD 彩色相机,采用无损检测、计算机分析处理等手段对水果逐一进行分析。但随着自动化技术和机器视觉技术的不断发展,1995 年美国研制的Merling 高速高频计算机视觉水果分级系统,其生产率约为40 t/h,美国每年有50%以上的苹果经过该设备处理。美国Autoline 公司的水果分级设备在世界上处于领先地位[4]。
相较于国外的水果分拣技术产品,国内的分拣产品还是较为落后。大多数产品还都局限于机械分拣阶段,主要用来对水果的大小和重量进行分拣,目前市面上的分拣机有滚筒筛式、震动筛式、斜坡式以及直线型变距分拣机等,这一类机器的分拣原理主要是通过果实的重量和大小来进行分拣[5]。这种分拣方式精度差、无法判断水果成熟度且对水果有不同程度的损伤。随着嵌入式控制技术和图像处理技术的不断发展,使得当前较为先进的分拣机器人可以根据水果的外形、大小、颜色等指标通过机械臂对果实进行分拣。这种分拣方式精度高,对果实的损耗小,是未来分拣机器人的一种新趋势。
本文将基于STM32 单片机、OpenMV 机器视觉模块设计一款智能分拣果实机器人。其中STM32 单片机作为智能分拣果实机器人的主控制器,利用OpenMV 机器视觉模块识别获取果实信息,通过USART 通信将数据传输到主控制器,主控制器接收数据后驱动机械臂完成果实分拣。
设定有A、B 两种体积大小不同的水果,两种类型的水果均有红、绿两种颜色,需要将绿色的水果按小大分类至1、2 号果篮,红色的水果同样按小大分类至3、4号果篮。试验场地模型图如图1 所示[6]。
该控制系统主要包括循迹、识别和抓取三个过程,具体的工作原理及流程:分拣机器人启动后通过车前底部的红外循迹模块对地面的黑色引导线进行识别,控制分拣机器人前进的方向,行驶途中检测到分类点的停止线后停下并启动视觉模块,视觉模块对水果的颜色大小进行分析。同时,车前端的HC-SR04 超声波模块对果实和分拣机器人的距离进行测量,将距离信息以及果实信息传输至单片机,单片机对得到的数据进行计算,控制机械臂对水果进行抓取分类,抓取完成后继续沿着引导线至下一个分类点。
该分拣机器人的关键部件由机械臂结构、直流减速电机、MG945S 舵机组成。其中直流减速电机采用的是MG513P10_12V 型号,电机尾部集成有编码器与电机转子同轴,反馈出电机的转速,实现闭环控制。
对于整体车身和机械臂结构等各零部件材料方面:采用具备精确和耐久特性类ABS 的立体光造型树脂—未来R4600 树脂,可应用于汽车、医疗、消费电子等工业领域的概念模型,亦可用于一般部件、功能性部件的制作。该材料的性能参数如表1 所示。该材料能够打印对精度和韧性要求高的部件,模型尺寸稳定性好,拥有低收缩率和优异的耐变黄性,具有卓越的可加工性,但是热变形温度略低。
根据分拣工作环境以及机器人工作状态对各零部件设计相应合理尺寸,智能分拣机器人结构参数如表2所示,智能分拣机器人的结构参数尺寸如图2 所示。
表2 结构参数表Table 2 Structure parameter
后轮直流减速电机带有固定铁架,且前轮转向机构设计成长条板状方便于组装固定,转向机构架板长度为140 mm,端部小部分伸进前轮,前轮间距135 mm;整体车身设计简单为平板式形状为前窄后宽,长度为278 mm,最小宽度为110 mm,最大宽度为150 mm,车身结构3D 模型图如图3 所示。
图3 车身结构模型图Figure 3 Body structure model diagram
最大预留出车轮、直流减速电机、前轮转向机构、主控板架固定的孔位,为实现快捷灵活的采摘动作,将机械臂设计成简单的连杆二轴结构,最大主力臂长145 mm,最大前臂长172 mm,最大前伸距离208 mm。两个力臂由两个MG945S 舵机驱动,设置在对称的位置,在不影响机械臂旋转的同时方便后期布线,也相对美观,其模型图如图4 所示。
图4 MG945S 舵机模型图Figure 4 MG945S actuator model diagram
利用UG 软件运动仿真模块对智能分拣机器人进行运动仿真。
仿真过程:在仿真模块主页中,首先设置各部件的钢体属性,将车身设置为固定连杆,对机械臂底部旋转台、前臂、主力臂以及夹爪分别设置为非固定连杆;之后将各连接处可旋转移动的部位设置为运动副中的旋转副;为舵机所在的旋转部件处设置驱动,转速设置为舵机的反应转速为53~62 r/min,并设置旋转角度上下极限为180°。设定开始仿真模型时为识别到果实的时刻,进行解算后动画流程显示机械臂向前方目标伸展后,夹爪收紧,之后收回到原来位置并向旁边旋转,最后松开夹爪,仿真动画结束。
对机械臂的屈伸运动进行仿真模拟如图5 所示,对机械臂夹爪抓取动作进行仿真模拟如图6 所示,仿真结果均能实现所需动作和运动要求。 利用SolidWorks 软件的Simulation 插件对机械臂进行力学分析。
图5 机械臂屈伸运动仿真Figure 5 Simulation of the flexion and extension motion of a robotic arm
图6 机械臂夹爪抓取动作仿真Figure 6 Simulation of the clamping action of a mechanical arm
将机械臂模型导入SolidWorks 软件后开启Simulation 插件,创建一个新算例,并根据表1 的材料性能参数为模型应用ABS 的材料属性;之后对机械臂底部设置固定几何体;再添加外部载荷,假设单次分拣的果实的重力为0.5 N,机械臂自身重力为3 N,在夹爪区域添加一个0.5 N 的竖直向下的力,同时在主力臂和前臂添加一个大小为3 N 的竖直向下的力;最后为模型生成网格,待生成结束时开始运行此算例。
建立完模型后,在机械臂前伸姿态进行力学分析,得到变形情况和应力分布情况如图7 所示。由静应力分析仿真结果可见,在此姿态下的机械臂在末端夹爪机构和腕关节处发生最大变形,变形量沿着机械臂向旋转底座呈递减趋势,直到变形量为0;由图可知,应力主要集中于前臂与主力臂连接处,主力臂与旋转底座连接处,最大应力为1.756×107N/m2。仿真结果表明,机械臂的末端夹爪区域和连接处会发生最大变形,应力主要集中于前臂与主力臂连接处、主力臂与旋转平台连接处和底座固定孔处,整体验证了该机械臂结构的合理性,以及能支撑主要分拣运动的可靠性。
图7 机械臂变形和受力情况图Figure 7 Mechanical arm deformation and force diagram
智能分拣机器人结构主要由下端移动平台和上端执行机械臂组成,系统整体设计实物如图8 所示。
图8 智能分拣机器人实物图Figure 8 Physical image of intelligent sorting robot
下端移动平台:下端移动平台设计为后置两驱,后轮为带编码器的直流减速电机,通过联轴器与防滑车轮相连,前轮转向机构设计成整体式转向机构,如图9所示。为了灵活控制转向角度,采用MG945 舵机控制转向的连杆机构,这种结构简单、可靠[7]。
图9 转向连杆机构Figure 9 Steering linkage
上端执行机械臂:由主力臂,前臂以及机械爪组成,主力臂由MG945 舵机带动进行上下运作;前臂由另一台MG945 舵机控制,通过连杆驱动前臂进行屈伸运动如图10 所示。
图10 机械臂屈伸结构图Figure 10 Mechanical arm flexion and extension structure diagram
为了实现分拣果实机器人的相应功能,硬件设计主要包括主控制器模块,机器人视觉模块,电源模块等组成,硬件结构图如图11 所示,硬件参数型号如表3所示。
表3 硬件参数型号表Table 3 Hardware parameter model
图11 硬件结构图Figure 11 Hardware structure diagram
本设计中采用了STM32F103zet6 单片机作为主控制器,该单片机基于Cortex-M3 内核,它的最高的时钟频率为72 MHz 拥有丰富的外设资源[8-9]。共有114个引脚,其中有80 个通用I/O 口具有兼容5 V 的特性,使得很多5 V 模块也可以轻松的被STM32 处理, 还可以配置出16 个外部中断。
3.2.1 复位电路
采用的STM32F103zet6 单片机在系统中集成了复位按键。按键复位包括了电平方式复位和脉冲复位两种方式,该单片机使用的为脉冲复位。
按下复位按键芯片内部的复位信号会在NRST 引脚上输出,脉冲发生器保证每一个(外部或内部)复位源都能有至少20 μs 的脉冲延时;当NRST 引脚被拉低产生外部复位时,它将产生复位脉冲。复位电路如图12 所示。
图12 复位电路图Figure 12 Reset circuit diagram
3.2.2 电源电路
电源电路图如图13 所示。
图13 电源电路图Figure 13 Power circuit diagram
STM32 的工作电压(VDD)为2.0~3.6 V。通过内置的电压调节器提供所需的1.8 V 电源。当主电源VDD掉电后,通过VBAT 脚为实时时钟(RTC)和备份寄存器提供电源。电源电路如图13 所示。该设计中使用了STM32F103zet6 丰富的I/O 口资源外接各种硬件模块。
本设计中采用的电机驱动系统由两个带编码器的直流减速电机以及一个L298N 电机驱动模块。
3.3.1 带编码器的直流减速电机
直流减速电机是在直流电机的基础上通过齿轮结构将直流电机输出的转速进行了减速处理[10]。本设计中采了用带编码器的MG513P10_12V 直流减速电机,霍尔元件在电机闭环控制系统中起到了重大作用,通过霍尔元件测量数据反馈到主控制器,主控制器与目标速度相比较,通过PID 控制算法消除偏差,实现闭环控制[11]。
3.3.2 L298N 电机驱动电路
L298N 电机驱动模块作为运动控制的主要部件,L298N 是ST 公司生产的一种高电压、大电流电机驱动芯片。
采用双H 桥直流电机驱动芯片,双H 桥电路原理图如图14 所示[12]。L298N 驱动电路可驱动2 个直流减速电动机,板载上的 OUT1,OUT2 和OUT3,OUT4分别接直流减速电机的电机线,IN1,IN2 和IN3,IN4引控制电机正反转。板载的ENA,ENB 脚为使能端,本设计中通过PID 控制算法计算电机制定转速所需要的占空比,将ENA,ENB 使能引脚接入到TIM4,TIM8 的PWM 输出通道以实现对电机速度的控制。
图14 双H 桥电路原理图Figure 14 Circuit schematic diagram of dual H-bridge
视觉模块选择的是OpenMV4 H7 R2 Cam 摄像头。 该摄像头的主要参数:STM32H743II ARM Cortex M7 处理器,480 MHz,1 MB RAM,2 MB flash。所有的I/O 引脚输出3.3 V 并且5 V 耐受。在QVGA(320×240)及以下的分辨率时,大多数简单的算法可以运行(25~50)FPS。主板上共有10 个I/O 引脚,均可用于中断和PWM 输出。摄像头本身内置了一些图像处理算法,支持RGB565 以及灰度等多种图像格式,可以轻松地完成机器视觉应用[13]。视觉模块运行流程图如图15 所示。
图15 视觉模块运行流程图Figure 15 Visual module operation flowchart
4.1.1 图像颜色识别
绿色颜色阈值的判定如图16 所示。
图16 颜色阈值判定Figure 16 Color threshold determination
图像颜色的识别用到find.blobs 函数,该函数将摄像头捕获的图像像素色彩数值与程序预先设定的颜色阈值进行对比,若数值处于设定的范围内,则果实确认为对应颜色。颜色的阈值设定通常采用的是LAB 色彩模式[14],阈值范围设定得越小,识别得越精准。但捕获的图像会受到环境因素的影响,从而降低识别精度,因此可以通过适度地扩大阈值识别范围,以降低环境因素的干扰。
设定颜色阈值:
利用for 将所有色块都进行判定并框出:
将红色阈值设定为(66,20,61,27,53,7),在该阈值范围下,无论是暗红色还是亮红色,都能够顺利识别,有效地减少了环境亮度对识别的影响;将绿色阈值设定为(83,39,-71,-29,-16,71),在这个阈值范围下,同样能降低环境因素对颜色识别的影响。
4.1.2 果实大小识别
在颜色识别过程中,可以将图像中的有效色块用矩形以外切方式框出,通过计算得出框架的面积,从而近似地得出色块的面积。由于每次抓取时,果实与相机的距离一致,所以图像色块的面积可以有效地比较果实真实的大小,进而分类出果实的大小。获取色块像素面积函数:area1 = blob.area()。
在研究中,框架面积处于1 500~4 500(像素面积)区间的色块在现实中对应果实直径为15~40 mm,因此将框架面积处于1 500~4 500 区间的色块视为小果实,而框架面积大于4 500 的色块则视为大果实。对于框架面积小于1 500 的色块可能存在较大误差,对实验结果造成影响,因此不作为判断依据。判断果实大小成功后,将代表果实大小的特定信号通过串口通信传输至控制模块。
比较大小并传输特定信号:
4.2.1 整体程序设计
设计中由主控制器的TIM1 定时器作为定时器中断。该中断是对机器人移动平台的驱动以及PID 算法计算;通过TIM6 定时器中断对黑线进行识别,通过读取红外传感器的输出电平(输出高电平即没有检测到黑线,反之检测到黑线),控制转向舵机实现循迹功能。在循迹的过程中若检测到了停止标志线,分拣机器人进行制动,通过继电器接通OpenMV 机器视觉模块,开始识别分拣,系统主程序流程如图17 所示。
图17 主程序流程图Figure 17 Procedure flow chart
4.2.2 PID 控制
在智能分拣机器人运动过程中,通过循迹模块对路线的识别和检测,实现在直道匀速、弯道减速,这就需要控制电机转速实现相应的功能[15]。在分拣机器人的运动过程中我们通过霍尔编码器反馈当前速度值。并通过PID 算法进行调节,实现闭环控制。
对下端移动平台进行闭环控制,通过PID 控制使得机器人下端自由移动平台具有较高的稳定性。PID控制是一种线性的控制方法,它将给定值与实际输出值的偏差e(k)的比例(P)积分(I)微分(D)进行线性组合,形成控制量u(k)输出[16]。
本系统采用PID 调节方式来完成分拣机器人的运动状态调节。该方法的调节效率高,绝对误差小[17]。
控制程序流程如图18 所示。直流减速电机的霍尔传感器采集到电机的实时转速后,将每一时刻的速度作为输入带入增量式PID 进行计算,不断刷新输出速度,使整个系统趋于稳定[18]。该分拣机器人实际调得PID 各参数分别为KP=1.3,KI=0.001,KD=0.4. 目标值为30。
图18 控制程序流程图Figure 18 Control procedure flow chart
4.2.3 机械臂逆运动学解析
在已知机械臂末端期望位置,计算当下位置所对应的各关节角度,需要进行机械臂逆运动学解析[19]。在分拣点前端设置一条直线调整路线,通过红外循迹模块对小车位置的反复纠正,实现让机械臂和小球处于同一轴线上。通过OpenMV 输出的小球中心和画面中心的偏移量的值和可分拣范围的值进行比较,若不满足则蜂鸣器发出警报,提示操作者介入手动进行调整。
由于下端自由移动平台识别到停止线的停车制动距离会有误差,为了让机械臂对果实进行准确的分拣,该设计中引用了二维的机械臂逆解算法。通过在分拣机器人前端的超声波距模块和果实放置装置的高度得到果实的位置,即二维坐标[20]。机械臂逆运动学平面分析如图19 和图20 所示。
图19 机械臂初始位置几何模型Figure 19 Geometric modeling of initial position of manipulator
图20 机械臂转动后位置几何模型Figure 20 Geometric modeling of the position of themanipulator after rotation
其中L分别为机械臂的大臂和小臂,e为大臂与小臂的初始夹角,B为小臂末端到夹爪的中心的距离,Y为大臂旋转轴到底座的距离,由于机械设计所以大臂和小臂长度相等,即大臂小臂长度相等。通过超声波模块可以测得机械臂与果实的水平距离X(以底座中心为原点),人为确定果实的高度H。
即我们可以得出角度a。
同时通过勾股定理可以求出L1的值。
通过余弦定理可以求出角度d和角度b+c。
进而得出大臂移动的角度C1。
因为C=C1,所以可以求得角度b。
大臂与小臂的初始夹角为e,则小臂转动的角度为:b-e。
由于机械臂的机械结构和舵机转角的限制,大臂的有效转动范围为逆时针0°~90°;小臂由于存在初始角,其有效转动范围为顺时针20°~90°;由于上述限制和机械臂臂长影响,机械臂的抓取存在一定的盲区。对机械臂的结构进行几何模拟分析,其有效的抓取范围如图21(此图以大臂舵机转轴为原点)所示。
图21 有效区域示意图Figure 21 Schematic diagram of effective area
综上完成一次机械臂的逆运动学分析,再将计算所得各个舵机所需要的转角转换成PWM 占空比,驱动机械臂其完成对果实的分拣。
本设计在实验室环境下利用红绿两色小球来模拟成熟果实以及未成熟果实展开相应试验。试验结果如表4 所示。
表4 试验结果数据表Table 4 Data sheet of experimental results
试验方法:在地面划分两个区域用黑线将路线串联起来。在起始位置打开分拣果实机器人电源,机器人向前移动,直到检测到分拣点。利用超声波测量果实与机器人的水平距离,进行机械臂逆运动学计算,将计算结转换成驱动机械臂达到目标位置所需的占空比,驱动机械臂夹取果实,完成一次分拣。本次试验合计分拣果实24 颗,成功分拣21 颗,其中分拣成熟果实11 颗、未成熟果实10 颗,试验成功率为87.5%,识别果实成熟度成功率为100%。
1)为适应我国水果种植规模不断扩大,提高水果分拣的准确度以及工作效率,研究设计了一种基于嵌入式机器视觉的智能果实分拣机器人。本系统将单片机控制系统、机器视觉系统、机械臂系统相结合,形成了智能分拣机器人控制系统总体方案。其中使用STM32F103zet6 单片机作为该系统的主控制器,使用OpenMV4 H7 R2 Cam 摄像头作为机器视觉系统,通过连杆机构以及舵机配合组成机械臂系统。
2)对该智能分拣机器人进行了机械结构的建模以及仿真、硬件系统的设计、并根据实际功能进行了软件设计。其中包括循迹功能,机械臂抓取功能,机器视觉颜色,大小识别功能等。
3)对智能分拣机器人进行仿真试验,在实验室环境下将直径大小为35 mm 的红绿色乒乓球分别模拟为成熟果实和未成熟果实进行分拣试验。试验结果表明:机器人在试验中的识别成功率为100%(即成功识别目标果实成熟度),分拣成功率为87.5%,研究结果表明分拣机器人能够实现精准分拣,且达到一定的可靠性和实用性,可以替代人类完成果实精准分拣的工作。