谷歌发布首个达到人类竞技水平的乒乓球 AI 机器人
在巴黎奥运会乒乓球团体赛期间,谷歌发布了首个达到人类竞技水平的机器人 Agent。该机器人展现了极高的运动控制能力,能够灵活进行正反手转换,并有效应对擦网球、高球等突发战术。
竞技表现与测试数据
在实际测试中,机器人实时适应不同选手风格,最终赢下了与初学者的所有比赛,同中级玩家对打也有 55% 的胜率。面对一些突发战术,比如长球、高球、擦网球,也能沉稳应对。
与它对阵的美国乒乓球明星 Barney J. Reed 给予了高度评价:超出预期,这个机器人已经达到中级水平。虽然目前机器人还没有办法战胜高级选手,但在人类的各种反馈中,大家都很乐意同这个机器人玩耍。
团队找到了 29 个不同技能水平的乒乓球运动员进行了比赛,包括初学者、中级、高级和高级以上。人类与机器人进行了 3 场比赛,比赛遵循标准乒乓球规则(由于机器人无法发球,整场由人类来发球)。
在此之前,其实也有相应的乒乓球机器人研究,此次谷歌机器人的特别之处在于,它能够同从未见过的人类进行全面的竞技对决。人类的各种打球风格,它都能快速适应。例如看这位选手,比赛刚开局机器人明显还在适应过程中,人类以 9 比 2 的大比分击败机器人;但就在下一局之后,机器人明显熟悉了对手风格,始终在紧紧追着比分。双方打得也是有来有往。
硬件配置
在介绍方法前,先来看一眼乒乓球机器人的硬件配置。
主体采用的是 6 自由度的瑞士公司 ABB 1100 机械臂,装置在两个 Festo 直线导轨上,使其能够在平面内移动。横向移动导轨长 4 米,纵向移动导轨长 2 米。机械臂上装配了一个 3D 打印的球拍手柄和一个覆盖短颗粒胶皮的球拍。
核心技术架构
就是这么个小登西,是如何学会打乒乓球的?总结来说,使用了结合强化学习和模仿学习的混合训练方法。团队设计了分层和模块化的策略架构,Agent 包括一个低级技能库(LLC)和一个高级控制器(HLC)。
低级技能库 (LLC)
LLC 是一组专门的策略,每个策略都经过训练来执行特定的乒乓球技能,如正手击球、反手击球、发球等。这些 LLC 使用 CNN 架构,通过仿真环境中的进化策略算法进行训练。训练过程采用了从真实世界收集的球状态数据集,以确保模拟环境与真实环境的一致性。
高级控制器 (HLC)
而 HLC 负责在每次来球时选择最合适的 LLC。包含多个组件:
- 风格策略:用于选择正手或反手。
- 旋转分类器:用于识别来球的旋转类型。
- LLC 技能描述符:描述每个 LLC 的能力。
- 启发式策略:一组启发式策略,用于根据当前情况 shortlist 候选 LLC。
HLC 还使用在线学习的 LLC 偏好来适应对手的特点和弥补仿真到现实的差距。
训练流程与 Sim2Real
具体来说,团队先是收集了少量人类比赛数据,设置初始化任务条件,然后用强化学习在模拟环境中训练一个 Agent,再将策略零样本部署到真实世界中。
其中使用 MuJoCo 物理引擎精确模拟球和机器人动力学,包括空气阻力、Magnus 效应等,还设计处理了上旋球'校正',通过在仿真中切换不同的球拍参数来模拟真实世界中的上旋和下旋效果。
在 Agent 和人类不断对打的过程中,可以生成更多的训练任务条件,并重复训练 - 部署。机器人技能逐渐提升,比赛也逐渐变得复杂,但仍基于现实世界的任务条件。机器人收集完数据,还能发现其能力的不足,随后通过在模拟环境中持续训练来弥补这些缺陷。
通过这种方法,机器人的技能可以在模拟与现实相结合的循环过程,自动迭代改进。
此外,这个机器人还能追踪对手的行为和打法来适应不同的对手,比如对手倾向于将球打回桌子的哪一。由此能够尝试不同的技巧,监控自己的成功率,并实时调整策略。
局限性与未来展望
在和人类对打实验中,团队也发现这个机器人有个弱点:不擅长处理下旋球。按照对球旋转的估计,绘制机器人的上台率图,结果当面对更多下旋球时,其上台率显著下降。
研究人员表示,机器人在处理弧线低且接近球桌的球时,为避免撞击到球桌,很难处理好,而且在实时确定球的旋转类型上也存在局限。
谷歌的机器人研究历程
搞乒乓球机器人,谷歌不是第一次。研究机器人打乒乓球,谷歌很久前就开始了。团队相关研究还有一箩筐。
比如谷歌之前的 i-Sim2Real 研究中,训练的机器人与人类打球,最多可连续打 340 次不落地,相当于连续打了 4 分钟 +。其他团队也有过乒乓球机器人,比如这样婶儿的,还能发球;以及像日本国家队和中国台湾的队伍,也都有拿机器人来陪练自家奥运选手。
那么有小伙伴就疑惑了,跟谷歌此次发布的机器人有什么区别?有网友给出了解释:谷歌这次是关于 AI Agent,通过视频输入来工作,而非预编程算法。


