吴群彪 ,许侃雯 ,张洪源 ,蔡李花 ,徐 超
(1.江苏科技大学 机电与动力工程学院,江苏张家港 215600;2.江苏科技大学 苏州理工学院,江苏张家港 215600;3.北京邮电大学 自动化学院,北京 100876)
当前关于草莓采摘机器人的控制方面已有不少研究[1],其中以草莓位置的图像处理和识别居多。但目前关于草莓采摘机器人的机体控制研究成果较少,考虑到草莓生长地形的特殊性,草莓采摘机器人能够自行实现在不同地形下直线的平稳行进是很有必要的,所以研发草莓采摘机器人机体控制系统成为亟待解决的问题。
现阶段已有不少学者对草莓采摘机器人开展了系统避障、视觉系统和果实定位等研究。如马瑛等[2]对草莓采摘机器人成熟果实识别及避障制系统研究,其系统运行稳定,可以准确识别成熟草莓果实且避开采摘途径中的障碍物;李长勇[3]等对高架草莓采摘机器人进行系统研究,可以完成成熟草莓的识别、成熟草莓的空间坐标定位以及实现草莓收获的机械化和自动化;王粮局[4]基于视觉伺服的草莓采摘机器人果实定位方法,定位时间与相对误差均有所减小。
本文针对草莓采摘机器人的缺点和不足,对其进行外部电路的选择和实物电路的测试,对行走机构与图像识别算法进行了编写以及测试,最后搭建草莓采摘机器人实物进行试验,设计并研发了一种新型面向垄作草莓的高效采摘控制系统[5]。
本文设计的草莓采摘机器人是针对我国目前较为常见的田垄式草莓种植而研发。主要实现该机器人能够在田垄间行驶而又不损伤到植株,检测到成熟草莓并进行采摘,采摘后收集到收集箱中。该机器人需要控制的部分主要有行走系统、采摘系统和运输系统。
基于该草莓采摘机器人所要实现的功能,在主控模块用了K60单片机作为控制核心[6];传感器主要包括OpenMV摄像头、编码器、陀螺仪、光线感应器等;电机驱动模块选用L298双路直流电机驱动模块,该电机驱动模块是工业级的驱动模块,稳定可靠而且能满足草莓采摘机器人的功率要求。系统结构框如图1所示。
图1 控制系统结构框图Fig.1 Structural block diagram of the control system
草莓采摘机器人采摘部分涉及4个机械手臂,12个舵机的控制。十二个舵机分别控制至少需要12路PWM波端口,则该草莓采摘机器人控制系统将通过两个K60单片机控制,分别控制草莓采摘机器人的行走机构和采摘机构。
行走机构电路部分包括驱动电机、传动电机、转向舵机以及编码器等传感器的控制电路。采摘部分电路包括机械手臂控制电路,图像采集电路以及温湿度传感器等。其主要功能是在行走机构稳步运行的基础上利用图像识别和机械手准确高效的采摘草莓并传回草莓采摘过程中采集到的相关信息。
2.2.1 单片机与电机驱动模块
所选用的单片机是恩智浦公司的K60单片机,该单片机内部集成了大部分常用的模块而且留有较多的I/O接口,满足该草莓采摘机器人需要大量数据输入和控制信号输出的情况。所选用的电机驱动模块是L298双路直流电机驱动模块,该模块驱动包括行走机构驱动电机、传送机构电机及气动装置等动力元件。
2.2.2 稳压电路
采摘部分主要采用了两种稳压电路[7]:LM2596稳压和MIC5209稳压。其中LM2596芯片可稳定输出较大的恒压电流,主要用于舵机等元件的供电;MIC5209芯片外设简单而且在不同工作条件下工作都较为稳定,但是其额定电流只有500mA,无法用于舵机等高电流器件的供电,因此MIC5209在当前电路中主要用于单片机和传感器等元件的供电。
2.2.3 OpenMV摄像头
OpenMV摄像头是当前较为成熟的基于单片机开发的图像处理模块[8],该模块外形小巧,能耗低,具有较高的处理速度。本设计采用的OpenMV选用了STM32F765VI ARM Cortex M7作为其核心处理芯片,具有一个全速USB接口,可与电脑直接相连进行编程开发。除了自带的2 MB flash存储空间之外该模块还配备了SD卡槽,最高可以扩充32 G的存储空间,而且该SD卡槽的读写速度高达100 Mbs,允许OpenMV摄像头进行视频录制并把文件即时转存至SD卡内。
该模块与本次控制核心K60单片机的数据传输主要是通过I2C总线,OpenMV将所得到的图像进行处理分析后,将成熟度标志和位置参数一同传回单片机内。单片机将通过这些参数判断当前采摘界面内是否有达到成熟标准的草莓,如果有的话所处位置和采摘顺序如何,之后控制机械手臂对草莓进行定点采摘。
手工焊接测试完成后的电路板经测试,该电路板无论是稳压还是各传感器部分均可正常工作,可以用作草莓采摘机器人的控制电路。
行走机构电机的控制主要采用了串级的PID控制[9],控制系统结构框图如图2所示。
图2 行走机构电机控制结构框Fig.2 Block diagram of motor control structure of the walking mechanism
其中将目标方向Dire0作为最初始的输入量,通过与加速度计的返回值Dire1作差得出比例项,再由陀螺仪的返回值得出微分项Dire_change,再结合设置的目标速Speed代入PD公式的运算,得出当前左右电机的目标速度Speed1和Speed2,使左右电机产生一个差速对当前的方向偏移量进行纠正。PID的控制原理如图3所示。
图3 PID控制原理Fig.3 Schematic diagram of PID control
电机转速控制使用增量式PID,将所得的目标速度与编码器返回的实际速度Speed1_R及Speed2_R作差,得出差速Speed1_Error及Speed2_Error作为比例项。将差速作一个累加作为积分项,再将差速与上次差速Speed1_Error_Last及Speed2_Error_Last作差得出微分项,最后代入参数调整合适的PID算术式中,计算输出PWM波的具体占空比Speed1_Vol及Speed2_Vol进而控制直流电机的速度。
在采摘过程中由于更多的需要在于稳定的速度和稳定的方向,不需要很高的速度和启动速度,因此,在参数调试的过程中比例项参数取值较小,主要对积分项参数和微分项参数进行严格调整,以此保证机器人能匀速平稳行走且保证稳定的运行方向。
在对采集到的草莓图像进行观察后可以发现,在成熟期的草莓的颜色与其背景颜色差异还是较大的。而且草莓在成熟之后表面的颜色分布都是比较接近的,根据这一特征,本次图像处理采用了一种在色彩空间的基础之上,对草莓图像进行分割提取的算法[10]。成熟的草莓在图像上表现为红色,而背景图片多是绿色或偏黄的枝叶以及黑色的土地,利用成熟草莓与其背景之间的颜色差异即可将其从背景中提取出来。整个处理流程如图4所示。
图4 图像处理流程Fig.4 Image processing flow chart
为响应当前智慧农业的号召,进一步提高草莓采摘的智能化,本次设计还进行了草莓采摘监测上位机的编写。
本次上位机主要是利用MATLAB软件开发,基于C++与Java语言进行程序编写。利用上位机可以直接查看草莓图像的处理结果,返回搜集到的温湿度信息以图表的形式直观展示出来,并根据当前草莓生长阶段所需的温湿度给出合理建议,最后还能实时返回成熟草莓及半成熟草莓的采摘个数。草莓采摘机器人与上位机之间通过蓝牙进行数据传输,数据传输方式为串口通讯,在MATLAB中有针对串口数据的接受和发送函数,蓝牙数据读取的代码编写如下:
接收到数据后将通过MATLAB自带的画图功能将温湿度信息以折线图的形式展现出来。而通过对草莓种植相关资料的查询,我们了解到在草莓生长的不同阶段对环境温湿度的要求差距很大,因此在上位机中设置了草莓生长阶段选项,并将不同生长阶段草莓生长所需的温湿度储存在上位机内,将采集到的数据与理想数据进行对比,进而给出环境控制的相关建议。
该上位机修改和维护都相对简单,在实际应用中还可以继续完善部分功能,并根据需求拓展新功能。
运输机构的运行阻力主要来自机构之间的摩擦与机构自重,而运输机构当前运输的草莓个数也会对运行阻力有所影响,但相较于机构自重等因素来说影响较小。因此参数调整较简单,在参数调整之前运输机构到达目标速度的时间较长,且在到达目标速度之后也极不稳定。调整参数前后的效果分别如图5和图6所示。
图5 运输机构速度返回图(调整前)Fig.5 Speed return diagram of transport mechanism(before adjustment)
图6 运输机构速度返回图(调整后)Fig.6 Speed return diagram of transport mechanism(after adjustment)
在将RGB图像转换为HSV格式后,通过自适应阈值构建掩模图像如图7所示;可以看到草莓本身的草莓籽和环境光照的原因造成图像上存在大量噪点,对草莓的定位和识别都会有较大干扰,故要对图像进行进一步滤波。故经去噪后的图像如图8所示,该图像更容易被识别。
图7 草莓掩模图像Fig.7 Strawberry mask image
图8 去噪后的草莓图像Fig.8 Strawberry image after denoising
在实际应用中对草莓实现识别和定位需要注意的是,当前草莓识别算法对图像质量有一定要求,即不能识别在强光或者在光线不佳的情况下采集到的草莓图像。而为了解决这一问题,在摄像头旁装备了照明灯,能够为摄像头图像采集提供一个良好的图像采集环境,为之后的草莓识别提供了便利。经测试,当前使用的草莓识别算法对成熟草莓的识别准确率达到95%以上。
上位机共涉及两个功能,一个是图像处理,一个是采摘信息的检测与分析。图像处理界面可以对图像进行读取和图像的初步处理,也可以对图像滤波及草莓识别算法进行验证;设计温湿度监测模块系统可对采摘信息做出实时监测。经测试,该监测系统能够较准确地返回实时信息,并提供可靠建议。
针对我国目前较为常见的田垄式草莓种植本方案设计并开发了一套草莓采摘机器人控制系统。该控制系统包括了行走、采摘和运输三大模块,能够实现草莓采摘机器人在田垄间稳定行走,精准识别草莓成熟度采摘到成熟的草莓,并能够检测草莓生长环境,从而为果农进行草莓种植提供相关地建议。通过样机调试验证了本次控制系统的设计可达到预期目标,为后期草莓采摘机器人的控制系统优化提供了一定的参考意见。