有视频
论文链接:https://arxiv.org/pdf/2408.03906
项目链接:https://sites.google.com/view/competitive-robot-table-tennis
❝亮点直击
采用分层和模块化的策略架构,具体包括:(i) 具有技能描述的低级控制器和(ii) 选择低级技能的高级控制器;
使zero-shot 模拟到现实转化的技术,包括一种迭代的方法来定义基于现实世界的训练任务分布,并定义自动化课程;
对未见对手的实时适应能力;
一项用户研究,测试本文的模型在物理环境中与未见人类进行实际比赛的表现。
实现人类水平的速度和性能,在现实世界任务中是机器人研究社区的北极星目标。本研究朝着这一目标迈出了重要一步,展示了首个能在竞技乒乓球中达到业余人类水平表现的学习型机器人代理。乒乓球是一项对身体要求极高的运动,要求人类运动员经过多年的训练才能达到高级水平。在本文中,本文贡献了以下内容:(1) 一个层次化和模块化的策略架构,包括(i) 具有详细技能描述符的低级控制器,模型化代理的能力,帮助弥合模拟与现实之间的差距,以及(ii) 选择低级技能的高级控制器;(2) 实现零-shot 模拟到现实的技术,包括一种迭代方法来定义基于现实世界的任务分布,并定义自动课程;(3) 对未见对手的实时适应。策略性能通过29场机器人对人类的比赛进行评估,其中机器人赢得了45%(13/29)的比赛。所有人类对手都是未见的选手,他们的技能水平从初学者到比赛级别不等。尽管机器人在与最先进选手的所有比赛中均告失利,但在与初学者的比赛中赢得了100%的胜利,与中级选手的比赛中赢得了55%的胜利,充分展示了其业余人类水平的表现。
方法
A. 硬件、问题设置和环境
上图 1 展示了物理机器人。这个乒乓球机器人是一个具有 6 自由度的 ABB IRB 1100 机械臂,安装在两个 Festo 线性龙门架上,能够在二维平面上运动。 龙门架负责横向移动,长度为 4 米; 龙门架负责向桌子方向和远离桌子的移动,长度为 2 米。一个使用短颗粒橡胶的 3D 打印球拍手柄和球拍附在 ABB 机械臂上。一对以 125Hz 运行的 Ximea MQ013CG-ON 摄像头用来捕捉球的图像,这些图像作为神经感知系统的输入,该系统以相同频率生成球的位置。本文使用由 20 个摄像头组成的 PhaseSpace 动作捕捉系统,这些摄像头安装在比赛区域周围,用于追踪人类对手的球拍。
本文将乒乓球建模为一个单代理的顺序决策问题,其中人类对手被建模为环境的一部分。本文使用马尔可夫决策过程(MDP)的形式化方法。它由一个四元组 组成,其中的元素分别是状态空间 ,动作空间 ,奖励函数 ,以及转移动态 。一个回合 是一个有限的序列,包含 ,, 元素,从起始状态 开始,当环境终止时结束。一个回合由一次击球和回球组成,从对手的球拍接触球的那一刻开始,结束于以下条件之一发生时:1)机器人回球,2)球出界,或 3)机器人漏球。回球意味着机器人击球,使其在对方桌面弹起,而不先在自己一侧弹起。
真实环境包括神经感知系统,该系统用于跟踪球的轨迹;运动捕捉系统,用于跟踪人类玩家球拍的姿态;一个用于跟踪比赛状态的状态机;以及一个观察模块,该模块向策略提供诸如球的位置和速度、机器人位置等数据。此外,本文还构建了一个基于MuJoCo物理引擎的对应模拟环境。关于基本系统的详细描述可以在[9]中找到。下面,本文描述了为实现与人类实时竞技而对该系统所做的更改。
B. 分层代理架构和培训概述
本文的代理架构和训练方法专为解决与人类进行乒乓球竞技所带来的诸多挑战而设计。下图2所示的乒乓球代理由两个控制层级组成,本文称之为高层控制器(HLC)和低层控制器(LLCs)。LLCs是代表不同乒乓球技能的策略,训练以每秒50次的频率生成关节速度命令。例如,LLCs可能代表使用正手击球并击打斜线球、保守地使用反手击球,或使用正手回击下旋发球。
HLC负责在每次来球事件中选择应执行的LLC。HLC没有固定的控制频率,而是在对手击球时触发动作。在HLC中,有六个组件组合起来选择LLC:(1)风格:这是一个训练选择打法风格的策略,比如正手或反手,基于来球情况;(2)旋转分类器:该分类器提供关于来球旋转的信息,识别上旋或下旋;(3)LLC技能描述符:这些是代理自身能力的模型。它们为每个LLC提供性能元数据,比如在特定来球情况下的预估回球率、击球速度和落地点;(4)关于对手和机器人的比赛统计数据;(5)策略:这些以(1)、(3)和(4)为输入,输出LLCs的候选名单;(6)LLC偏好(H值):这些估计每个LLC在当前玩家下的表现,并在每次击球后更新。HLC结合(3)、(5)和(6)来最终选择LLC。HLC内的整个控制流程在20毫秒内完成。
本文选择训练多个模块化的LLCs而不是单一的整体LLC,原因有多方面:避免灾难性遗忘——一旦学会了一个好的技能,它就不会被遗忘,同时还能作为进一步技能学习的初始化点。可扩展性——通过添加新的LLC可以轻松地加入新技能。评估效率——这反过来加快了实验速度。一旦低层技能在现实世界中经过测试,其能力就被充分了解,不必重新测试。相比之下,每次模型权重变化时,整体学习系统需要在所有预期能力上进行测试。快速推理——每个LLC在CPU上的推理耗时为3毫秒。
C. LLC 训练
LLC和HLC风格的策略通过迭代训练进行,交替进行模拟训练和在真实世界中的zero-show部署,在此过程中人类对手与机器人进行对抗。任务中固有的人机交互性促使本文将所有训练完全在模拟中进行。在真实世界中进行人类参与的复杂技能微调过于耗时且不可行,尤其是因为之前的研究[8]显示,与单个人类合作训练一个策略需要6小时的真实世界微调。这导致本文付出了大量努力来缩小模拟与现实之间的差距。
LLC旨在提供一套技能库,以便本文的HLC可以在其策略中部署这些技能。本文对LLC的训练方法可以总结为三个步骤:
-
训练两个通用基础策略,每个主要的打法风格(正手、反手)各一个,并将其添加到LLC集合中。
-
通过添加奖励函数组件和/或调整训练数据混合来使策略专门化,以便从现有的LLC中初始化一个新的策略进行微调。通常,这个新的策略是从通用基础策略之一开始的,但也可以是LLC集合中的任何策略。
-
评估新策略并判断其是否表现出期望的特性。例如,如果一个策略被训练来瞄准桌上的特定位置,则计算球落点与目标之间的平均误差。如果成功,就将该策略添加到LLC集合中。
训练算法 所有策略均在模拟中使用黑箱梯度感知(Blackbox Gradient Sensing,BGS)进行训练,这是一种进化策略(Evolutionary Strategies,ES)算法,应用于前文中描述的任务。初始球状态的训练任务分布是从一个真实世界数据集中采样的,该数据集是通过多轮策略训练和真实世界评估迭代收集的。有关创建此数据集的详细信息在接下来的内容中讨论。本文选择BGS是因为本文观察到它生成的策略动作相对平滑,而使用PPO或SAC等RL算法训练的策略动作明显较为急促。此外,BGS在模拟到现实的传输性能上表现出色。本文假设动作的平滑性以及可能较少过拟合于模拟器是BGS训练的策略表现出良好传输性能的主要原因。
网络架构 每个策略是一个扩张门控卷积神经网络(CNN),遵循[23]中的架构,具有10,000个参数,并可选配有一个2,800个参数的FiLM适配层,以帮助模拟到现实的转移。CNN包含1D卷积,沿时间步长进行卷积。[23]发现这加速了学习并导致输出更平滑。观察空间是,包括8个连续时间步长的球位置和速度(6),机器人关节位置(8),以及一种一热编码的风格:正手或反手(2)。风格组件是早期实验的产物,可能可以在不影响性能的情况下移除。所有策略输出维度为的动作,代表以50Hz的频率的关节速度。8个时间步长代表0.14秒的历史,这在经验上被认为足以平滑轨迹中的噪声并为当前状态提供上下文。
训练通用基础策略 为了训练特定风格(正手、反手),数据集中每个球状态都根据球轨迹与机器人一侧桌子后方的交点标注为正手、反手或中心。中心定义为桌子中心±0.2米,正手为> 0.2,反手为< -0.2。正手策略仅在正手+中心球上训练,反手在反手+中心球上训练。这在中心区域产生了重叠,两种风格的策略都能够返回相同的球。策略还因在击球开始时朝参考姿势(正手或反手)移动而获得奖励。没有这样的奖励,本文观察到机器人有时会采用反手姿势来击打正手球,即使这样效率较低。这些基础策略很重要,不仅因为它们提供了一个能够返回广泛球类的强大起始策略,还因为它们在特定风格中锚定了比赛以便高效返回。
训练专家 本文根据乒乓球教练的建议和一般比赛直觉,尝试训练不同类型的技能,包括针对特定回球位置、最大化回球速度,以及专门应对上旋或下旋发球、快速球和高球。本文发现不需要专门训练处理高球的专家,并且由于数据和硬件限制,无法训练处理快速球的专家。因此,本文专注于开发发球、定位和快速击球的专家,除了通用策略之外。
确定技能策略的总集合 最终系统包含17个低级控制器(LLC)。其中4个专门用于回发球,13个用于对打。11个使用正手风格,6个使用反手风格。重要的是,每个策略都有相同的初始机器人姿势,这使得LLC选择的顺序安排变得简单,因为所有LLC的初始机器人姿势都在分布范围内。训练谱系以及每个LLC的简要描述如下图3所示。本文持续训练LLC,直到覆盖了目标技能集——一致的通用策略、定位、快速击球、上旋和下旋发球。除此之外,拥有多样化的比赛风格并为高级控制器(HLC)提供选项是有利的。演化策略(ES)训练意味着使用相同目标训练的策略可以表现出不同的行为,并且由于模块化架构,包含额外的LLC几乎没有缺点。因此,如果本文有一个强大的LLC,本文会将其包括在内,即使已经有一个LLC涵盖了该特定技能。
D. 高级控制器 (HLC)
高层控制器(HLC)负责做出战略决策,例如:球应该回到哪里、击球速度多快、以及采取多大的风险。决策过程的概述可以在下面算法1和下图4中找到。目前,HLC只能执行简单的策略,作为整个系统的初步概念验证。然而,选择策略的子组件可以很容易地替换为更具表现力的实现,甚至可以包括一个完全学习的模型。接下来本文详细介绍HLC的组成部分以及它们如何结合起来产生一个动作。
-
事件驱动的决策:HLC的动作由对手击球(即代理外部的事件)触发。在对手击球后的一个时间步,HLC做出一个决定,该决定适用于直到对手再次击球为止。在HLC决定该球的策略后,机器人才开始移动。等待一个时间步为策略提供了足够的信息来做出决策。本文也尝试过零和三个时间步,但三个时间步没有给机器人足够的时间来对更快的球做出反应,而零时间步则不能准确估计球速。决策只做一次,因为在挥拍过程中切换低层控制器(LLCs)导致策略进入了训练分布之外的状态(即机器人手臂不在预期的位置,因为之前的LLC将其移动到了新的位置),从而表现不佳。
-
风格策略,应该使用正手或反手风格来回击球。一个简单的启发式方法是将球台简单地分成两半,并根据球落在哪一半来选择风格。然而,这种方法忽略了许多战略上的权衡,例如正手击球更容易被对手扣杀,以及靠近中心的球具有不明确的性质。此外,现实世界中的噪声和本文无法完全捕捉旋转的能力可能导致本文的物理估计不准确。
通过学习风格策略,高级控制器(HLC)可以理解个别低级控制器(LLC)的优势,并补偿系统性的不准确性,从而做出更好的整体战略决策。风格策略的架构与LLC相似,但只有4,500个参数,具有 的观察空间。本文将LLC的 观察展平,并堆叠最新的8个观察来形成观察。这种观察空间是先前HLC迭代需要更长历史的产物。对于当前每个球只做一次早期决策的实现而言,更小的历史记录是更可取的。动作空间是 ,表示在正手和反手之间进行单一热编码的选择。
为了训练风格策略,本文首先选择了一个通用的正手和反手LLC,并冻结了它们的权重。然后,本文选择了所有可用的球状态(包括反射),并训练风格策略以最大化预期的球落点率。尽管本文用回合球状态训练了风格策略,但本文发现它能泛化到发球状态。因此,本文在比赛的发球和回合阶段使用了单一策略。
-
旋转分类器:旋转分类器是一个二元分类器,用于确定来球是被人类以上旋还是下旋击打的。这对于选择合适的服务低级控制器(LLC)至关重要,因为与回合中的击球不同,本文发现很难有一个通用的策略来处理上旋和下旋的发球。为了训练该模型,本文从发球数据集中构建了一个球拍和球状态的数据集。具体来说,本文记录了球拍接触球之前的6个时间戳的球和球拍状态的历史。观察空间为 ,策略是一个两层的多层感知器(MLP),输出的是来球是上旋或下旋的概率。
在推理过程中,为了提高对下旋(这两种旋转类型中较不常见的)预测的精确度,本文要求分类器在至少连续5次查询中有4次预测为下旋,才能将其总体视为下旋预测。
-
LLC 技能描述符:在互动性体育运动中表现出色,了解自身能力至关重要。这促使本文开发了 LLC 技能描述符,为高级控制器(HLC)提供每个 LLC 在给定来球情况下的估计性能的详细指标。它们是代理对自身能力的模型,与对手模型和当前比赛玩法一起,构成了所有战略决策的基础。
为了创建这些描述符,本文在模拟环境中对每个 LLC 进行评估,覆盖所有 28k 的球状态,并平均重复十次,记录以下策略元数据:
-
初始球位置和速度。
-
球拍后中位数击球速度(击球速度)。
-
球在对方场地上的落地点和标准差。
-
球落地率(落地点率)。
这些元数据用于构建查找表(本文使用了 KD 树),其中键代表初始球位置和速度。对于比赛中的任意球,可以查询该表以获取关于每个 LLC 可能性能的信息,通过平均它过去见过的相似球的性能来进行选择。尽管本文观察到每个 LLC 的高zero-show传输率,仍然存在模拟到现实的差距。现实世界中的击球率很高,但球返回率虽然不错,却低于本文在模拟中通常观察到的 >80% 的返回率。一种常见的失败模式是 LLC 将球击到桌子的边缘之外。这种模拟到现实的差距意味着仅使用模拟数据构建技能描述符可能会导致错误。
为了解决这个问题,本文使用现实世界数据更新了每个 LLC 的技能描述符。四位研究人员与机器人进行对抗,HLC 设置为随机选择一个 LLC,以便大致均等地采样它们。这为每个 LLC 产生了 91 到 257 次现实世界的球抛出。对于每个 LLC 和每个收集的球,更新了相关 LLC 特定树中的 25 个最近邻,假设现实世界数据更准确地反映了预期性能,将模拟指标和现实世界指标对单个球抛出的权重设为相等。
-
策略和 LLC 候选名单:每次 HLC 执行时,使用五个手动编码的启发式方法生成一个最有前景的 LLC 候选名单(每个启发式方法一个),这些方法基于风格策略的输出以及 HLC 收集的关于对手的信息,包括他们总的回球能力以及正手、反手和中路回球的能力。这些对手信息在与同一对手的比赛之间会被保留。并不是所有的启发式方法都使用所有可用的信息。
本文使用的启发式方法如下:
-
随机选择:如果某个 LLC 的落点率超过 80%,则随机选择该 LLC。
-
命中速度优先:选择命中速度最快的前 个 LLC,前提是它们的落点率位于前 。
-
落点距离优先:选择从初始球状态起落点最远的前 个 LLC,前提是它们的落点率位于前 。
-
利用对手的弱侧(反手或正手):选择一个针对对手较弱侧的 LLC。
-
考虑对手的整体技能:对于强大的对手,本文假设他们可以从自己场地的任何位置击球。如果对手的命中率超过 75%,本文选择给定球状态下最远的落点,假设这会迫使对手更努力地回球。否则,选择落点率最高的 LLC。
从候选名单中,本文通过加权采样(以使机器人更不易预测)选择用于回球的 LLC,如下所述。
-
LLC 偏好(H 值)及选择 LLC:
竞技体育的另一个关键方面是了解对手的能力并能够做出相应的调整。这促使本文在线学习每个 LLC 的偏好,这不仅有助于弥合模拟与现实之间的差距,还提供了一个简单的人类对手模型。
本文为每个 LLC 学习了一个数值偏好,,基于 LLC 的在线表现。代理更倾向于选择偏好值较高的 LLC。然而,偏好本身与奖励无关。只有 LLC 之间的相对偏好才重要。本文使用了一个简单的梯度赌博算法 [10] 来学习这些偏好,算法的伪代码在下面算法2中给出。
对于给定的球,每个入选的 LLC 都与一个离线回报率相关联。本文结合离线回报率和在线偏好(H 值)来选择一个 LLC。本文发现,将学习到的 H 值与技能描述符表中的信息结合起来在提高性能方面发挥了重要作用。这些 H 值具有两个主要目的:(1) 在线模拟到现实的校正;尽管通过离线更新技能描述符表做出了努力,但模拟到现实的差距依然存在,可能是因为用于更新表的真实世界球样本较少且由少数玩家生成。H 值允许策略迅速从表现不佳的 LLC 切换到更稳定的 LLC。(2) 学习特定玩家的强项和弱项;如果当前对手能够轻松发送一个 LLC 难以回击的球,HLC 可以将权重转移到另一个对手不易利用的 LLC 上。每次选择一个 LLC 时,使用二进制球落地信号作为奖励函数更新 H 值。对于每个新对手,这些值初始化为一组已知的基线偏好,以确保每个人都与相同的初始代理对战。这些偏好在同一对手的比赛中更新并持续存在。
E. 实现zero-shot模拟到现实的技术
在模拟机器人乒乓球中有两个核心挑战。首先是准确地建模机器人、球拍和乒乓球的动力学。需要高保真度的原因是,先进的乒乓球技术涉及操控球的角速度(即旋转),而由于球的大小和重量,空气摩擦和球拍材料在动力学中扮演的角色比在典型的机器人任务中要大得多。其次是准确地建模任务分布,即真实世界中来球轨迹的初始状态分布。
与之前的工作[8]相比,本节介绍的增强模拟组件实现了高度的zero-shot迁移,消除了对低级策略进行真实世界微调的需求。
-
球和机器人的动力学建模:本文通过引入MuJoCo物理引擎,利用其先进的固体流体动力学进行球轨迹模拟,改进模型和系统识别,并改善球拍橡胶的表现,来增强[9]和[8]中描述的模拟环境。
本文的模拟使用了集成速度致动器,这是一种具有激活状态的状态致动器,结合了积分器和位置反馈机制。激活状态对应于位置致动器的设定点,控制信号表示该设定点的速度。对每个致动器-关节对进行了系统识别,以确定参数如位置增益(N/rad)、致动器阻尼(N/rad/s)、摩擦损失、关节阻尼(Nm/(rad/s))、力限制(Nm)和转子惯量(kg m)。本文的系统识别方法与[25]中介绍的方法一致。
本文利用MuJoCo的基于椭球的无状态流体模型来模拟球的轨迹。本文测量了钝体阻力系数,并使用了默认的细长阻力系数,同时将角阻力系数设为零。库塔升力系数和马格努斯升力系数保持其默认值。
此外,乒乓球拍的橡胶被明确建模为使用两个正交的被动关节,代表一个弹簧阻尼系统,以近似橡胶表面。球与橡胶的接触求解器参数(柔软度、滑动、摩擦)是通过经验确定的,而关节的刚度、阻尼和电枢是通过参数扫描优化模拟到现实的传输来建立的。同样,球与桌面的接触求解器参数也进行了测量。
本文观察到,在进行系统识别以处理上旋和下旋球接触时,球拍橡胶恢复的接触求解器参数呈现双峰分布。下旋球的阻尼系数为 ,而上旋球的阻尼系数约为 。因此,在策略训练的上旋校正阶段(将在下节中描述),模拟器根据球的接触前旋转动态选择适当的求解器参数。这种双峰现象在球与桌面的接触求解器参数中没有观察到。
除了建模和领域随机化观测噪声和延迟(如文献[9]和[8]中描述的),本文在训练过程中随机化了桌面和球拍的阻尼和摩擦参数。本文使用了两个塑形奖励:网高奖励和在球拍接触球时最后一个ABB关节的目标,以减轻由于机器人回球过度击中对方场地而产生的模拟到现实的差距。这种方法不仅解决了预期的标准,还促进了机器人的有竞争力的回球。
-
旋转“校正”和模拟到模拟适配层:
如上所述,模拟中的球拍橡胶物理参数是双峰的,这取决于来球是上旋球还是下旋球。因此,直接部署低级控制器(LLC)时,对于上旋球会出现较大的模拟到现实差距。本文开发了两种解决方案来缓解这个问题:上旋修正和模拟到现实的适配层。
对于上旋修正,本文在模拟中对LLC进行了微调,当来球是上旋球时,切换到与上旋相关的球拍参数。本文还加入了一个网高奖励,要求返回的球在一定高度越过球网,并设定了一个目标关节角度以进行球接触。这种技术成功地在许多专门技能中缩小了模拟到现实的差距,并提高了机器人回球的速度,增加了竞争优势。然而,即使进行了上旋修正,对于更高上旋的广义技能策略,模拟到现实的差距仍然存在。
为了解决剩余的差距,本文在上旋修正后的策略中加入了一个薄的FiLM层,并仅使用上旋球来训练适配器。本文学习了一个映射:,其中 是原始动作。FiLM学习一个函数 ,输出 和 。FiLM层由2.8k个参数组成,本文训练适配器进行了5k步。这消除了模拟到现实的差距,同时保持了下旋球的返回能力。类似的技术可以应用于重下旋和侧旋,但本文将其留待未来研究。
-
在真实世界中迭代地奠定训练任务的基础:
本文收集了40分钟的人与人对战数据集,以及480次来自发球机的多样化球投掷数据。使用[9]中描述的感知系统以125Hz的频率提取球的位置。球的位置序列被分割成包含单次击球的轨迹,其中轨迹的第一个球位置是在球进入比赛或刚被击打之后。然后,本文采用离线优化过程从每个轨迹中提取初始球状态——位置、速度和角速度——类似于[8]中的方法,使得从该状态开始的模拟球轨迹尽可能接近真实球轨迹。该过程的输出是一个初始球状态的数据集。
初始数据收集得到了2.6k个初始球状态。为了简化训练,开始时排除了发球。独立的初始发球数据集单独收集了0.9k个球。本文使用[28]中描述的优化方法从发球轨迹中提取球状态。策略在模拟中训练,目标是返回数据集中的所有球。在模拟训练期间,本文从数据集中采样一个球状态,添加小的随机扰动,并验证生成的轨迹。然后,本文用球状态初始化MuJoCo的内部状态并开始一个回合。
本文生成初始球状态的非参数方法——直接从数据集中采样——比之前的工作[8]更有效,后者使用了一个从真实球轨迹派生边界的均匀初始球状态分布。直接采样方法提高了模拟到现实的转移,因为它使训练分布更接近于人类玩家打出的球。[8]为球状态的每个维度独立采样值,而实际上位置和速度分量是相关的。例如,一个具有高线性速度的球不太可能具有高正线性速度,也不太可能具有高下旋。因此,独立采样可能会产生在现实世界中不真实或业余人类不常打出的球。本文的方法通过保留球状态不同维度之间的任何经验性相互关系解决了这一问题。此外,由于没有在不真实的球上消耗训练周期,模型容量得到了更有效的利用,导致更快的训练和更高的返回率,适用于相同的模型架构和训练算法。
系统随后被部署到现实世界中,并与人类对手进行了对抗评估。按照上述相同的流程,所有评估结果都被转换为初始球状态的另一个数据集,并由系统状态机自动注释为:返回——球被成功返回;击中——球拍接触到球但没有落在对方场地;或未击中——球拍没有碰到球。然后将这个数据集添加到初始数据集中。在随后的训练周期中,未返回的球(带有击中或未击中注释)可以选择性地被赋予更高的权重。
这种在最新数据集上进行模拟训练、在现实世界中评估、并使用注释的评估数据扩展数据集的迭代循环可以根据需要重复多次。本文在3个月内完成了7个回合球和2个发球的训练周期,与超过50位不同的人类对手对抗,最终数据集的大小达到了14.2k个回合球的初始状态和3.4k个发球的初始状态。数据集演变的总结见下表I和下图6。
这种构建训练任务分布的迭代方法的一个优势在于,如果策略反复与不同的对手进行评估,能力差距会被自动识别和填补。随着代理的技能提高,新的弱点被揭示,同时生成了针对这些弱点的训练数据。本文观察到在7个周期后,性能尚未达到平台期,本文认为进一步的周期可能会继续带来性能提升。
对训练数据分布的两个进一步修改对于提升性能非常重要。(1) 沿y轴反射数据。这有助于纠正对正手击球的偏见,并将最终数据集大小增加到28k个球状态。(2) 将数据集手动分割为7个不互斥的类别——快速、正常速度、慢速、上旋、无旋、下旋、高吊。在训练过程中,每个回合首先按各类别内所有球的返回率的倒数比例采样一个类别,然后从该类别内均匀采样一个初始球状态。这种方法使本文能够专注于弱类别,同时在这些类别和所有类别的“较易”球上保持性能。
-
部署到硬件:策略在模拟中训练以接回单个来球,大大简化了训练过程。为了让这些策略适应完整的乒乓球比赛,本文将每个得分回合分成子回合,这些子回合模仿了针对单个球的训练:它们从对手的球拍接触到球开始,到机器人将球返回或任一玩家得分(即球离开比赛区域)时结束。在每个子回合之后,机器人和真实环境的内部数据结构都会被重置,确保策略体验到在模拟中看到的单集语义。这个步骤对于实现高效的模拟到现实的zero-shot转移至关重要。为了估计球拍的状态,本文使用了一个配备运动捕捉功能的定制球拍。
实验和结论
A. 用户研究设计
为了评估本文代理的技能水平,本文与29名不同技能水平的乒乓球选手进行了比赛——包括初学者、中级选手、高级选手和高级+选手。为了确保机器人与各种人类乒乓球选手对战,本文首先进行了一项预研究以评估他们的技能水平。
-
预研究
作者从当地人群中招募了乒乓球选手,包括乒乓球俱乐部的成员,但不包括本文的研究团队成员或18岁以下的玩家。在预研究中,59名志愿者与一位专业乒乓球教练(也是本文的作者之一,以下简称为“教练”)对战,教练将每位选手评为初学者、中级、高级和高级+选手。每个人还被要求填写一份问卷,其中包含若干有关其乒乓球经验的问题。专业乒乓球教练在评定选手之前无法看到问卷的回答,尽管教练可能认识一些来自当地俱乐部的选手。
下图7展示了问卷的结果,并显示了四个组之间的显著差异,从而验证了教练的评级。初学者和中级选手几乎没有接受过指导,也几乎没有参加过比赛,然而初学者通常经验不足一年且每月不到一次打球,而中级选手往往有超过一年的经验并每周或每周多次打球。高级和高级+选手都已经打了三年以上并接受过指导。与高级选手相比,高级+选手打球时间更长并参加过更多比赛。
根据他们的技能水平,本文邀请了一部分不同技能水平的选手回来参与完整的用户研究。
-
完整用户研究
共有29名用户研究参与者来到本文的实验室与机器人进行乒乓球比赛。下图8显示了技能分布。
每位参与者在使用专用球拍与机器人对战之前,都会接受安全简报和练习课程。在练习过程中,参与者会与教练进行对战,以熟悉球拍。在与教练的练习课结束后,参与者会走到机器人桌前。比赛规则会向参与者解释(具体细节如下)。用户研究小组的成员会在旁边运行机器人,并确保参与者的安全。
研究参与者随后与机器人进行了三场比赛,教练在这些比赛中担任裁判。完成三场竞技比赛后,本文为他们提供了一个可选的自由对战环节(最多5分钟)。最后,本文对参与者进行了简短的半结构化访谈,以了解他们与机器人打乒乓球的整体体验。
-
用户研究指标
代理性能的主要衡量标准是机器人在与人类玩家比赛中的得分表现。本文还对每位人类玩家与机器人的比赛进行了录像,并在本文的网站上提供了这些视频。
除了代理性能,本文还希望了解人类玩家与机器人对战的体验。每场比赛后,本文都会发放问卷,询问参与者与机器人打乒乓球的体验。本文还询问他们在比赛中是否使用了任何特定策略来对抗机器人。在第三场比赛结束时,最终问卷还询问了他们再次与机器人对战的兴趣程度。
为了对他们再次与机器人对战的兴趣进行行为评估,本文记录了他们在自由对战时间中选择与机器人对战的时长。
B. 比赛规则
乒乓球比赛基本遵循国际乒乓球联合会(ITTF)制定的规则。简而言之,机器人和人类选手进行三局比赛,首先以两分优势(或达到二十分)获得十一分的选手赢得该局。赢得大多数局数的选手赢得整场比赛。与真正的“三局两胜”比赛不同,为了确保参与者之间数据的一致性,所有三局比赛都会进行。教练担任裁判以决定得分和规则违规。人类选手在比赛之间至少有两分钟的休息时间,并填写简短的调查问卷。
在乒乓球中,一名选手通过将球抛起并击打,使其在自己一侧的桌面弹跳后再弹到对方一侧来发球。虽然发球的具体要求限制了可能的击球类型,但发球选手仍然具有很大的优势,因为他们可以控制球的初始状态,例如利用对手的弱点或为自己创造强力击球的机会。因此,标准乒乓球规则是每两分轮换发球选手。然而,在这项研究中,设计的机器人无法发球,因此人类选手总是向机器人发球。为了弥补这一限制,人类在发球时无法得分或失分;机器人必须回球,然后才可以得分。这条规则确实导致一些技术更高的选手反复尝试在机器人的能力边缘进行冒险的发球,以最大化得分,然而本文认为这是一种必要的妥协,以适应那些可能不习惯正式发球规则的低水平选手。总体来说,本文认为这种发球方式在人的发球优势和机器人的能力之间达到了最佳平衡。此外,这些规则确保比赛超越发球阶段,进入比赛的回合部分,这涉及比发球部分更广泛的技能集。一个较小的五名选手的研究采用了替代发球规则。
考虑到了机器人的另外两个限制。如果机器人进入保护停止状态,则该分被视为“重发”(无人得分)。同样,如果球被击打得非常高(大约2米高于桌面),由于摄像机的视野限制,该分也将为重发。所有规则的应用由裁判自行决定。机器人的其他限制,例如无法完全到达球网,被认为过于复杂而无法适应,因此没有应用额外的规则。
C. 比赛结果
下图9展示了人类与机器人比赛的各种统计数据。总体而言,机器人在参与者中表现中等,赢得了45%的比赛、46%的局数和49%的得分。当本文按技能水平分析比赛时,出现了一个明显的模式。机器人在与初学者对抗时赢得了100%的比赛,与中级对手对抗时赢得了55%的比赛,而在面对更高水平的对手时没有赢得任何比赛。这意味着机器人的技能水平属于中级;它可以轻松击败初学者,但无法战胜更高水平的对手,并且在与中级对手对抗时胜率大致为50%。这并不意味着机器人完全主宰或被其他技能水平主宰。查看得分的分布,机器人在对阵初学者时赢得了72%的得分,对阵中级选手时赢得了50%的得分,而对阵高级和高级以上选手时赢得了34%的得分。因此,机器人仍然可以为所有技能水平的玩家提供有趣的比赛。
在与初学者和中级水平比赛时,有一个有趣的趋势——机器人总是赢得第一局(参见上图9,“Games Won (%)”)。本文假设在第一局比赛中,人类仍在适应他们所处的新环境:与机器人比赛、使用不熟悉的球拍、竞争环境带来的压力等。在赛后调查中,玩家评论说他们仍在适应机器人,一些玩家还表示机器人令人望而生畏且声音很大,这可能为在HRI场景中平衡高速性能和人类舒适度提供了教训。
专注于中级玩家,到第二局时,他们似乎对情况更加适应,而更有技能的玩家找到了可以利用的机器人策略的弱点。此外,由于玩家在第一局中可能没有发挥最佳状态,机器人的适应可能没有针对正确的特征,从而导致机器人在第二局表现较差。然而,到第三局时,机器人能够从对手的比赛风格中学习并提高其胜率(参见下图13)。
D. 参与者玩机器人的策略和体验
除了量化的比赛结果外,本文还希望了解这项研究的定性方面:与机器人对战实际上是什么样的体验?乒乓球已经有许多所谓的“机器人”来帮助训练,但这些基本上只是发球机,而本文的系统有潜力更加动态,更好地模仿人类的打法,并进行完整的比赛。
每场比赛后,玩家被要求描述他们对抗机器人时使用的任何策略。在研究开始前,本文已经识别出机器人的几个弱点,最显著的是:(1) 处理大量下旋球的困难,(2) 处理非常快的球,(3) 由于硬编码的限制,球拍无法太靠近球台,导致无法处理非常低的球,(4) 机器人在物理上无法接到非常靠近球网的球。分析赛后调查,本文发现大多数玩家在第一局并没有使用特定策略,或主要专注于试探机器人的能力。在第二局和第三局中,技术娴熟的玩家能够识别出机器人能力的漏洞,这与更高的胜率相关:在第二局和第三局评论中提到“下旋”、“反旋”、“削球”或“下旋球”(弱点1的同义词)的玩家显著更有可能赢得比赛(),并且通常具有更高的技能水平()。只有少数玩家提到了球速(例如“快”)或机器人的触及范围(“网”)。初学者玩家较难识别策略中的漏洞,通常描述简单的策略,如交替使用正手和反手或直接击打机器人。一些中级玩家能够识别出漏洞,但无法加以利用。
为了验证玩家观察到的机器人在处理下旋球时较弱的情况,本文通过估计旋转量测量了机器人对玩家回球的成功率。下图10显示,机器人对上旋球的处理比下旋球更为稳健。机器人在处理一些下旋球时的回球率降至50%,并在面对较高下旋值时迅速降为零。另一方面,机器人对上旋球的处理更好,仍能回击60%的上旋球,估计旋转为80(弧度/秒)。
本文还希望确保与机器人对战实际上是人们愿意进行的活动。很容易想象一个场景,机器人猛击每一个球或重复相同的动作而不太吸引人,因此本文的许多设计决策(如从错误中学习和采样)不仅旨在提高性能,还旨在为参与者创造一个愉快的体验。根据玩家反馈,本文认为这一目标已实现。下图11显示,在所有技能组和胜率中,玩家都同意与机器人对战是“有趣”和“引人入胜的”,基于五点李克特量表。新奇感可能在这种评估中起了一定作用,但随着比赛的进行,得分略有增加,当玩家被提供额外时间自由与机器人对战时,29人中有26人接受并在最多五分钟内平均玩了4分06秒,中位数为5分钟,这表明与机器人对战具有一定的持久吸引力。此外,当被问及“你是否有兴趣再次与这个机器人对战?”时,评分范围为一到五,平均得分为4.87,中位数为5。同样,各个水平的玩家都不同意与机器人对战是“烦人”或“令人沮丧的”(随着时间的推移,令人沮丧的评分也下降,可能是因为玩家适应了机器人)。玩家对机器人“简单”和“有挑战性”的评分居中。按技能水平细分,技能较低的玩家认为机器人更具挑战性,但其他情感指标在各组之间大致一致。研究后的采访支持了这些发现,玩家称机器人“动态”、“有趣”和“令人兴奋”。
E. LLC 技能
LLC(低级控制策略)提供了一系列多样化的技能,例如稳定性、更快的回球、针对球台特定区域的目标,以及不同类型球的回球。下表 II 展示了使用的 LLC 及其在硬件上的评估。根据硬件评估,LLC 的落点成功率每次击球在 0.23 到 0.75 之间,而平均击球速度在 5.1 到 6.8 米/秒之间。通过查看返回球的落地点的 和 坐标,本文也可以看到返回球的横向和水平多样性。
模拟与研究之间的差异来自于模拟到现实的差距以及来球的不同。在模拟中,本文使用了一组多样化的来球,但在研究过程中,玩家更具竞争性,发送更具挑战性的球,并且为了赢得比赛,增加了下旋球的比例。研究中下旋球的增加也解释了与模拟相比,研究中的击球速度较低和落点较低的现象。
部分 LLC 专门用于将回球瞄准球台的不同部分。下图 12 显示了在硬件上对人类玩家测试时,一个非目标 LLC 与目标 LLC 的比较。非目标正手策略将球回到球台中央,略偏向右侧,使用对角线回球。通过使用不同的奖励函数进一步训练得到的目标策略则将回球更接近球台的左侧或右侧。总体而言,这些 LLC 丰富了 HLC(高级控制策略)选择的组合,并提供了战略选项,例如利用对手的弱侧或迫使对手从他们击球的位置移动。
F. HLC 策略分析
在每场比赛中,高级策略控制器(HLC)通过学习低级策略控制器(LLC)的数值偏好(H值),根据其在线表现来适应每个对手。本文对系统的适应性部分感兴趣的两个问题是:(1) 在比赛中发生了多少适应?(2) 代理是否根据对手的技能水平开发了不同的策略?
(1) 在比赛中发生了多少适应?比赛中H值的变化衡量了适应的程度。H值变化越大,适应程度越高。上图13展示了按玩家技能对H值在三场比赛后累计的百分比变化。对于正手的LLC(ID 0 - 8),本文一致观察到H值变化较大,达到正负50%或更多,并且这种趋势在不同技能水平中保持一致。特别是,LLC 0(通用型)、3(右侧瞄准策略)和8(快速击打左侧瞄准策略)的H值变化最大。然而,对于反手的LLC(ID 9 - 12),H值的变化要小得多,通常只有几个百分点。这表明HLC在进行正手风格的比赛时进行了适应,而在反手时没有。质性上,这与教练的观察一致,即比赛中的反手表现不如正手。
(2) 代理是否根据对手的技能水平开发了不同的策略?H值表明对特定LLC的相对偏好。由于所有比赛都从相同的初始H值开始,可以通过比较不同技能组的最终H值来评估策略是否不同。下表III展示了这些值,显然策略有一些变化。例如,比较玩家技能组中最小和最大的值,LLC 1、2、5、8和9的H值相差约为2倍。查看每个技能组的顶级LLC(加粗显示),本文可以看到虽然有一些常见的偏好LLC(4、7、10和11),但策略上也存在一些差异,尤其是初学者与其他组相比。LLC 0、1和9在初学者中更受青睐,而LLC 2在中级和高级玩家中更受欢迎。本文还可以看到,初学者技能组拥有相对高分的LLC最多。这表明许多LLC对初学者来说是有效的选择,这很直观,因为这是技能最低的组。
G. 服务
为了评估比赛中的发球环节,本文进行了一个小型的5人研究,并采用了一套不同的规则。在这些比赛中,发球每两分交替一次,由人类参与者和机器人轮流发球。在参与者发球时,可以按照正常的国际乒联(ITTF)规则赢得或失去分数。唯一的限制是发球必须遵循残奥会的发球规则。在机器人的“发球”期间,参与者实际上是发球者,但与主要研究一样,不能在发球时赢得或失去分数。只有当机器人回球并落在对方场地上时,球才被认为是“在比赛中”。
比赛结果总结在下表IV中。机器人仅赢得了20%的比赛(1/5),33%的局(5/15),以及43%的得分(117/271),这表明代理在接发球方面的能力低于其回合能力,大约处于初学者水平。
本文假设这是由于两个因素。首先,本文在代理中内置了严格的碰撞避免协议,以避免球拍与桌子碰撞。虽然这对于保护设备是必要的,但这对处理那些在反弹后非常接近桌子的发球(例如高下旋发球)构成了重大挑战。因此,代理错过了许多下旋发球。
此外,本文无法训练出一个能够处理广泛旋转的单一低级策略控制器(LLC),而在发球中,相较于回合,更容易遇到高旋转。因此,对于发球,本文不得不依赖一个旋转分类器以及专门的下旋和上旋LLC来处理高旋转发球。
本文的旋转分类器在用户研究前的测试中对下旋发球具有1.0的高精确度,但召回率仅为0.4,这意味着许多下旋发球被错误识别为上旋。在用户研究中也观察到了这种情况。导致这种低准确率的一个因素是用于追踪球拍姿态的运动捕捉系统经常出现故障(例如,由于该组件的持续故障,两个完整的比赛不得不被舍弃)。此外,即使在正常工作时,人类玩家也可能暂时遮挡球拍,导致球拍状态数据的临时中断。
鉴于专门的上旋和下旋发球LLC的潜在能力,本文推测允许球拍更接近桌子以及改进实时发球旋转分类将弥补系统在发球和回合表现之间的大部分差距。事后看来,对接触参数和特定于发球数据的观察噪声进行更多的领域随机化可能也有助于缩小回合和发球比赛之间的差距。
限制
本文的研究展示了在训练机器人与人类对手进行乒乓球比赛方面的进展。然而,仍有若干局限需要进一步研究:
-
快速球:由于多种因素,机器人难以有效应对非常快速的球,包括数据缺乏、高系统延迟和每次击球之间的重置。即使控制频率较高(50Hz),系统固有的延迟(约100ms)也大大限制了机器人在给定时间框架内可做出的可操作决策数量。这个问题因机器人在每次击球之间被重置到相同的初始姿势——靠近桌子,球拍向前——而加剧,这是为了适应单球训练。虽然增加控制频率可以缓解这个问题,但这会减少每次动作的计算时间。
-
高球:机器人无法处理高于约6英尺的球,因为它超出了相机的视野。在实践中,这很少成为问题。
-
低球:机器人无法一致地处理非常低的球,主要是由于系统内置的碰撞避免协议。这些协议虽然对于保护机器人的球拍至关重要,但在处理接近桌面的球时构成了重大挑战。熟练的选手常常利用这一限制,发送保持很低的下旋球。
-
短颗粒球拍:在这项工作中,本文选择了一种可以施加旋转的球拍,同时在模拟器中仍然可以建模。球拍没有高级乒乓球拍上常见的光滑橡胶。本文发现,由于球拍的高度非线性和多模态特性,准确建模这种高级球拍极具挑战性。人类参与者经常提到这一限制,这突显了需要更高级的球拍建模技术。
-
旋转检测:策略无法准确读取来球的极端旋转。这限制了能够有效处理的旋转量,许多对手利用了这一点。可以训练专门的低级策略控制器(LLC)来处理不同类型的旋转,因此在旋转检测方面的改进可能直接转化为整体性能的提升。
-
无多球策略游戏:机器人的比赛风格主要是“一次一个球”,缺乏熟练人类选手所展示的多球策略游戏。这一限制归因于单球训练方法。
-
动作捕捉不可靠性:对动作捕捉技术的依赖引入了一定程度的不可靠性,因为动作跟踪中的偶尔故障或不准确会对机器人的表现产生负面影响。
-
反手:相比正手,策略在反手击球方面表现较弱。
-
可预测性:策略确实改变了其落点,但仍有改进空间。在某些球的落点上减少可预测性是裁判员确定的三大改进领域之一(另外两个是更好地读取旋转和改进反手)。
结论 & 未来工作
在这项工作中,本文展示了一种学习型机器人代理,它在竞争性乒乓球比赛中达到了业余人类水平的表现。乒乓球因其动态性和高要求的技能而著称。通过与不同乒乓球技能水平且都表示喜欢与机器人对战的未见过的人类选手进行的29场比赛来评估其表现。
在上文中识别出的局限性为机器人乒乓球领域的未来研究指明了许多方向。为了应对限制机器人对快速球反应时间的延迟约束,本文建议研究高级控制算法和硬件优化。这可能包括探索预测模型以预判球的轨迹,或在机器人传感器与执行器之间实现更快的通信协议。此外,训练策略选择重置姿势,或完全取消击球间的重置,将为策略提供更多的时间和灵活性来反应。低球的挑战可以通过开发更复杂的碰撞检测和规避算法来解决。这些算法可以分类不同的潜在与球台的碰撞,并在某些情况下允许机器人更靠近球台,同时确保球拍的安全。
通过训练能够持续整个回合的场景,可以提高机器人的战略能力,从而更好地捕捉比赛状态,甚至可能探索自我对战技术。此外,高级和高级+选手能够找到并利用机器人的能力漏洞,并在采访中提到这一点;本文希望通过本文的迭代学习方法,可以通过更多的训练轮次填补这些空白并适应这些选手,至少在机器人的物理能力范围内。
本文希望这项研究不仅在机器人乒乓球领域有所贡献,也能在更广泛的方面产生影响。以下四个方面具有更广泛的意义:
-
分层策略架构:在处理复杂的现实世界任务时,拥有一个良好的代理能力模型是至关重要的。本文的LLC(低层控制器)技能描述符提供了一种新颖的方法来构建这样的模型,不仅在为高层策略提供特定上下文的详细信息方面具有优势,还因为它们可以根据现实世界的经验进行在线更新。探索如何将这种模型融入日益流行的分层机器人控制系统中,是未来研究的一个有前景的领域。
-
通过迭代的现实世界数据收集实现zero-shot模拟到现实的转换:本文的代理使用现实世界的数据来定义训练任务,同时利用模拟来学习控制策略。结果是,它在保持数据效率的同时解决了现实世界的任务,仅使用了17,500个例子。使用模拟和强化学习(RL)来训练在现实世界中工作的通用机器人控制器面临许多挑战,主要是模拟器设计难以扩展到许多任务、模拟到现实的差距,以及与最先进的监督学习技术相比,RL训练的扩展性问题。此项工作提供了一种从任务分布角度弥合模拟到现实差距的方法,物理动力学建模也因该领域的积极研究而不断改进。因此,值得考虑如何更好地利用模拟器。它们能否用于为特定的实施方式训练通用技能库?
-
实时适应:本文通过实时跟踪比赛统计数据,快速适应对手的强项和弱项。这种在线适应帮助控制器适应新对手,并允许机器人随着比赛的发展学习和完善其决策过程,从而提高其鲁棒性。这适用于任何部署分布与训练分布不同的情况,并且需要策略在接收其成功率的在线反馈时选择执行多种技能之一。
-
系统设计:这项工作表明,通过使用相对简单的神经网络架构和训练算法,可以在乒乓球中实现(或许令人惊讶的)高水平表现。本文的代理中的策略架构是众所周知的,已经存在多年,并且参数很少。这表明在开发高性能学习型机器人控制器时,系统设计的重要性。系统的每个方面都经过了多轮优化和重新设计。这在控制器在长时间游戏中保持的鲁棒性和模拟到现实的性能中起到了关键作用。展望未来,为了开发既具备高能力又具备鲁棒性的机器人控制器以应对复杂的现实世界任务,系统设计可能与算法、策略架构和数据集一样重要。
这是第一个能够与人类一起在运动中达到人类水平的机器人代理,标志着机器人学习和控制的一个里程碑。 然而,这也只是实现机器人技术中长期目标的一小步,即在许多有用的现实世界技能上达到人类水平的表现。要在单一任务上持续实现人类水平的表现,并进一步构建能够执行许多有用任务的通用机器人,熟练且安全地与现实世界中的人类互动,仍需大量工作。
参考文献
[1] Achieving Human Level Competitive Robot Table Tennis