网球自动回收机器人的设计
2022-05-30胡凤源
胡凤源
摘 要:在专业的网球训练或者比赛结束后,需要专人对球进行回收,不仅浪费体力、增加了相应的人工成本,而且捡球的效率低下,容易遗漏。本项目旨在代替人工,对网球进行全自动化的回收,节约人力、物力和时间成本,提高网球和羽毛球的训练效率。机器人先通过摄像头采集图像,然后进行基于机器视觉的目标检测、网球识别和定位,最后根据定位结果结合PID(Proportion Integration Differentiation)运动控制算法精准控制移动机器人回收网球。此外,机器人配有蓝牙模块,可以进行手动遥控控制。
关键词:目标检测;网球识别;PID控制
*项目支持:广西壮族自治区区级大学生创新创业计划,项目编号:202010595223
近年来随着人工智能技术的迅速发展与不断提高 ,服务型机器人已经开始在生活中广泛应用。迎宾机器人、扫地机器人、家教机器人等一系列服务型机器人已经在生活实践中取得了巨大成功。因此,人工智能技术与运动相互结合 , 既满足了现代智慧城市的规划,又能使人们的生活变得更加便利。网球运动是一项优美而充满竞技性的体育运动,其特有的魅力让世人喜爱。网球和高尔夫球一起享有“贵族运动”之称。在网球训练时,训练完成的场地内有大量网球需要进行回收以便于训练使用以及场地的清洁,而且不被及时回收的地面上的网球还有可能被人不小心踩踏而发生滑倒。
网球回收装置作为网球训练中经常使用到的工具,方便人们进行网球的回收。目前,市面上的网球回收机器装置相对较少,而且大部分都是手动的网球回收装置,本项目设计了一款网球自动回收机器人,可以通过摄像头对网球进行检测、定位以实现自动移动回收网球的功能,无需人工操控,具有回收效率高、方便快捷等优点。
1 设计思路
结合本项目的开发需求,画出了该机器人的原理框图,如图 1 所示。本项目采用了模块化、一体化的设计思想,架构灵活、联合性高,能较大幅度地缩减电路板的体积。其中 OpenMV 摄像头模块用于实时采集场地画面图像信息,完成对网球的识别定位,并通过串口将相关信息传输给嵌入式主控板。嵌入式主控板在接收到来自 OpenMV 的信息后,将位置信息转化成运动轨迹,通过 TB6612 电机驱动芯片驱动减速电机 , 结合位置式PID 算法精确控制运动。执行机构为用于网球回收的滚轮,由两路减速电机负责推动。四路超声波主要用于规避障碍,分别安装在左前方、右前方、左后方和右后方,在遇到障碍时阻止机器人继续行进。霍尔传感器将电机的转速通过 A、B 相的形式反馈给主控,主控使用两个硬件正交编码器进行解码,从而得到电机的转速,形成闭环电机控制系统。使用自制手机 APP 可以通过蓝牙模块对机器人进行手动控制。供电电源采用航模电池,安全性能良好、容量大、体积小,能很好地保证机器人的正常运行。
2 方案选择
本机器人嵌入式主控芯片采用 STM32F429ZGT6,该芯片是一款基于 ARM Cortex-M4 内核的高性能微控制器,带有 180 MHz CPU,内部带有 DSP、FPU 和正交编码器等资源。
网球的识别定位通过摄像头采集图像信息实现,一般的摄像头仅能进行图像的采集,无法对图像进行处理,OpenMV 是一款开源嵌入式视觉处理模块,可以轻松完成机器视觉应用,可通过 Python 脚本语言进行 开 发。OpenMV 搭载有 STM32H743II ARM CortexM7 处理器,其系统频率高达 480 MHz,拥有 1 MBRAM,2 MB fl ash 闪存。OpenMV 模块默认摄像头配置为 OV5640 感光元件处理 2 592×1 944(5MP) 图像,在QVGA(320×240) 及以下分辨率时大多数简单算法可运行 25~50 FPS。经过多方面考虑我们最终选择 OpenMV作为视觉模块以定位网球与车身。
避障模块使用的是超声波模块,使用超声波进行测距,测量精度最小可以达到 2 mm,测量范围 0.02~4 m,能够满足使用需求。避障模块通过计算机器人与物体之间的距离进行避障。
使用减速电机作为小车动力,通过读取霍尔传感器获得反馈进行 PID 控制,以保证车轮转速的稳定,通过左右两电机的差速产生扭矩以实现转向功能。为了防止出现意外,在小车周围使用四路超声波进行避障,以免发生撞车事故。
蓝牙模块采用 HC-05 蓝牙模块,HC-05 是一款高性能主从一体蓝牙串口模块,可以手机配对,该模块支持非常宽的波特率范围:4 800~1 382 400,可以很方便與单片机进行连接,使用非常灵活、方便。
采用航模电池进行供电,电机驱动电源由电池提供,主控供电使用 DC-DC 降压芯片 tps5430 将电池电压转换为 5 V 输出,再由线性 ldo 芯片 AMS1117 转换提供3.3 V。
回收机械结构常见为采用垂直压力和滚动压力两种,结合本装置的驱动特点使用滚动压力的传统网球回收轮进行改造,依靠滚动压力与摩擦力将网球压入轮内,以达到回收网球的功能。
3 方案实施
3.1 主程序流程
如图 2 所示,该机器人由主控、摄像头、驱动电机、蓝牙模块、超声波避障模块和回收机械装置组成。
图 3 是主程序流程图。机器人开启后,先会对视野前方进行网球识别,如果识别到单个网球,就将网球坐标与视野中心差值进行 PID 计算,控制 PWM 驱动电机进行移动进而对网球进行回收。当视野中有多个网球时进行多目标过滤优先回收距离最近的网球,当正前方视野没有网球后将缓慢旋转一圈检查场地,如果识别到网球将继续进行回收,没有检测到网球则将进入休眠模式,通过蓝牙可以进行手动控制。
3.2 网球识别及多目标过滤与接近识别
通过摄像头拍摄实时画面,进行网球识别、多目标过滤、多目标接近识别。
摄像头并非垂直对地面进行俯拍,是以一定角度对地面进行图像采集,如此会导致地面图像的投影在摄像头中发生梯形畸变,要进行梯形透视变换。梯形透视变换是将图片投影到一个新的视平面,是 3D 世界转换到2D 图像的一种方式。通用的变换公式为:
透视变换的数学表达式为:
所以,给定透视变换对应的四对像素点坐标,即原图的坐标和变换后的坐标,联立公式可求得透视变换矩阵;反之,给定透视变换矩阵,即可对图像或像素点坐标完成透视变换。
摄像头拍摄的图片作为图像数据来源,影响着后续各个处理步骤。因此要完成拍摄物体空间点到照片成像点之间的几何变换。即从世界坐标系的三维坐标转化到图像二维坐标中,从而获得所需要的参数。世界坐标系通过刚体变换和平移转换到相机坐标系,相机坐标系通过透视投影转换到图像像素坐标系,图像坐标系再转换成像素坐标系。坐标系间转换如图 4 所示。
式(3)为像素坐标与世界坐标的变换公式,右侧第一个矩阵为相机内参数矩阵,第二个矩阵为相机外参数矩阵。
网球识别使用 OpenMV 的 IDE 的阈值选择工具,先对网球的颜色阈值进行获取,采用了 Python 进行编程。图像框内在网球颜色阈值内的圆形目标标记外接矩形框,并将圆形目标中点与画面中点的差值供给控制MCU。
当视野中出现两个及以上网球时,要对网球进行多目标过滤和多目标接近识别。找到轮廓后,将轮廓面积即小球在视野面积按从大到小排序,投影面积越大说明小球与机器人之间的距离越近,优先回收距离近的网球。
3.3 基于电机驱动的滚动下压式回收装置设计
网球的回收由两个电机驱动回收机械装置滚动前进产生的滚動压力以及摩擦力实现。
为了实现对网球的准确、快速回收,主控芯片采用PID 算法对 I/O 口输出的 PWM 波进行调制,主控芯片根据网球坐标与视野中心坐标的差值,进行 PID 控制器的计算,计算出最佳的 PWM 占空比。通过设置定时器中断参数产生相同占空比的 PWM 波对电机进行转速控制,通过对两个电机的转速差以及转向调节可以实现装置的前进、后退以及旋转。通过蓝牙可以使用手机对机器人进行手动控制移动。
4 调试与测试
在调试与测试过程中,发现最初采用亚克力搭建的连接结构薄弱,较容易形变。实际测试中,由于长时间使用,导致变形严重。所以,连接结构使用树脂材质进行重新打印。而且双轮驱动由于回收机械装置整体较大,旋转并不流畅,最好使用履带轮。PID 控制器的参数需要进行多次调整和测试才能达到较好的回收效果,积分I 的作用是消除静态误差,但是 I 的存在可能会引起系统的震荡。实际中只使用了 PD 调节,调节偏差快速变化时使调解量在最短的时间内得到强化调节,增大比例系数 P,将加快系统的响应。但是过大的比例系数会使系统有较大的超调,并产生振荡,导致机器人抖动剧烈。
5 结语
本项目基于 STM32 单片机和 OpenMV 实现了网球的自动回收功能。经过测试,该机器人能够在网球场进行地面网球的回收,最终实物图如图 5 所示。结合传统网球回收机械结构与机器人技术进行了创新设计,本系统运行高效稳定,具有很强的实用性。未来是机器人的时代,机器人将会更具独立性、更加高效、更加智能,然而我们也将在机器人发展道路上进行更加深入、更加广阔的研究,力求为科技进步和发展作出贡献。
参考文献:
[1] 周莉萍,李召.机 械结构设计技术与流程[J].工业机器人机械系统,2022,71(01):122.
[2] 韦德泉,许桂秋. Python编程基础与应用[M].北京:人民邮电出版社,2019.
[3] 廖义奎.Cor tex-M3之STM32嵌入式系统设计[M].北京:中国电力出版社,2012.
[4] 刘火良,杨森.单 片机与嵌入式:STM32库开发实战指南[M].北京:机械工业出版社,2013.
[5] 张宇成,王潮涌.基于STM32和OpenMV的图形识别与测量系统[J].电子测试,2021(15):43-46.
[6] 高宏伟.计算机双目立体视觉[M].北京:电子工业出版社,2012.