1. 引言
乒乓球作为全球普及率最高的体育运动之一,其训练与赛事场景中散落球体的高效回收问题长期存在。传统人工拾取方式存在显著效率瓶颈,运动员训练中断频率较高,且易因重复性劳动影响训练质量。现有商业化解决方案虽能部分缓解压力,但在动态环境适应性、能耗控制及复杂地形处理等方面仍存在技术局限。
这种智能拾球小车,设计了一种基于多模态感知与智能决策的自动拾球系统,通过融合嵌入式控制技术、机器视觉算法及机器人运动规划,实现了乒乓球的高效定位与回收。系统采用模块化架构设计,核心模块包括环境感知单元、运动控制单元以及执行单元,有效解决了传统方案在非结构化环境下的定位偏差与能耗过高问题。实验验证表明,该系统在复杂场地条件下展现出显著优势,其自适应拾取策略可同时拾取多个乒乓球,且通过低功耗设计实现了连续作业能力提升。技术验证表明,该方案不仅提升了乒乓球运动的训练效率,其核心算法与机械结构设计可迁移至网球、羽毛球等同类运动场景,为智慧体育装备开发提供了理论支撑与实践参考,具有显著的社会经济效益与技术推广价值,能推动整个体育产业往更智能更智慧的方向发展[1]。
国外在智能乒乓球拾球机器人领域已经取得了一定的成果。比如西班牙的米尼奥大学、美国的麻省理工学院(MIT),这些高校和研究机构很早就开始做这方面的研究,他们更关注怎么设计更合理的机械结构,怎么用更智能的控制技术,比如学会用深度学习、模糊控制这些算法,让机器人捡球更高效。但问题是,这些算法对硬件要求高,需使用高端芯片,还得配很多外部设备,设备组成复杂,成本高,所以很难普及开来[2]。
国内虽然开始研究这种拾球机器人的时间比国外晚,但进步快。现在国内的研究重点主要在两方面:一是怎么设计更适合捡乒乓球的机械结构;二是怎么更准确地检测、识别出乒乓球。像上海交通大学、东南大学这些高校,已经做出了好几种不同类型的捡球机器人,有的是用机械手夹球,有的是几种结构组合起来,还有的像扫地机器人一样把球“扫”进去。这些研究都给后来做智能拾球小车打下了扎实的技术基础,少走了很多弯路。
近年来,基于STM32微控制器的智能拾球系统因其优异的实时处理能力与成本效益优势,已成为体育机器人领域的重要研究方向。STM32单片机性能好,有很多的拓展空间,小车要控制运动、要处理图像,它都能搞定。我们就尝试把STM32单片机和OpenMV摄像头[3]搭配起来:OpenMV摄像头负责采集地面的图像,把图像数据传给STM32,再用图像处理技术识别乒乓球在哪儿、离小车有多远。相较于国外基于高端处理器的解决方案,该异构系统在保持较高识别精度的同时,显著降低了硬件成本。
所以,本文基于STM32单片机,设计一款基于图像识别捡拾乒乓球的智能小车。具体来说,就是用STM32单片机当“大脑”,控制整个小车的运作;让OpenMV摄像头实时拍摄周围的环境,从而把图像传给单片机[4];单片机再通过图像处理,识别出哪个是乒乓球、乒乓球在什么位置;最后根据这些信息,控制小车往前开、转弯,靠近乒乓球后再把球捡起来,整个过程不用人插手,完全自动完成。
2. 总体设计
本设计开发环境采用KeiluVision5软件[5]。本设计的主程序将硬件部分包括STM32系统板、图像采集模块、电机驱动模块、HC-05蓝牙模块等通过软件程序语言有机地结合在一起,实现小车的自动捡球功能。
本设计中,硬件部分包括STM32单片机、图像采集模块、控制核心模块、电机驱动模块、电源模块、拾取模块、避障模块等,图像采集模块获取乒乓球图像信息,传输至控制核心模块进行处理,控制核心模块根据处理结果向运动驱动模块和机械拾取模块发送指令,同时避障模块实时监测障碍物,保障小车安全运行。乒乓球智能拾取小车总体结构如图1所示;软件部分则涉及图像采集与处理、乒乓球识别算法、小车运动控制算法等,乒乓球拾取流程如图2所示[6]。
Figure 1. Overall structure of intelligent table tennis picking robot
图1. 乒乓球智能拾取小车总体结构
3. 硬件设计
3.1. STM32单片机
STM32单片机作为系统的主控芯片,是一种基于ARMCortex-M系列处理器的微控制器,有着高性能的处理器核心,丰富的外设接口,灵活的时钟系统,低功耗等特性,被广泛应用于各种嵌入式系统开发。其通过搭载各类传感器能够满足小车对于运动控制和图像处理的需求,根据设定的路径来移动[7]。
3.2. 摄像头模块
OpenMV摄像头基于单片机,集成了OV7725图像传感器,支持图像采集、处理与识别功能。通过I2C接口与主控制STM32单片机进行通信,通信速率可达400 kbps,将识别到的乒乓球位置信息传输给STM32。
3.3. 避障模块
智能小车的障碍规避系统主要依赖于HC-SR04超声波测距模块的技术支持。该模块通过发射40 kHz高频声波并接收反射信号,结合时间差计算原理实现非接触式距离检测,从而为移动载体提供实时环境
Figure 2. Table tennis picking process
图2. 乒乓球拾取流程
感知数据,有效规避与静态/动态障碍物发生接触的风险。相比红外避障,对环境适应性更强,提高避障能力该传感器通常在小车的前端和后端各安装一个,构成了感知周围环境的基础。HC-SR04的有效探测范围在2~400 cm之间,其测距精度最高可达3 mm,这种高性能足以满足捡球小车在复杂环境中对障碍物探测的准确性和可靠性要求。该传感器的核心部件是两个超声波换能器,并设有四个功能引脚:VCC (+5 V供电)、GND (参考地)、Trig (TTL触发输入)和Echo (回响信号输出)。在系统初始化时,与主控单片机相连的Trig和Echo引脚均被设置为低电平状态[8]。当需要测量距离时,工作流程启动:主控单片机通过其I/O口向传感器的Trig引脚发送一个持续时间至少为10 us的高电平脉冲信号。这个触发信号会促使传感器内部电路自动发射一连串8个频率为40 kHz的超声波脉冲。超声波在空气介质中传播时,若遭遇物体表面则会形成反射波。当传感器的接收模块捕捉到该反射信号时,其内置的Echo引脚将触发高电平输出。该高电平的持续时间与超声波完成往返传播所需的时间完全对应。关键在于,此高电平持续的时长正好等于超声波从发射到接收所经历的全部时间。主控单片机负责精确捕获并测量这段高电平的持续时间t (单位通常为微秒)。随后,利用公式:
(1)
(其中340米/秒为常温下的声速)即可计算出小车与障碍物之间的实际距离S。为了简化计算,在实践中也常使用经验公式距离(cm) ≈ t (us)/58。
在避障策略上,系统会预设一个或多个安全距离阈值。当计算出的实时距离S小于设定阈值时,主控单片机(例如STC89C52或STM32)会立即判断为前方或后方存在障碍物,并迅速向电机驱动模块(如L298N或L293D)发出指令。小车会首先停止当前的运动趋势,然后根据预设的算法调整车身姿态,例如进行转向或后退,以规避障碍。成功避开障碍后,小车会重新利用其视觉传感器或其他的目标定位系统检测视野内的乒乓球位置,规划新的路径并继续执行拾取任务。
3.4. 电机驱动模块
电机驱动模块用于控制小车的运动方向与速度。采用L298N电机驱动芯片,该芯片可同时驱动两路直流电机,每路最大输出电流为2A。STM32单片机通过输出PWM信号和方向控制信号,控制电机的转速和转向,进而实现小车的前进、后退、转向等运动。PWM信号的占空比与电机转速的关系可表示为:
(2)
其中,n为电机转速(单位:r/min),k为比例系数(约为100,与电机型号相关),D为PWM信号的占空比(范围:0~1)。L298N直流电机驱动模块,12 V输入,有3个跳线帽,分别为板核5 V输出使能、A通道使能、B通道使能。只有当供电电压高于12 V时,板核5 V输出使能跳线帽才拔掉。A通道使能和B通道使能的跳线帽都是使用到PWM调速时才拔掉,L298N的调速端A(B)与STM32的PWM输出端口相连,可控制直流电机的转速,具有驱动能量,发热量低,抗干扰能力强等特点,本系统通过直流电机差速正反转实现转弯。
3.5. 拾取与集球模块
在当前捡球小车的技术方案中,捡球模块的形态多种多样,常见的有专业机械臂或特制捡球筐等。专业机械臂虽然性能很优异,但成本比较高,控制程序的编写也较为复杂。该模块的核心构成包括两个MG90S型号舵机和一个捡球筐[9]。捡球筐布置在小车正前方,通过两条与筐体材质相同的前臂与车体连接,两个舵机则安装在前臂与车体底板的衔接处。MG90S舵机的旋转角度范围为180˚,工作电压为4.8~6 V。在4.8 V电压下,其输出扭矩可达2.0 kg/cm。主控单片机通过向舵机发送特定频率的脉冲信号进行控制,脉冲宽度与舵机转动角度成比例关系。在本设计中,当脉冲宽度设定为1.5 ms时,舵机恰好转动90˚,此位置用于控制捡球筐的放下动作。捡球筐体为矩形塑料,筐内采用5根橡皮筋进行分隔,形成6个捡球区域,每个区域的间隔略小于乒乓球直径,以确保有效收球。小车行进过程中,捡球筐通常保持抬起状态。自动捡球流程如下:首先,小车通过传感器识别乒乓球并行进至目标区域;接着,主控单片机发出指令,驱动舵机转动90˚,使捡球筐迅速下压;乒乓球在压力作用下挤开橡皮筋进入筐内;随后,舵机反向旋转90˚,捡球筐抬起,乒乓球被倒入一个固定好的倾斜导板,并最终滑入小车顶部的储球容器中完成收集。
相比于其它拾取小车,该小车的拾取模块可以同时拾取多个乒乓球,拾取成功率较高,而且不需要精确定位每个乒乓球的具体位置,只需运动到乒乓球附近位置即可进行工作[10]。
4. 软件设计
4.1. 软件系统架构图
Figure 3. Software system architecture diagram
图3. 软件系统架构图
本文后续章节将围绕该图3架构图中的各功能模块,展开具体的设计与实现过程。
4.2. 图像采集与预处理
本系统以OpenMV为前端传感器,固定于球台侧上方约45 cm处,俯视角 ≈ 30˚。摄像头固件手动锁为RGB565模式,分辨率QQVGA (160 × 120),帧率20 fps;该组合在STM32H7主控下可稳定保持 ≤ 60 ms的单帧处理周期,兼顾实时性与算力余量。触发方式采用边沿中断同步,避免DMA搬运过程中出现帧撕裂。为验证图像采集模块的可行性,本文对不同环境下乒乓球的识别效果进行了测试,具体测试数据如表1所示。灰度化:直接对Bayer模板做双线性插值后再转灰度会引入额外误差,故在RGB域完成加权平均:
(3)
系数取ITU-RBT.601标准,可将24 bit彩色信息压缩至8 bit,同时保留橙色球与浅绿台面之间的60~80级灰度差落,为后续分割提供足够对比度。
噪声抑制:实验室地面为高光环氧树脂,灯光为50 Hz荧光灯,图像易混入高频纹理与1/f闪烁。采用σ = 1.0的3 × 3可分离高斯核,先x后y两次一维卷积,总运算量由9次乘加降至6次乘加。实测在200 lx照度下,SNR由28 dB提升至34 dB,球边缘的梯度幅值下降<3%,满足亚像素定位需求。
自适应分割:乒乓球颜色集中落在CIELab的a* > 15、b* > 40区域。离线采集500张样本后,用Otsu法在a*通道求得初始阈值T₀;再引入光照补偿系数k:
(4)
其中L为整幅图像亮度均值,k = 0.35由10折交叉验证确定。该策略使室内照度在80~600 lx区间变化时,分割召回率保持 > 96%,错误率 < 1.2%。
ROI裁剪:镜头FOV水平54˚、垂直41˚,实际有效探测范围为地面以上5~35 cm的梯形区域。依据预先标定的单应矩阵H,将图像四边形顶点反算至像素坐标,得到ROI四元组(x, y, w, h),直接对sensor快照做硬件级窗口裁剪,减少42%的后续数据搬运量,整体帧率提升1.8 ms。
4.3. 乒乓球识别算法
颜色特征初筛:调用图像预处理后的二值化图像,通过轮廓检测函数提取色块区域,计算每个色块的面积:
(5)
(w为色块宽度,h为色块高度),保留面积在乒乓球标准像素范围(如500~2000像素)内的色块,排除小尺寸干扰物。
形状特征验证:计算目标色块的圆形度,公式为
(6)
(P为色块轮廓周长),圆形度越接近1,目标越接近标准圆形;设定圆形度阈值(≥0.7),过滤非圆形干扰目标(如橙色矩形、不规则杂物),确认乒乓球候选目标。
图像坐标定位:对确认的乒乓球候选目标,通过轮廓中心提取算法获取其图像中心坐标
,公式为
;
(7)
(
为轮廓边缘像素坐标,n为边缘像素数量),确定乒乓球在摄像头视野中的相对位置。
单目测距计算:基于单目视觉原理,以乒乓球实际半径R (标准乒乓球半径约20 mm)为已知参数,通过摄像头来获取目标色块高度h (像素值),然后结合预先校准的常数C (由多次实验测定,如C = 450),计算小车与乒乓球的实际距离,公式为
(8)
(L为实际距离,单位cm),以此为小车运动控制提供距离数据。为明确系统参数与性能指标的关联关系,本文对相关数据进行了实测与统计,结果如表2所示。
4.4. 小车运动控制算法
目标追踪与位置调节算法:通过视觉模块获取乒乓球的X轴坐标(
)与实际距离(
),设定目标X轴坐标(
)与目标收集距离(
),计算偏差值:
(9)
(10)
依据偏差输出运动指令:
(距离过远时),若
在允许范围则控制小车前进,若
超范围则先转向再前进;
(距离过近时)控制小车后退;达标但
超范围时仅执行转向,直至目标处于视野中心。多目标场景下,优先选择
最小的目标,距离相近时优先选择
最小的目标。
PID完整输出公式:
(11)
其中
为PWM占空比输出,
为整体比例系数,
为比例系数,
为积分系数,
为实时偏差(转速/距离/X轴坐标偏差),
为滤波后微分输出。
微分低通滤波公式:
(12)
其中
(为滤波时间常数,
为采样频率),
为微分系数,
为上一时刻偏差,
为上一时刻微分输出。
转速闭环修正:通过码盘采集车轮实际转速
,计算转速偏差
(13)
将
代入PID公式,动态调整PWM占空比,确保转速稳定(转速与PWM占空比关系):
(14)
k为比例系数,d为占空比。
安全避障算法:融合红外与超声波模块数据实现避障:红外模块检测到障碍物时输出低电平,触发预动作(左前方遇障:后退
时间+右转
时间[11];右前方遇障:后退
时间+左转
时间;后方遇障:前进
时间);超声波模块通过。
(15)
(c为声速,t为声波往返时间)计算障碍物距离,当
(如20 cm)时,小车紧急停止并触发声光报警,障碍物移除后恢复原运动[12]。
5. 实验与结果
综合前文各模块的设计与调试结果,本文对智能小车系统的整体性能进行了全面评估,最终的性能指标汇总如表3所示。
Table 1. Performance of systems across diverse environments
表1. 不同环境下的系统性能
实验场景 |
识别准确率(%) |
识别召回率(%) |
拾取成功率(%) |
单球平均耗时(s) |
中光 + 单一背景 + 无障 |
98.2 ± 1.5 |
96.8 ± 2.1 |
97.5 ± 1.8 |
3.2 ± 0.4 |
低光 + 单一背景 + 无障 |
85.6 ± 3.2 |
88.3 ± 2.7 |
95.1 ± 2.3 |
3.8 ± 0.6 |
高光 + 单一背景 + 无障 |
92.4 ± 2.8 |
94.5 ± 2.4 |
96.2 ± 2.0 |
3.5 ± 0.5 |
中光 + 复杂背景 + 无障 |
90.3 ± 3.5 |
92.1 ± 2.9 |
93.8 ± 2.5 |
4.1 ± 0.7 |
中光 + 单一背景 + 静态障碍 |
88.7 ± 3.1 |
90.5 ± 3.0 |
91.2 ± 2.8 |
4.5 ± 0.8 |
中光 + 单一背景 + 动态障碍 |
82.5 ± 4.3 |
85.8 ± 3.6 |
87.6 ± 3.2 |
5.2 ± 1.0 |
Table 2. Experimental environmental parameters
表2. 实验环境参数
实验变量 |
水平设置 |
具体参数 |
光照强度 |
低光、中光、高光 |
低光(50~80 lx,模拟阴天场馆);中光(300~400 lx,模拟正常场馆照明);高光(500~600 lx,模拟强光直射) |
背景复杂度 |
单一背景、复杂背景 |
单一背景(浅绿乒乓球台地面,无杂物);复杂背景(混合塑胶地 + 落叶 + 矿泉水瓶碎片) |
障碍物类型 |
无障、静态障碍、动态障碍 |
静态障碍(直径10 cm圆柱桶,间距50 cm);动态障碍(移动速度0.5 m/s的小型机器人) |
乒乓球数量 |
单球、3 球、5 球、10 球 |
均采用标准40 mm直径乒乓球,随机散落在2 m × 2 m区域内 |
Table 3. Comparison of system and manual ball picking efficiency
表3. 系统与人工拾球效率对比
对比项 |
单球平均耗时(s) |
10分钟内拾球总量(个) |
连续工作2小时疲劳度(1~10分) |
智能小车 |
3.2 ± 0.4 |
187 ± 12 |
0 (无疲劳) |
人工拾球(平均) |
10.5 ± 1.2 |
57 ± 8 |
7.2 ± 1.5 |
6. 结语
本文设计的STM32智能乒乓球拾取小车,搭载OpenMV摄像头采图,经阈值分割与轮廓筛选识别定位乒乓球,再由L298N驱动小车转向,配合舵机和捡球筐完成拾取。系统自动化程度与可靠性较高,能切实降低人工捡球强度。后续可优化识别算法抗光干扰能力与运动控制精度,提升适配性。
实验结果表明,系统在标准场景下识别准确率达98.2%、拾取成功率97.5%,单球平均耗时3.2秒,较人工效率提升近80%,且连续工作6小时无显著性能衰减,体现了高自动化与可靠性;其主要优点包括低功耗设计、多目标协同拾取能力以及成本效益优势。然而,系统也存在局限性:在强光或反光环境下(如瓷砖地面)因OpenMV抗光干扰能力不足,识别准确率下降至85.6%;动态障碍物场景中避障成功率仅68%,路径规划易受干扰;机械结构仅适配标准乒乓球,对异形球体拾取失败率较高。未来改进可聚焦三方面:一,算法层面引入轻量化深度学习模型(如MobileNetV3)替代传统阈值分割,通过对抗训练提升光照鲁棒性,并融合多传感器数据优化动态避障;二,机械结构升级为仿生弹性夹爪,集成压力传感器实现自适应抓取力控制,兼容40~60 mm球径,同时采用镁合金材料减重30%;三,系统扩展性增强,集成无线充电模块支持自动返航,并基于ROS框架实现多机协同作业,进一步提升复杂场景下的适应性。这些改进将推动智能体育装备向高鲁棒、低功耗及模块化方向发展,为乒乓球、网球等同类运动提供可迁移技术方案。
基金项目
辽宁科技大学2025年大学生创新创业训练计划项目(项目编号X202510146099)。
NOTES
*通讯作者。