多感知水果抓取及分拣控制系统的设计

2022-02-01 07:15郭联金
包装与食品机械 2022年6期
关键词:手爪舵机语音

郭联金

(东莞职业技术学院 智能制造学院,广东东莞 523808)

0 引言

随着生鲜电商的发展,研发果蔬智能化分拣包装设备对促进农业现代化具有重要意义。传统机械手在抓取物品时大多采用刚性夹爪,自由度小,难以适应形状、尺寸和性状不同的对象,易造成质地柔软的瓜果等农产品表面损伤。现有机械手在生产应用中,往往只能按照预设的程序或者通过示教,重复执行固定的运动与动作,缺乏对工作环境的感知与应变,无法人机协作。近年来新型软体机械手因其驱动简单、有无限自由度和可顺应被抓取对象的外形等独特优势,为果蔬拾取提供了新方法。现有柔性手爪存在结构复杂或抓取效率不高、稳定性不足等问题[1],且普遍不具有感知能力,无法获知抓取力度信息[2]。为此,本文提出一种基于人工智能的柔性抓取及分拣系统,赋予机械手具有类人的听觉、视觉、触觉感知能力和学习能力,以提高其智能化水平和环境适应性。

1 机械臂的结构与建模

1.1 机械臂的结构

为模拟人工分拣动作,采用3轴连杆式轻型机械臂作为分拣机构。该机械臂主要由底座、回转主体、大臂、小臂及末端手爪组成(图1)。回转主体、大臂关节和小臂关节各由1个步进电机经减速器传动,并分别由3个限位开关确定行程范围及零点位置。旋转体围绕机身可进行270 °旋转,大臂和小臂在连杆机构带动下分别在90,130 °范围内做俯仰运动,以带动手爪在不同高度及前后位置上执行抓取任务。

图1 分拣机械臂的结构Fig.1 The structure of sorting manipulator

机械臂末端采用Fin Ray结构柔性仿生手爪[3],其开合由舵机驱动。夹爪手指由高回弹硅胶材质经3D打印一体化成形,构成“鳍形效应”结构(见图2),具有良好柔性及自适应性。

图2 Fin Ray手指特性Fig.2 The feature of Fin Ray bionic finger

图2所示,3个手指按中心抓取方式布置,结构与装配简单、重量轻、无间隙和摩擦。3个手指在舵机驱动下向手爪中心靠拢,从物品的外周表面贴合、包裹式稳定抓取,可避免刚性抓取对水果等表面脆弱物品的过压损伤,对象适应性强且驱动效率高。

1.2 机械臂的运动学分析

机械臂采用多连杆通过关节铰接而成的单开链串联式结构。通过机械臂运动学正逆解,分析其末端手爪在空间中的运动规律,以控制机械臂在不同位置点对目标的精准抓取。首先,采用D-H坐标变换法,以齐次变换矩阵建立机械臂的运动学方程。根据机械臂的连杆参数,即各连杆的长度、距离、扭角、转角大小及范围,通过变换矩阵由关节变量求解手爪的位置。由此获得机械臂的运动学正解[4]。然后,对机械臂运动学进行反解,即由机械臂末端手爪的中心位置,求出各关节电机的转角。在此,采用几何法对机械臂运动学逆解。将三自由度关节式机械臂简化为平面机械臂[5],根据已知 3 根连杆的长度 L1、L2、L3及手爪的空间坐标P(x,y,z)求得3个关节电机的转角θ1、θ2、θ3[6]:

由逆运动学将求解出多个解,结合机械臂的结构限制、关节的运动范围和运动轨迹,比较筛选出最优解。由此可通过控制各电机转角使机械臂末端手爪按照最优路径平滑地运动至目标位置。

2 系统总体设计

系统主要由单片机主控模块、视觉模块、语音模块、压力检测模块、机械臂运动模块和机械爪舵机模块组成(见图3)。视觉模块采用2套Maix Dock K210套件,分别以“眼在手旁”、“眼在手上”2种方式布置,在单片机主控模块的指令下从远、近距离分别采集目标图像,运行深度学习模型的计算,实现“粗→精”的目标匹配与分类识别,并将识别结果与中心坐标发送给单片机主控模块。语音模块以LD3320为核心,用于采集语音信息,并进行语义识别。压力检测模块采用柔性薄膜压力传感器检测机械手指的抓取力,反馈至主控模块,从而控制舵机转角及手爪张角。机械臂运动模块通过3路脉冲信号控制DM542步进电机驱动器,对应驱动机械臂的3个关节电机转动,使机械臂以一定轨迹和速度运动、定位。机械爪舵机模块接收主控单片机的PWM信号并驱动柔性手爪舵机,实现目标物品的抓取。

图3 系统的总体结构Fig.3 The overall framework of the system

3 系统硬件设计

3.1 主控方案

采用Arduino UNO主控板,以低功耗、高性能的8位单片机ATMEGA328P为主控制器[7]。该单片机具有32 kB的ROM,2 kB的RAM,13个数字口,7个模拟输入口,1个硬件串口,6个PWM输出口,2个硬件中断口等外设[8]。在此,利用4路PWM信号输出,驱动3个步进电机和1个舵机,实现机械臂的运动控制。软件设计使用C语言在免费、开源的Aduino IDE上编程,利用丰富的支持库,直接调用所需的库函数,加快应用开发。

3.2 视觉模块

采用MAIX Dock K210型开发套件,其上搭载勘智K210系统级芯片,算力0.8 TOPS,具有RISC-V 64位双核处理器,每个核心内置独立FPU,自带卷积神经网络处理器KPU和摄像头[9]。将已训练好的轻量级卷积神经网络模型YOLOv2移植到K210,经过KPU加速器的卷积、池化、批归一化和激活运算处理,可实现图像实时采集与识别(见图4)。软件设计部分,在MaixPy IDE使用MicroPython语言编程,其API兼容Openmv,可直接调用封装好的函数,运行神经网络模型。由于视觉模块图像实时采集的分辨率有限(224×224),采集远距离目标时图像不够清晰,故采用2套视觉模块,分别进行远处目标初次定位的“粗检测”与近处目标再次确认的“精检测”,通过2次检测,提高目标定位与识别的准确度。

图4 K210视觉模块目标识别的基本流程Fig.4 The basic process of target identification of K210 vision modu

3.3 语音识别模块

模块主要由STC11型单片机、LD3320语音识别芯片及1个MP3解码芯片组成,通过串口与Arduino主控单片机进行通信。LD3320 基于非特定人语音识别(SI-ASR)技术[10],无需外接辅助Flash、RAM,即可以实现语音识别、声控及人机对话。芯片存储了50多条预置指令,可以动态编辑关键词语列表,通过自定义唤醒词和关键词,使模块工作在口令模式。为降低环境噪声干扰,降低误识别率,将易混淆的近音词、拟声词等设置为“垃圾关键词”[11],识别后不输出。本文将2种唤醒词、4种口令和4种识别的目标名称预存储于芯片中。系统分拣对象苹果、猕猴桃、橙子和梨分别以1,2,3,4进行编码。模块通过麦克风拾取口令信号,对语音数据进行预处理、特征提取和语音识别。模块先被唤醒,进而对抓取口令中抓取目标的名称进行拼音识别,并与预置的关键词进行匹配。当匹配值大于设定阈值,则认为匹配成功,模块返回目标代码,并发送至ATMEGA328P单片机。

3.4 压力检测模块

采用ZD10-100型柔性薄膜压力传感器作为力敏元件,张贴于Fin Ray仿生手指内侧,用于检测抓握力。该传感器采用新型纳米压敏材料制作,耐弯折、灵敏度高、响应快。其敏感区长度85 mm,宽度10 mm。无压力时传感器阻值>10 MΩ,近似断路;当传感器感知到外界压力时,其电阻值随表面施加压力的增大而减少,压力响应点低至200 N以下。为提高电压测量分辨率,增大驱动电流,测量电路采用由分压和运算放大器组成的电阻-电压转换模块,将模拟电压信号发送至主控单片机。

3.5 机械臂驱动模块

3.5.1 步进驱动模块

使用DM542型步进驱动器控制2.8 A两相混合式步进电机。驱动电压为24 V DC,细分设置为2 000 P/r。3个步进驱动器的外部信号采用共阴极接法,其脉冲信号端分别与MEGA328P的脉冲输出引脚连接。由主控单片机输出脉冲控制步进电机的转角位置及转速。

3.5.2 舵机控制模块

舵机的信号口与单片机MEGA328P的PWM输出引脚相连。单片机输出占空比可变的方波脉冲以控制手爪舵机的转角,从而使手爪以不同张角抓握大小不同的物品。

4 软件设计

4.1 程序设计环境

在Arduino IDE环境中使用C语言对单片机MEGA328P进行编程,实现主控模块与语音识别模块之间的串口通信、机械臂的运动控制,以及与视觉模块的串口通信。在MaixPy IDE开发环境中采用MicroPython语言进行编程,完成图像采集、基于卷积神经网络的自学习分类[12]、LCD驱动与显示等任务。利用MaixPy与Openmv兼容的API,调用所需的图像处理函数进行预处理等操作。

为实现目标的智能检测与识别,在K210单片机上部署YOLOv2模型[13]。使用视觉模块的摄像头采集每一类目标的样板图250张;进行数据集扩张,通过平移、旋转、模糊和加噪等处理方式扩大样本至每类1 000张;采用labelImg工具对增强后的图片进行ROI标注;使用Mx-yolov3软件进行环境配置与模型训练,经36次迭代(loss为0.002)获得训练好的tflite文件,并利用模型转换工具ncccase0.1转换得到kmodel文件;将模型加载到K210,采用测试集运行目标识别,并对锚框中心进行标识。

4.2 程序设计

分拣系统程序按功能模块设计,主要包括语音识别模块、eye-to-hand视觉模块1、eye-inhand视觉模块2、运动控制模块、压力检测与转换模块。其中,视觉识别采用“粗检测”+“精检测”的2次检测方法。视觉模块1的摄像头固定于机械臂一侧的支架上方,执行目标初次识别与中心定位,输出图像坐标并转换为世界坐标。视觉模块2安装于小臂上,近距离采集目标的清晰图像,与第1次的检测结果进行比较,确认目标并计算精确位置后执行抓取任务。运动控制模块根据目标的空间位置驱动手爪运动至抓取位置。程序设计流程如图5所示。

图5 自动分拣程序的流程图Fig.5 Flow chart of automatic sorting procedure

5 系统分拣效果测试

在日光灯或自然光环境下,将苹果、猕猴桃、橙子和梨等水果放置于不同背景中进行分拣测试。分拣系统接收语音命令并识别出目标关键词,通过人机交互对分拣目标进行确认,运行自动识别分类与分拣程序,通过视觉引导控制机械臂执行目标抓取、转运与分拣(见图6)。

图6 系统自动分拣测试Fig.6 Automatic sorting test of the system

(1)定位精度。目标重复定位精度为0.3 mm。该误差主要由坐标转换(图像平面—运动空间转换)的计算精度、目标图像处理的圆心位置计算精度,以及步进电机脉冲丢失、机械件安装配合偏差等原因导致。

(2)分拣准确率。从表1的测试结果可见,分拣系统对4类目标物的识别率较高(≥86%),且类间存在一定差异。其中,对梨的识别率最高,对猕猴桃的识别率最低。分拣的平均正确率为92%,验证系统能有效实现分拣任务。

表1 自动分拣的测试结果Tab.1 Test results of automatic sorting

机械臂的运动及定位误差较小,系统分拣的准确率主要受语音识别和视觉识别的影响。因语音识别采用人机交互方式对指令进行纠正和确认,不存在口令识别错误,故系统的分拣准确率主要取决于视觉识别质量。经多次试验,发现视觉识别的效果与水果的尺寸大小和表面颜色的分布特征有关。由于采用2次视觉检测,第1次的误检和漏检会直接使得第2次检测的图像难以精确匹配和定位(图7)。在第1次检测时,摄像头高度离目标物较远,视野相对较大,图像清晰度不高,故尺寸小的猕猴桃容易在“粗检测”中出现误检或漏检,而尺寸较大的梨则未出现误检。此外,梨和橙子的表面光滑,且都为均匀的纯色,特征明显;而苹果的表面含红、绿2种颜色及过渡色;猕猴桃表面则并非光滑纯绿色,而是绿色中分布着点状褐色,且带毛状细点、杂点。相比于梨和橙子,苹果和猕猴桃的特征更为复杂,故检出率不如前2者。

图7 视觉模块的检测结果Fig.7 Detection results of the visual module

(3)压力检测与反馈。图8展示机械手臂连续3次抓取和松放目标对象(苹果)过程中手指的压力变化。机械手臂抓取物体时,若传感器输出的压力<程序的设定阈值(1 300 N),手爪舵机转动使张角减少,执行抓取动作;当压力≥设定值,此时手爪舵机停止运动,表明目标已被手指抓取,且承受的抓握力已达预设值。当物体被抓取并转运至目的地,舵机张角增大,手爪张开,物品与手指脱离,手指的抓握力减少至400 N以下。

图8 压力传感器的输出信号Fig.8 The output signal of pressure sensor

(4)分拣效率。系统从捕获语音→识别→抓取→放下目标,完成1次分拣的周期约4.5 s,手爪张合的最高频率可达96次/min,抓取最大负载为0.6 kg。工作效率较高,适于流水线上轻质物品的分拣。

6 结语

为适应瓜果等农产品大小规格不一、表面易损伤等特点,设计融合听觉、视觉和触觉多种感知能力的智能分拣系统。通过非特定人语音口令和视觉引导,控制机械臂的自主运动和定位。使用基于深度学习的图像识别技术,将目标检测算法模型YOLOv2部署到K210中,实现目标检测与分类。测试结果表明,分拣系统具有较高的语音识别与视觉检测能力,能高效完成分拣作业。所设计的机械臂采用柔性仿生手指,且带有压力检测与反馈,广泛适应多种形状、性质物品的抓取。通过学习训练,分拣系统可拓展应用于“混流”自动线上,代替人力完成农产品、食品和工艺品等特殊作业对象的分拣及装箱任务。

猜你喜欢
手爪舵机语音
魔力语音
基于MATLAB的语音信号处理
一种气动软体手爪熔模铸造工艺研究
含齿隙弹载舵机的全局反步模糊自适应控制
基于MQ3与MP3的价廉物美的酒驾语音提醒器
针对旋转手爪的结构设计与分析
对方正在输入……
基于dsPIC单片机的飞艇舵机控制实现
中科大机器人柔性手爪在机器人世界盃上获奖
基于高速同步485总线通信的多通道舵机控制器设计