基于图像识别的捡网球机器人

2022-01-19 11:48张强志陈德鹏胡佳林魏洁锋王培杰梁锐轩
物联网技术 2022年1期
关键词:高电平舵机测距

张强志,陈德鹏,胡佳林,魏洁锋,王培杰,梁锐轩

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

0 引 言

网球作为一种时尚的体育运动,深受人们的喜爱,许多网球爱好者将网球运动作为工作学习之余放松身心的主要方式。然而,在休闲锻炼过程中,频繁的人工捡球会消耗大量的体力和时间,大大降低了休闲运动的体验感。对于比赛训练活动更是如此,频繁捡球浪费体力和时间,影响训练节奏。现如今,随着智能机器人的应用领域不断扩大,人们期望智能机器人在更多领域为人类服务,代替人类完成一些复杂和繁琐的工作,因此捡网球机器人应运而生。目前虽已有基于视觉的捡网球机器人的设计,但仍可以在此基础上进行相应的创新和改进,通过添加语音识别控制、手机APP控制、智能避障等功能,制作一款基于图像识别的捡网球机器人,能够实现对网球的识别并自主抓取回收,计算前进方向上障碍物的距离实现避障,还能够通过语音控制以及WiFi远程APP控制,高效地解决捡球的问题。

1 整体设计方案

捡球机器人系统的设计包括硬件设计和软件程序设计。考虑到要实现网球识别、障碍物距离检测、语音识别等功能,就需要保证系统的核心控制芯片具有优良的运行速度和响应处理结果的能力。因此选用STM32F407ZGT6单片机作为系统控制核心,搭配HC-SR04超声波测距模块、LD3320A语音识别模块、OpenMV4摄像头模块、ESP8266-01S WiFi无线通信模块、L298N电机驱动模块、SG-90舵机以及直流电机构成系统硬件电路。单片机执行程序指令实现与各模块之间的通信及控制,从而实现各功能和各模块互相协调、互不干扰。系统框图如图1所示。

图1 系统框图

2 硬件设计

2.1 移动与避障

机器人通过L298N电机驱动模块驱动四个直流电机转动从而实现机器人前后左右移动。将该模块的IN1、IN2、IN3、IN4四个输入端分别与单片机的I/O口连接,模块的OUT1、OUT2、OUT3、OUT4四个输出端分别与机器人底部的四个直流电机相接。ENA和ENB为使能端,当ENA为高电平时,可对OUT1、OUT2进行控制;当ENB为高电平时,则可对OUT3、OUT4进行控制。通过输入一定脉宽的PWM来控制L298N驱动模块H桥的通断,进而改变驱动模块输出电压的有效值,实现对各个直流电机的转速控制,使机器人可以向不同方向移动。L298N电机驱动模块电路如图2所示。

图2 L298N电机驱动模块电路

超声波测距功能的实现采用HC-SR04超声波传感测距模块。该模块上装载有两个压电陶瓷超声传感器,其中一个用于发射超声波信号,另一个则用于接收反射回来的超声波信号。将该模块的Trig控制端和Echo接收端与单片机的I/O口相连,便可实现其与单片机之间的通信。单片机通过计算发射与接收超声波信号的时间差,进而计算出捡网球机器人前进方向障碍物的距离以实现避障的目的。HC-SR04超声波测距模块电路如图3所示。

图3 HC-SR04超声波测距模块电路

2.2 摄像头网球识别

摄像头网球识别采用OpenMV4摄像头模块进行图像的获取、预处理、特征抽取和选择及分类器设计和分类决策。OpenMV4摄像头模块以STM32F427单片机为核心控制处理芯片,集成了OV7725摄像头芯片,预留SD卡卡槽,拥有一个SPI总线接口、一个异步串口、三个舵机控制接口,将单片机串口与模块异步串口相连即可实现单片机与模块之间的通信。OpenMV4摄像头模块电路如图4所示。

图4 OpenMV4摄像头模块电路

2.3 机械臂捡球

捡网球机器人的捡球装置是由多个SG-90舵机搭配一些固件组装成的机械臂。通过多个舵机的转动实现对网球的抓取与收集。舵机其实就是一种位置伺服马达,主要由小型马达与齿轮等构成。单片机的引脚连接舵机的控制端并发送高低电平信号,舵机内部通过调制芯片就会获得一个直流偏置电压,然后直到级联减速齿轮带动电位器旋转使得直流偏置电压与舵机内部的基准电压之差的绝对值减为零,舵机才会停止转动。也就是说,单片机提供高电平的延续时间决定了舵机转动的角度。舵机的电路如图5所示。

图5 舵机电路

2.4 语音识别控制

语音识别功能的实现采用LD3320A语音识别模块。该模块是基于“关键词语列表”的识别技术,使用者通过麦克风传入语音信号后,模块内部的声音传感器就会将语音流转化为电压信号,模块内部对该信号进行频谱分析并提取特征发送到内部的语音识别器,然后语音识别器访问关键词语列表,将识别结果发送给单片机。将单片机的串口与模块串口相接即可实现单片机与模块之间的通信。LD3320A语音识别模块电路如图6所示。

图6 LD3320A语音识别模块电路

2.5 WiFi远程APP控制

WiFi远程APP控制功能的实现采用ESP8266-01S模块。该模块支持标准的IEEE802.11b/g/n协议,内置完整的TCP/IP协议栈以及通用AT指令集,支持STA/AP/STA+AP三种工作模式。将模块串口与单片机串口相连从而实现模块与单片机之间的通信,然后单片机向模块持续发送一系列AT指令,手机就能够连接上WiFi模块,进而实现手机APP控制。ESP8266模块电路如图7所示。

图7 ESP8266模块电路

3 软件程序设计

3.1 测距避障功能实现

对于测距的实现,首先需要单片机向超声波传感测距模块控制端发出至少10 μs的高电平信号,超声波信号发射后则从接收端检测是否有信号返回。如果有,则向接收端输出高电平信号,同时启动定时器计算高电平持续的时间,然后通过公式(距离=(时间×声速)/2,声速为340 m/s)计算出捡网球机器人与障碍物之间的距离。

对于避障功能的实现,则是事先由程序设计好的规则,规定安全距离为20 cm。如果前方障碍物距离小于20 cm,便立即停止前进,此时舵机带动超声波传感测距模块转动分别测量左右两侧障碍物距离,并选择向距离较大的一侧转动;如果左右两侧障碍物距离都小于20 cm,则后退。如图8所示为测距避障流程。

图8 测距避障流程

3.2 网球识别功能实现

OpenMV4摄像头初始化后,读取图像转为灰度图像,规定阈值并切割图像。通过降噪等预处理加强图像的重要特征,然后提取网球的轮廓、长度、宽度、周长、面积、颜色等特征值。采取图像梯度的方法获取网球轮廓,分别产生二值图和二值图的边缘提取图提取网球面积和周长。采集网球图片素材制作数据集并训练模型,使用深度残差网络ResNet作为基石,模型的训练需要用生成器将数据集循环写入内存,同时图像增强以泛化模型。通过模型训练能够得到一种网球的识别规则的分类器,模块内部处理器经过分类决策后就能够识别到网球,得出网球的位置,采用视差测距法计算网球的距离,然后传递给单片机。如图9所示为网球识别流程。

图9 网球识别流程

3.3 网球拾取功能实现

舵机通过转动带动机械爪闭合实现对网球的抓取,而舵机的转动需要通过单片机传输高电平信号。在控制舵机时,先使单片机的定时器产生一个20 ms周期的PWM信号,而该周期内高电平信号延续时间范围是0.5~2.5 ms,总间隔为2 ms;舵机根据PWM信号中高电平的占空比而转动特定的角度,并利用定时器中断,每1.5 ms中断一次,从而改变PWM信号中高电平的占空比,即可对舵机的转动角度进行控制。图10所示为舵机转动带动机械爪闭合瞬间。

图10 舵机转动带动机械爪闭合瞬间

3.4 语音控制功能实现

语音控制功能的实现是通过单片机向与之相连的LD3320A语音识别模块之间的串口发送需要识别的关键词语列表,此后模块就会对接收到的声音信号与关键词列表的词语进行比对;然后将识别结果发送给单片机,单片机通过识别结果来决定是否执行捡网球机器人“前进”“后退”“左转”“右转”“网球抓取”的指令。图11所示为语音控制流程。

图11 语音控制流程

3.5 WiFi无线通信功能实现

WiFi无线通信功能的实现是通过单片机向与之相连的ESP8266-01S WiFi模块之间的串口发送一系列的AT指令来对模块进行配置。单片机通过发送“AT+CWMODE”“AT+CI PAP”“AT+CIPSERVER”等指令配置模块的模式、启动TCP/IP、设置端口号等。手机连接上模块后就可以向其发送信息,如果模块收到手机端发来的信号,则会向与单片机相连的串口发送包含收到的网络信息的描述字符串。图12所示为WiFi无线通信流程。

图12 WiFi无线通信流程

4 实验结果

图13所示为捡网球机器人实物图。机器人采用小车作为模型,小车上方前端位置装有摄像头以及舵机云台,后端位置装有机械臂支撑底座,各功能模块装置在合适位置保证系统模块间互不干扰、协调工作。经过测试,捡网球机器人能够准确识别到网球并抓取回收。同时,当前进路线上遇到障碍物时,能够自主规划前行路线实现自主避障。此外,能够通过语音控制以及手机APP远程控制机器人正常执行“前进”“后退”“左转”“右转”“网球抓取”等指令,如图14所示为APP操作页面。

图13 捡网球机器人实物图

图14 APP操作页面

表1为智能避障测试结果。测试表明,机器人能够达到预期的避障效果。表2为语音控制测试结果。测试表明,机器人能够正常执行语音指令。表3为网球捡拾率测试结果。测试表明,机器人能够拾取多数的网球,但捡拾率受到光照强度、网球密度、网球位置等环境因素的影响,因此需要更优的算法进行改进。

表1 智能避障测试结果

表2 语音控制测试结果

表3 网球捡拾率测试结果

5 结 语

现如今人工智能是大势所趋,更多的繁重琐碎的体力劳动都将由机器代替完成。本文介绍的基于图像识别的捡网球机器人实现了超声波测距和智能避障、网球识别抓取、语音控制及手机APP远程控制等功能。经测试发现,本设计能够达到预期要求,性能稳定;在一定程度上能够帮助网球运动爱好者减轻频繁捡球的负担,让人们更加享受网球运动的过程,专注训练。

本文介绍的基于图像识别的捡网球机器人在性能以及功能上还有提升的空间,优化的方向大致为:①多个网球的快速拾取;②效率更高的捡球算法设计;③指定区域内捡球。

猜你喜欢
高电平舵机测距
一种基于FPGA的PWM防错输出控制电路
类星体的精准测距
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
含齿隙弹载舵机的全局反步模糊自适应控制
基于dsPIC单片机的飞艇舵机控制实现
浅谈超声波测距
基于高速同步485总线通信的多通道舵机控制器设计
DM 50KW中波广播发射机欠推动故障分析
PDM 1kW中波广播发射机保护电路分析
基于PSOC超声测距系统设计