APP下载

乒乓球机器人核心算法研究综述

2023-12-05索芳菲季云峰

电子科技 2023年12期
关键词:回球乒乓球轨迹

索芳菲,季云峰

(1.上海理工大学 健康科学与工程学院,上海 200093;2.上海理工大学 机器智能研究院,上海 200093)

环境感知、运动规划、动作决策和执行是机器人系统的关键技术[1]。乒乓球机器人作为一个集机器视觉与运动控制于一体的综合性研究平台已有较长研究历史,但由于乒乓球机器人在机械结构、视觉算法和运动控制等领域存在高精度和高实时性等技术难点,其研究发展缓慢[2]。随着科学技术的不断发展以及硬件和软件系统的升级,国内外研究团队研发出了多款可实现人机对打的乒乓球机器人。近年来硬件技术的发展趋于平缓,为了提高乒乓球机器人的竞技性,算法改进已成为该领域的研究热点。

乒乓球机器人实现击球任务需要解决乒乓球目标跟踪、轨迹预测以及击球动作决策等难题,具体流程如图1所示。

图1 乒乓球机器人击球过程Figure 1. Table tennis robot hitting process

在整个击球过程中涉及以下技术难点:首先在实际的乒乓球运动中,乒乓球的速度超过6 m·s-1,从乒乓球被击出到达击球平面的时间通常不会超过600 ms,对乒乓球机器人系统的视觉识别、轨迹预测和运动决策的实时性提出了较高要求。此外,由于在旋转乒乓球飞行过程中受多种力的合成作用,飞行轨迹模型是一个高阶非线性的耦合模型,且由于球表面纹理特征不明显,对于球旋转速度的测量也是难以解决的难题,导致无法针对旋转球的飞行轨迹进行准确预测从而无法得出准确的击球策略。针对上述难点,本文对近年来乒乓球机器人在视觉核心算法、回球核心算法等方面的研究进展进行了总结。

1 视觉核心算法及难点

为了给乒乓球机器人留出充足时间进行运动决策和执行,视觉伺服系统需要提前预测击球点以及乒乓球在击球时刻的运动状态,并将这些信息发送给机器人。假设球的初始速度为6 m·s-1,球飞跃整个球桌时间需500 ms,机器人驱动执行机构执行击球动作大概需要350~400 ms,所以视觉伺服系统需要在150 ms以内完成乒乓球的识别定位和轨迹预测。视觉系统除了需要强大的硬件支持外,其对视觉算法也提出了较高的实时性和准确性要求。

1.1 乒乓球旋转测量

由于乒乓球机器人视觉系统的视野范围覆盖整个乒乓球的有效飞行区域,如果采用高分辨率相机会导致数据传输和处理效率变低,所以一般选用30万像素左右的相机,导致在整个区域中球所占像素较小,只能获得乒乓球的质心位置信息,无法得到有效旋转信息,进而无法预测旋转球的飞行轨迹。

基于球的表面标记或者基于球的商标来直接观测球的旋转运动状态和通过飞行轨迹反向推导球的旋转运动状态是目前研究人员所采用的球旋转测量方法。

在前期针对乒乓球旋转测量算法的研究均需要对乒乓球添加标记,例如文献[3~7]采用了采集图像速度在500~1000 frame·s-1的高速相机,通过采集小范围区域内乒乓球的图像,根据球上的特殊人工标记点或球标,结合背景差分法[8-9]来计算球的旋转速度和姿态。该方法因需要离线进行图像处理故无法满足实时性要求,且相机的视野范围只能覆盖乒乓球轨迹的一小段,因此无法预测整个飞行轨迹旋转状态,导致上述系统无法用于实际比赛。为了解决上述系统的不足,文献[2]基于Pan-Tilt云台开发的高速视觉系统可专门用于测量球的旋转信息。该研究提出了一种基于帧差法的球商标识别方法,此方法能够在正常光照条件下识别乒乓球的自然商标,在准确识别到商标的基础上提出了一种基于随机样本一致性的自旋估计方法,对于旋转速度在0~60 rad·s-1、飞行速度在0.5~5.7 m·s-1的乒乓球,当旋转速度的估计误差小于1.28 rad·s-1时,结合位置和自旋信息,基于力的动力学模型,通过扩展卡尔曼滤波器可以实现精确的轨迹预测,并成功伺服机器人实现对旋转球的回击。

除上述基于球商标的运动状态观测方法外,文献[10]提出根据运动轨迹偏移量反推旋转大小。文献[11~12]基于该思路进一步完善了推导过程。根据前后球速度的变化推导出乒乓球受力的大小,从而推算出旋转速度。该方法相较于基于球标观测法具有较高的实时性,但是由于推导过程存在多种力的耦合作用,导致估计结果精度不高。文献[13]通过采集大量旋转乒乓球运动轨迹数据,使用无监督聚类算法对轨迹数据进行聚类分析,利用傅里叶级数拟合各类轨迹数据的飞行速度随时间的衰减曲线,得到扩展的连续运动模型,并使用最大期望值算法估计旋转运动状态。该算法在x和z方向的旋转运动状态预测精度分别达到5.36 rad·s-1和2.97 rad·s-1,成功伺服机器人接旋转球。文献[14]提出了一种基于遗传学算法的利用乒乓球轨迹反向推导旋转速度的方法,为乒乓球旋转测量研究提供了一种新思路。文献[15]通过将神经网络进行堆叠实现乒乓球轨迹的预测,并根据预测到的飞行轨迹反推出乒乓球大致的旋转类型,针对不同旋转类型采用不同击球角度击球,提高了机器人对旋转来球的回球成功率。

表1列出了文献[2]和文献[13]的主要区别。通过对旋转测量方法的深入研究,目前有些研究团队已经成功实现乒乓球机器人对旋转球的回击,但是这些方法对球的旋转速度有一定要求,一般在40~70 rad·s-1范围内算法有效。数据显示比赛中上旋球前冲弧圈最高能达到120 rad·s-1,因此对于高速旋转乒乓球的旋转速度测量有待进一步研究。

表1 两种旋转测量方法对比

1.2 轨迹预测算法

旋转球在飞行过程中受多种力影响,其飞行建模较复杂,需要简化其模型复杂度。文献[10]和文献[16~17]采用多项式拟合估计和建模预测组合的方法,在其各自的乒乓球机器人系统上进行了验证。采用曲线拟合进行运动状态估计的方法具有较好的适应性和稳定性,且实现过程较为简单,是当前的主流方法之一。文献[18]在力分析的基础上扩展卡尔曼滤波进行运动状态估计,提出了一种参数识别和自适应策略,针对不同速度的球有不同模型参数,该方法也达到了较好的视觉伺服效果。传统基于模型的轨迹预测方法利用线性模型逼近实际旋转乒乓球高阶非线性模型,当球的旋转速度较高时,轨迹预测误差累积会降低轨迹预测精度。为了提高轨迹预测精度,文献[19]提出了一种“2+1”式的三目组合式视觉系统。双目系统负责匹配解析距离,单目进行乒乓球的识别跟踪,最后通过计算机拟合出高精度的乒乓球运动轨迹。为了提高视觉系统跟踪的实时性,文献[20]分别针对高速和低速两种摄影条件设计不同的算法对乒乓球进行跟踪识别,提出了一种规划感兴趣区的算法来降低计算量,实现了跟踪的实时性。

除了难以准确建立飞行模型,旋转球的碰撞模型也是一大难点。在一个乒乓比赛回合中,击球后乒乓球首先与球桌发生碰撞,反弹后到达击球点然后与球拍发生碰撞。乒乓球与球桌的碰撞模型决定能否准确预测碰撞后的轨迹和到达击球点的状态,且乒乓球机器人在进行回球动作决策时根据乒乓球与球拍的碰撞模型来确定合适的回球动作,因此建立准确的碰撞模型较为重要。

文献[21]和文献[22]未考虑旋转对乒乓球碰撞的影响,仅提出了一个简化的一阶线性碰撞模型。文献[12]假设乒乓球与球桌仅存在滑动摩擦力,且摩擦力为常量,基于此提出了一个旋转速度和飞行速度相互影响的一阶线性模型。为了更好地描述乒乓球在不同运动状态的碰撞模型,文献[23~25]将乒乓球在碰撞点出的旋转速度转化为等效的相对移动速度,通过分析碰撞点处乒乓球与球桌的相对运动,将摩擦力分为滑动摩擦力和滚动摩擦,分别对两种摩擦力进行讨论,提出了分阶段性的碰撞模型,并进一步推导出两种情况的临界条件。

虽然这种分阶段的碰撞模型相较于简单地一阶线性碰撞模型具有更强的适应性,但是实际上旋转乒乓球与球桌的碰撞过程较为复杂,不应该简单地将摩擦力看作一个常量。文献[26]将乒乓球与球桌的碰撞看作连续过程,用连续函数描述在碰撞过程中乒乓球的受力和模型参数,基于动量定理、角动量定理和积分均值定理推导出非线性碰撞模型,并设计多层感知机对碰撞模型中的未知函数进行有效辨识。文献[27]通过利用支持向量回归对乒乓球反弹前后在三维方向上的位置与速度进行信息拟合得到碰撞模型,但该方法也不能准确预测高速旋转球碰撞后的状态,因此对高速旋转球碰撞模型有待进一步研究。

随着人工智能技术的发展,基于深度学习方法可以在没有强假设和先验知识的情况下学习数据的分布特征,因此基于深度学习方法进行轨迹预测也是近几年的研究重点。文献[28]使用k-means算法将轨迹进行分类,然后使用傅里叶级数拟合每个类的轨迹以获得扩展的连续运动模型(Extend Continuous Motion Model,ECMM)。实验结果表明,该方法可以同时估计乒乓球的飞行状态和旋转状态,准确预测乒乓球的飞行轨迹。对于飞行速度达到6.5 m·s-1、旋转速度达到160 rad·s-1的不同旋转类型的旋转来球,机器人的回球成功率达到71.2%。在该模型中未将阻力系数和马格努斯里系数视为与实时运动状态相关的变量,这会影响运动状态预测的精度。

文献[29]提出了一种通过反向传播(Backpropagation Network,BPN)进行球的轨迹预测方法,使用两个神经网络来学习完整的乒乓球飞行轨迹,第一网络和第二网络分别针对碰撞球桌前后的两条抛物线进行训练,只需要使用第一条抛物线的前10个点就可以通过训练好的网络预测出击打点。实验结果表明,该方法预测非旋转球的准确率为88%,测试轨迹偏差约为37 mm,结果并未体现针对旋转球的轨迹预测准确率。文献[15]搭建了基于长短期记忆(Long Short-Term Memory,LSTM)的旋转乒乓球轨迹预测网络。文献[30]提出了一种基于动态卷积结合长短期记忆的神经网络模型(Dynamic Convolution Neural Network-Long Short-Term Memory,DCNN-LSTM)模型来识别并跟踪乒乓球在复杂环境中的实时轨迹,其中DCNN负责跟踪识别目标,LSTM算法负责预测轨迹。LSTM网络与多个模型融合,显著提高了预测精度。基于深度学习方法进行轨迹预测的方法总结如表2所示。

表2 基于深度学习方法进行轨迹预测方法总结

综上所述,无论是基于参数模型方法还是基于深度学习方法都可以有效预测非旋转来球的轨迹,但对于旋转球的轨迹预测依然存在较多问题。

1.3 运动员击球动作估计

乒乓球运动是一项交互运动,除了对乒乓球的感知,机器人还应该具备对对手行为的感知和预测。在实际的乒乓球比赛中,运动员的击球动作直接影响球的飞行轨迹,有经验的远动员擅长观察对手行为,可通过捕捉对手击球行为预判球的运动状态提前做出反应。

文献[31]使用两个单目摄像机,提取球拍的轮廓,并在图像坐标中选择一些特殊点作为特征点。利用球拍的三维几何信息提出了一种宽基线立体匹配方法,计算球拍的三维位置和方位,然后采用卡尔曼滤波器跟踪球拍姿态,采用两个隐层的神经网络对姿态进行分类,并通过实验验证了评估球拍姿态和分类的准确性。为进一步预判球的旋转类型及速度,文献[32]提出了一种基于视觉的乒乓球击球点与对手的击球行为估计方法。基于深度神经网络的方法降低了对视觉系统设备的需求,能够对对手进行人体位置检测和姿态识别及动作分析,并根据识别到的姿态序列建立分类模型,判断出击球运动动作类别,从而预判乒乓球的旋转类型及速度。

目前,对于击球动作估计研究处于初级阶段,由于在乒乓球运动中近似动作较多,动作幅度和速度较大,目前已有的击球动作估计算法大都无法满足实时性和准确性要求。

2 回球核心算法及难点

在人机对打过程中,需要对机器人进行规划以确定何时、何地以何种姿态回球。由于时间限制及探索空间的维度和建模的不确定性,选择回球策略在整个乒乓球机器人系统中也是一项具有挑战性的任务。

2.1 击球点选择

在传统乒乓球机器人回球方法中,击球点的质量是回球成功的关键,但大多击球策略并未将击球点的选择作为变量进行考虑。为了更有策略地选择乒乓球机器人的击球点,文献[33]提出了一种学习最优击球点方法。由于成功回球是多种因素的结果,而这些因素无法直接建模,因此提出根据奖励函数确定最佳击球点。文献[34]在文献[33]的基础上提出了一种乒乓球机器人组合学习框架。与预测单个击球点不同,该研究构建一个球轨迹预测图以及一个机器人轨迹生成图,机器人轨迹生成图使用笛卡尔球拍轨迹预测机器人的关节运动模式和运动持续时间,通过球的飞行轨迹调整关节运动参数,从而直接生成关节轨迹,不需要逆运动学。除此之外,大多研究是将击球点选在机器人手臂能够达到的预测轨迹最高点。由于在视觉系统采样过程中存在像素偏差现象,因此计算球的圆心坐标时会产生误差,从而得到的预测轨迹也会出现偏差。为了解决该问题,文献[35]提出了一种聚类算法来筛选击球点,对于每一条飞行轨迹都可以得到一组预测的击球点,设计一个循环程序,每次循环首先计算这组击球点的平均值,然后得到每个击球点到平均值的距离,按距离对击球点进行降序排列,将其前25 %的数据去除,更新击球点集合,直到得到最终击球点退出循环。该方法可以精确预测击球点,降低击球点预测误差。

2.2 回球落点和速度控制

学习将任意状态的来球回击到期望落点是乒乓球实现竞技性击球的重要基础。针对乒乓球机器人回球决策问题,传统方法主要采用非线性优化方法进行相关模型的联立求解。在前文中提到旋转球的飞行模型是高维、非线性、高耦合,如果只给定球的一个初始位置和指定目标终点,由于球的飞行速度和旋转速度都在连续域中,因此满足条件的解有无穷多个。如果不考虑机器人的约束,在给定目标着陆点的情况下不可能推导出末端执行器反向传播击球动作的解析解。为了简化求解过程,同时为了满足实时性要求,通常会简化模型或者对决策目标进行简化来提高方法的求解效率。文献[36]在分析旋转乒乓球的飞行过程和碰撞过程基础上,通过将计算过程中的空气动力学模型简化为线性简单模型,求解时间从秒级降低到30 ms以内,按此方法进行了3次回球测试,成功完成了某个期望落点的来球回球,回球平均落球误差约为0.039 5 m。文献[37]简化了回球决策的目标,将整个回归球体划分为9个区域,回归决策的目标从桌子上的某个点变为9个区域的某个区块。通过该化简方式,算法求解难度降低,求解时间减少到1 ms左右,该方法在实物实验中达到58%的回球准确率。文献[38]将目标点固化在某一点,将击球平面分成多份,然后根据每个击球平面上乒乓球的运动状态进行细分,细分后求解每个状态,对求解结果进行逆运动学求解,得到各关节的角速度,最后将这些参数结果以表格形式保存,从而实现在线快速查表使用,其查表速度达到微秒级。该方法也可以实现对回球落点和速度控制,但是要构建大量数据集,且泛化性较差,无法应对更多的变化来球。文献[39]结合飞行模型和碰撞模型以及机器人自身限制条件反推算得到球拍的击球速度和姿态,其中碰撞模型和飞行模型的建立并未考虑球的旋转速度,且该过程用MATLAB进行了仿真验证,只验证了规划的可行性与合理性。

传统回球决策算法只能解决低速非旋转来球的落点控制,准确性较差,对于回球落点和速度的控制有待进一步研究。传统的回球决策算法总结如表3所示。

表3 基于传统方法将球回至期望落点总结

2.3 学习算法对策略的选择

强化学习(Reinforcement learning,RL)在计算机游戏、无人驾驶以及工业自动化等领域得到了广泛应用,因此研究乒乓球机器人的研究团队也在尝试将强化学习算法应用于乒乓球机器人的击球策略等方面。

文献[40]将击打带旋转的飞球至目标着陆点的问题建模为马尔可夫决策过程,将其视为基于蒙特卡罗的强化学习任务。在虚拟环境下进行了超过20 000回合的训练,其落点在目标位置的0.05 m误差范围内的百分比为99.22%。可以看出,利用强化学习算法进行击球策略学习,回球准确率具有明显提升。但是该算法的有效性只在虚拟环境下进行了验证,未在真正的机器人上进行验证。

为了让乒乓球机器人更加有效地探索复杂策略空间,文献[41]在虚拟现实(Virtual Reality,VR)环境下将学习方法纳入分层控制框架,使用无模型策略层对对手进行复杂推理、基于模型的外部对象预测以及机器人自身的解析控制器。通过人类演示来训练动力学模型。实验结果表明,仅使用7 000条演示轨迹,乒乓球机器人便可以在20 cm的误差范围内将球回至目标落点。

为提高回球准确率和乒乓球机器人的学习效率,文献[42]提出了一种RL算法,使用KUKA Agilus KR 6 R900机械臂可以在200个回合以内学会准确的回球。该算法在传统深度确定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法上进行改进,将值函数网络(Critic)的输出改为计算奖励值(Reward)所需的参数,随后使用随机梯度下降(Stochastic Gradient Descent,SGD)对动作进行后优化,使用值函数网络和收益函数之间的组合梯度,训练策略网络,使其输出奖励最大化。最后在一个真正的机器人上进行了多种测试,包括定点回球,以及V型、X型回球等。测试结果表明,在多种不同的回球测试下,乒乓球机器人均具有较高回球准确率。但该研究并未提及球的具体旋转速度,并不能保证该算法在旋转球的回球问题上同样具有有效性。文献[43]提出了基于DDPG框架的乒乓球机器人回球决策网络,将击球时刻球的空间位置、飞行速度和旋转速度作为输入,将球拍的姿态和速度作为输出,收益函数考虑了回球的准确性和安全性。该决策网络在仿真环境下进行70万次迭代训练后,乒乓球机器人在0.05 m的落点误差范围内回球成功率达到100%。但该算法也仅在仿真环境下进行了验证,在实际乒乓球机器人系统中运行效果并不理想。

针对旋转球的回球准确性难题,文献[44]提出了基于强化学习的球的旋转速度估测方法,设计了一个改进的DDPG作为骨干网络来估计乒乓球的旋转速度。该方法将每一回合的前20个等间隔乒乓球轨迹空间位置作为LSTM网络的输入,LSTM网络将输入编码为LSTM状态(50维向量),将该状态以及五维动作向量(三维线速度分量和球拍的俯仰和偏航)作为价值网络的输入,输出状态动作价值Q。该算法进行了50 000次迭代训练后,旋转球的回球成功率由原来的16%提升到70%,表明该算法可以实现对旋转球的有效回球。但该算法对于球速有一定要求,且回球准确率有待进一步提高。

综上所述,强化学习在乒乓球机器人回球策略方面已经有了初步探索,并取得了一些新的研究成果。基于学习算法的回球策略方法总结如表4所示。不断提高回球技术和策略实现与人类竞技击球是未来几年乒乓球机器人研究者应该关注的研究重点。

表4 基于学习算法的回球策略方法总结

3 结束语

乒乓球机器人系统作为一个综合性的研究平台,将目标检测、运动建模、运动状态估计、轨迹预测、运动规划与控制等问题结合于一体。经过多年以及多个团队的研究,乒乓球机器人硬件系统的建立趋于完整,近些年对于乒乓球机器人的研究重点在于解决乒乓球旋转测量、运动轨迹精确预测及击球策略选择等难题,通过总结现有乒乓球机器人核心算法发展现状,本文提出以下观点并进行展望。

乒乓球机器人研究工作存在的问题:

1)视觉系统对高速旋转球的观测能力较差。对于飞行速度超过20 m·s-1以上、旋转速度超过100 rad·s-1以上的极快球,视觉系统不能够获得准确的乒乓球轨迹数据,进而无法进行准确地轨迹预测。

2)基于模型的轨迹预测方法对旋转球的轨迹预测误差较大。传统基于模型的轨迹预测方法是根据近似的线性模型来逼近实际旋转乒乓球高阶非线性模型,但轨迹预测误差的累加导致预测精度低且通常只能适应某种类型的旋转球,导致乒乓球机器人回击旋转球的能力较差。

3)对环境影响因素感知和融合能力有待提高。提高乒乓球机器人的竞技能力应该具备更加全面的感知能力,包括机器人本体的运行状态、对手击球动作以及球拍运动信息等。将多方面信息进行融合,对比赛状态进行准确分析是机器人提高竞技水平的前提。

基于上述研究面临的问题,可开展以下研究方向:

1)将深度学习技术与基于模型的轨迹预测方法相结合。深度学习方法能够自动根据旋转球的飞行轨迹数据寻找特征,其学习效率较高,可弥补模型误差的影响。基于动力学模型的轨迹预测方法可解释性强,利于进行数据分析。将两种技术进行结合更能够发挥各自优势,提高旋转球轨迹预测的准确率。

2)利用深度强化学习技术提高乒乓球机器人的回球技能。目前已有团队开展了基于强化学习的回球决策研究,但是目前针对旋转来球没有较好的解决方案。在未来研究中应该利用深度强化学习方法训练机器人更加有策略地回击高速旋转来球。

3)结合深度学习算法提高对手击球动作分析能力。目前对于击球动作估计研究处于初级阶段,不能在实际比赛中应用。在未来研究中应该加入更多对手击球动作分析,根据对手击球特点,找到其薄弱点选择更加有效的回球策略。

综上,目前乒乓球机器人可以做到与人类合作击球,并且可以实现连续多回合击球。但是接打旋转球技术和更加有效的回球策略亟待提高。机器人应该像人类一样具有学习能力和随机应变能力,新一代的乒乓球机器人应该具备更加智能的回球策略,可以迅速适应环境变化,根据对手的击球特点做出有效攻击。通过不断提升回球技术和策略实现与人类的竞赛击球并争取取得比赛的胜利是乒乓球机器人要实现的目标之一。

猜你喜欢

回球乒乓球轨迹
乒乓球悬浮术
轨迹
轨迹
跳舞的乒乓球
乒乓球瘪了怎么办
靠拢的乒乓球
轨迹
里约奥运会中外女排接拦回球效果的比较研究*
进化的轨迹(一)——进化,无尽的适应
妙用积分定义解题