基于STM32 的柑橘采摘机器人

2024-01-12 00:06林厚健蔡子颖王小增黄凯升马展鹏
嘉应学院学报 2023年6期
关键词:舵机遥控器柑橘

林厚健,蔡子颖,王小增,黄凯升,马展鹏

(嘉应学院 物理与电子工程学院,广东 梅州 514015)

0 引言

一直以来,乡村农业是国家重点扶持对象,这关系着中国人的粮食安全.随着我国农业机械化水平的不断提高,越来越多的农业机械设备应用到现代农业生产中,在一定程度上减轻了农民的工作强度,提升了农业生产效率[1],但在广大的农村地区,许多农民仍然用着传统人工采摘水果的方式,人工成本较高,采摘效率偏低.现如今,中国农业生产量高,农业自动化发展水平较低,使得中国农业的生产效率较低,且面临农业劳动力需求大,农业劳动者数量减少,使得农业发展受限的问题.针对于此问题,设计了一款可自动采摘柑橘的机械臂.它能够帮助农民进行全自动的柑橘采摘,且能全天不间断地进行采摘,还可以通过无线图传观察水果的状况.本柑橘采摘机器人自带显示器,能实时显示柑橘采摘数量.同时,柑橘采摘机器人配备了二维摇杆遥控器,结合显示器进行模式的切换、对电机和机械臂进行控制.柑橘采摘机器人投入使用后可全程无人自动化工作,提高了采摘效率的同时也降低了采摘水果的人力物力成本.

1 系统的整体框架设计

随着人工智能技术的蓬勃发展,传统自动化技术结合人工智能技术后有了更大的施展空间,用于农、林业作业的耕作或采摘机器人如雨后春笋般崛起.柑橘采摘机器人的研发涉及农林科学、机器视觉、机械设计、轨迹规划、控制理论等多方面技术,采摘机器人通过摄像头识别并定位采摘目标所在位置,然后进行采摘轨迹规划,再通过驱动机械臂关节电机进行目标摘取[2-3].由于柑橘树生长的地区地形环境多样,果树上果实形状和颜色各异,大小不一,自动采摘过程涉及诸多难题,机器视觉系统需具备高度复杂的图像处理和分析能力,能够准确地识别定位并抓取成熟的柑橘,并能够在不同光照强度下正确识别区分果实和树枝、叶子等其他干扰物;柑橘采摘过程中,要求机器人的机械臂需要具备足够的灵活性和力量,以适应不同高度和位置的采摘任务,机械臂的设计需要兼顾抓取的准确性和稳定性,同时保证机器人的移动效率和能耗;柑橘自动采摘机器人需要能够对传感器数据进行实时处理和分析,对果实的成熟度、质量、位置等信息进行准确判断和决策,这要求机器人主控系统具备强大的计算和学习能力,能够根据不同的采摘情况做出相应的操作和决策.

基于以上需求分析,所设计的柑橘采摘机器人系统采用了性价比高、处理能力强的STM32F401CCU6单片机作为主控芯片,搭载图像识别摄像头模块OpenMv plus 实现对柑橘的识别与定位,Open Mv4 结合WIFI 图传模组进行无线图传,采用JDY-40 无线串口通讯模块建立无线通讯;采用串口舵机组成机械臂实现柑橘的采摘;采用MG540 编码直流减速电机实现电机速度闭环控制来驱动履带车的移动;机械臂末端夹爪配备了光照检测电路和功率LED 实现对采摘环境光照强度的调节.基于以上方案设计的柑橘采摘机器人框架如图1 所示,系统可实现自动调光、无线图传、采摘计数和全自动采摘的功能.

图1 机械臂履带车系统设计框图

2 系统的硬件方案设计

2.1 机器人电源方案

机械臂履带车系统供电电压包括12 V、7.4 V、5 V 和3.3 V 4 种,采用30C 的3S 航模电池作为主供电电源.在机械臂、直流电机、LED 调光灯同时驱动的情况下,系统可输出达10 A 的负载电流,可以满足工作需要.设计XL4 015 可调稳压电路提供7.4 V 电压,其输出高达5 A 的电流可为六轴机械臂供电;设计LM2596 稳压电路提供5 V 电压用于摄像头和LED 供电;设计AMS1 117 稳压电路提供3.3 V 电压用于主控制器和外接检测和逻辑电路供电.

2.2 电机驱动控制方案

履带车底盘驱动电机采用L298N 芯片进行驱动,通过单片机I/O 口输出PWM 信号来控制两个H 电桥的关断和导通,需对L298N 驱动芯片的电源输入进行滤波,输出电路接保护二极管后接入电机电源线接口,电机端接口配备了AB 相霍尔测速检测端,可通过识别两引脚的脉冲相序来识别正反转.两个AB相检测引脚接入单片机含有定时器功能的I/O 口,实现正反转测速[4].

系统机械臂采用了五自由度机械结构,为了提高抓取水果容错率,机械爪选择接触面比较大的夹爪.为了简化机械结构,采用串口舵机来带动机械结构,设计中将所有舵机的串行通信接口并联在一起,可充分节约主控芯片的I/O 资源.

2.3 光照检测及LED 照明方案

为提高柑橘采摘机器人的作业效率,使其不受采摘环境的光照限制,设计了光照检测及LED 驱动电路,该电路利用4.7 kΩ电阻和光敏电阻进行分压,通过检测光敏电阻电压来判断光照强度大小,当光线较强时,光敏电阻阻值较小,其分压通过ADC 模块转换后的数值可以反应光线的强弱,当光照强度不够时,LED 驱动电路便开始工作.由NPN 型晶体管组成的电平转换电路把控制芯片的3.3 V 电平转换成5 V电平,PWM 信号输入接到MOS 管栅极,通过控制LED 导通电压的大小,进而实现LED 亮度的控制[5].

2.4 摄像头识别方案

考虑到主控制器与摄像头的通讯方式,决定采用图像识别高性价比芯片OpenMv plus 进行采摘目标识别与定位,通过串口与主控制器进行通讯,传输抓取目标的坐标数据[6-7].为了实现无线图传且不对主摄像头的正常识别造成影响,系统采用OpenMv4 摄像头结合WIFI 图传模组进行无线图传,自行设计印制电路将两个摄像头模块集成到光照检测及LED 驱动电路中,提高模块集成度以减少机械结构的复杂程度.

2.5 遥控器方案

遥控器系统采用二维摇杆电位器,搭载OLED 显示屏用于显示工作模式等信息.遥控器上集成MPU6050 姿态传感器,通过获得遥控器姿态来控制机械臂夹爪的俯仰角和横滚角,将传感器获得的三轴加速度和三轴角速度信息通过I2C 通讯传到主控制器中[8].遥控器的按键电路包含4 个独立按键和摇杆电位器模块的3 个接口,其中两个接口为二维电位器的接入端,接入单片机中具有ADC 转换功能的I/O 口,连接按键的所有I/O 口设置为输入模式.

2.6 通讯方案

机械臂履带车系统通讯电路包括无线遥控通讯、舵机通讯和摄像头通讯,三个模块电路均基于串口原理进行通讯,分别接入STM32F401 主控芯片的串口1、串口2 和串口6.机械臂履带车与遥控器之间进行无线通信的电路中将JDY-40 模块的SET 引脚接入主控的I/O 口,当I/O 口输出低电平时,进行AT 指令设置模式,输出高电平时,进入数据透传模式.舵机通讯为单总线通讯方式,采用74HC126D 三态输出控制门来控制收发,当发送数据时,则打开发送门,关闭接收门,发送完数据后,则打开接收门,关闭发送门.OpenMv 摄像头通过串口6 的DMA 通道与主控进行通讯.

3 系统工作原理及软件流程设计

3.1 机械臂逆解原理分析

若机械臂为三连杆及三连杆以上的结构,则可实现末端平移和末端转动,且平移点对应的舵机角度逆解有无数个[9-11].逆解采用几何图解法,如图2 所示,以y-z平面为例,设x坐标为0,以底座舵机轴为坐标原点,本设计机械臂逆解主要控制三连杆末端执行器在三维空间的坐标位置,步骤包括输入三维坐标、极坐标转换、舵机角度转换三个步骤,通过若干三角函数和余弦定理运算得出对应舵机角度,计算公式如式(1)所示,式中y、z分别是末端执行器在y-z平面的坐标数据,l1、l2、l3分别为三个连杆的长度,S1、S2、S3分别为舵机输出角度,pitch 为给定机械臂末端俯仰角,α、β、θ和γ为计算过程中的辅助角,L 为三连杆合成矢量,l23为l2与l3的合成矢量模长.

图2 机械臂三连杆结构几何解析图

3.2 机械臂自动追踪原理分析

将机械臂模型初始化,末端俯仰角设定为0 °,方向朝正前方,通过串口6 采用DMA 接收的通讯方式,与摄像头OpenMv plus 通讯,当摄像头检测到抓取目标时,实时反馈目标在摄像头视野的三维坐标数据到STM32F401CCU6 控制器,进行PID 运算,得到两轴调整输出量,通过控制L1 连杆实现对末端执行器俯仰角和航向角的调整,使机械臂对目标进行跟踪[12],PID 运算如式(2)所示.

式中,U(k)为k时刻的控制量,Kp、Ki和Kd分别为比例系数、积分系数和微分系数,err(k)和err(k-1)分别为k、k-1时刻的误差.

基于机械臂的数学模型,应用PID 参数的工程经验整定法,经过调试得到机械臂x轴PID 控制参数为Kp=20,Ki=2,Kd=20,y轴PID 控制参数为Kp=30,Ki=2.5,Kd=30.为提高摄像头识别到目标距离后柑橘采摘机器人的执行速度,机械臂履带车系统工作时,通过机械臂正前方的摄像头采集到其与抓取目标之间的距离,根据目标距离的大小分两步执行,程序设定当目标距离大于25 cm(此数据基于采摘机器人的尺寸规格)时,履带车直流电机驱动前进,并自动调整车体朝向抓取目标,当目标距离小于25 cm 后,履带车底盘停止移动,机械臂继续追踪,当抓取目标到达摄像头视野中央后,系统开始进行姿态解算,其示意图如图3 所示,坐标求解如式(3)所示.运算得到抓取目标在三维空间的坐标数据后进行抓取,随后将采摘下来的柑橘放至储存箱.

其中(add_y,add_z)是待求解抓取目标在y-z平面的坐标,pitch 为末端执行器的俯仰角,Lc为摄像头的长度,length 为摄像头与抓取目标的距离,a、b和c是计算过程中的辅助线段.

3.3 视觉识别原理分析

视觉识别主要用于获取抓取目标的实时空间位置同时进行数据发送,为了提高识别的实时性和识别成功率,采用颜色识别结合形状特征来定位抓取目标.

因为抓取对象为成熟的柑橘,所以设置识别形状特征应为椭圆形,同时需要采集成熟柑橘的颜色阈值.视觉模块工作时系统先初始化摄像头参数,设置传回图像的像素格式为RGB565,将图像大小设置为QVGA(320x240),设置目标颜色阈值.由于颜色识别易受光线影响,需要关闭白平衡,然后让摄像头截取一张感光图像,并将图像转换为Lab 颜色模型,为了优先抓取离摄像头最近的成熟柑橘,过滤像素较小的色块,找到图像中符合阈值的最大色块作为抓取目标,通过图形绘制函数框出最大色块轮廓,返回绘制框的中心坐标,最后通过串口通讯将识别到抓取目标的三维空间坐标传给STM32 主控进行处理.

在摄像头视野内的平面坐标可由识别定位函数直接得出,由于OpenMv 采用的是单目摄像头,实现测距需要选取参照物,利用参照物的大小比例关系来计算距离.首先通过封装函数得出最大色块的像素半径,再结合视野像素范围和摄像头中的几何关系,得出摄像头与抓取目标的实际距离,求解公式如式(4)所示.

其中,length 为单目测量距离,dmax为视野最大直径像素,d为视野内的目标直径像素,Rreal为识别目标的实际半径,L为摄像头的内部成像距离,µ为视野最大半径与摄像头内部成像距离的正切角,式中dmax、L和Rreal都为已知变量.

3.4 柑橘采摘机器人主程序流程

柑橘采摘机器人机械臂履带车系统主程序流程图如图4 所示.系统上电初始化后,判断串口是否接收到指令,主控对接收到的指令进行解析并执行对应操作.遥控器系统主程序流程图如图5 所示.系统上电后检测是否有按键按下,通过解析按键键值,发送对应的指令到履带车主控,同时遥控器界面实时显示相关信息.

图5 遥控器系统主程序流程图

4 系统联调及实验测试

柑橘采摘机器人机械臂履带车系统硬件电路采用立创EDA 软件进行原理图及PCB 图进行设计,系统所有机械机构组装和硬件电路焊接完毕后,对系统各硬件模块进行了测试.基于在嵌入式常用开发软件keil平台上进行了控制代码的编写.基于机械臂逆解、自动追踪原理及视觉识别原理编写了相应控制程序后,进行了系统的软硬件联合调试.

由于柑橘采摘机器人整机系统高约40 cm,其尺寸不足以直接应用在实际柑橘的采摘中,故搭建柑橘果树实验模型用于测试,将4 个橙色和1 个青色的柑橘模型随机挂在果树的挂勾上,将机器人放置于果树模型前一段距离,用遥控器启动自动模式,让机器人自动抓取橙色柑橘.如图6 所示.经过测试,机器人成功抓取4 个橙色柑橘并放入储存箱,通过多次测试,统计得到单个柑橘从追踪、抓取到将其放入储存箱的过程平均用时约12 s.在追踪过程中,遥控器显示屏可以实时显示抓取目标在摄像头视野里的位置,每成功抓取一个柑橘时,遥控器上都会显示已抓取的柑橘数目,如图7 所示,抓取完后,机器人会继续旋转车体对周围进行360 °目标搜寻.

图6 设置为自动抓取模式

图7 屏幕显示已摘取柑橘数量

进行夜间抓取测试,关闭室内光源,使柑橘采摘机器人采摘环境无任何光源,此时启动机械臂履带车系统,机器人检测到环境光线偏暗,自动开启照明灯进行补光,如图8 所示,用遥控器控制机器人进入自动抓取模式.反复实验证明,在黑暗环境下,机器人抓取所有成熟柑橘的成功率达100%.

图8 夜间自动抓取柑橘影像

为了研究不同光线条件下柑橘采摘机器人的采摘稳定性及采摘完成率,选择了白天(光照良好)、傍晚(光照一般)、黑夜(全黑环境)三种环境进行了多组实验,随机设置目标柑橘(成熟柑橘)采摘数量和干扰柑橘数量(青色柑橘),对每次实验从采摘机器人系统启动后到最后一只成熟柑橘采摘完毕后的过程进行计时,表1 给出了柑橘采摘机器人的9 组采摘实验数据,其中稳定性所在列描述的是每组实验中单个成熟柑橘的平均采摘用时相对于系统测试得到的单个柑橘采摘时间(13 s)的百分率.

表1 柑橘采摘机器人实验数据

由表1 数据可知,不同光线条件下,相同采摘目标数量(如实验组1,4,7)对应的总采摘用时相差很小,从9 组采摘实验组数据来看,干扰柑橘的数量几乎不影响总采摘用时,同时每组实验中单个成熟柑橘的平均采摘用时相对于系统测试得到的单个柑橘采摘用时(13 s)的百分率均在±3%以内,表征系统对单个成熟柑橘的采摘时长稳定性高.9 组实验数据表明采摘机器人均在可预见的时间内完成全部成熟柑橘的采摘,显示屏可正确显示已采摘柑橘数量.

5 结论与展望

本研究通过对柑橘采摘机器人的整体机械结构设计、硬件系统开发以及控制算法的研制,系统使用MPU6050 姿态传感器模块、电机驱动模块及舵机执行结构等主要功能模块,加上一套控制系统,机器人能够实现对柑橘的感知、定位和采摘功能.本文详细介绍了柑橘采摘机器人的硬件模块的设计及机械臂自动抓取目标的工作原理,与传统人工采摘柑橘的方式相比,该柑橘采摘机器人实现了全自动、全天候采摘,系统具有记录采摘水果数量的功能,使得采摘工作成本降低、效率提高.为进一步推动农业机器人技术的发展做出了有益的探索与贡献.

后续研究可在当前柑橘采摘机器人的功能的基础上,进一步改进机器人的机械结构和抓取装置,以提高采摘的稳定性和速率;引入更先进的机器学习算法和人工智能技术,实现更准确的柑橘识别和最优采摘路径决策;加强与农业专家和农户的合作,深入了解柑橘采摘的实际需求,在此研究基础上优化机器人的设计和功能,并设计出可用于实际采摘工作的机器人.

猜你喜欢
舵机遥控器柑橘
我是“糊涂虫”
吃柑橘何来黄疸——认识橘黄病
时间遥控器
爸妈有个“遥控器”
含齿隙弹载舵机的全局反步模糊自适应控制
行走的飞行遥控器
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计
柑橘大实蝇综合治理
“五及时”柑橘冻害恢复技术