从 FANUC 自学习抓取到机器人乒乓球:试错究竟怎样变成能力?

一个机器人反复尝试,成功就强化、失败就纠正,是否终能学会把乒乓球打得又稳又刁钻?答案是:可以借鉴这个闭环,但必须先弄清楚它究竟看见什么、怎样取得可靠的成败标签,以及“够到球”和“赢得一分”之间隔着多少个不同问题。

先澄清:FANUC 案例的原始证据是什么

常被称为“FANUC 机器人自己学抓取”的案例,是 FANUC 与 Preferred Networks(PFN)在 2015 年国际机器人展展示的散堆工件抓取。其最具体的一手说明是 PFN 开发者的技术文章《深層学習でバラ積みロボットの0から学習》,它不是一篇可直接等同于该演示的同行评审论文。下文涉及演示的设备、数据和成功率,均以这份技术说明为准。

装置使用 FANUC LR Mate 200iD 机械臂、R-30iB 控制器、箱子上方的 3D 相机和气动吸盘;箱内约有 200 个钢制圆柱。相机取得带深度的图像,机器人选择一个位置,让吸盘到那里尝试提起工件。学习器主要决定去哪里吸;控制器仍负责执行给定的位姿运动。它并非从图像直接学出整段关节轨迹。

成败是谁判的?不是人看录像

PFN 原文写道:

「吸着動作後に気圧を測ることで、ワークの取得に成功したか失敗したかを自動で判別します。」

意即:吸取动作后测量气压,自动判断是否成功取得工件。气压是训练标签的来源;图像是用来预测哪个位置可能成功的输入。把两者倒过来,称其为“机器人看视频自己看懂是否成功”,会误解整个实验。来源:PFN,〈手法—セットアップ〉

每次尝试可以写成一条训练记录:

字段具体内容作用
尝试前观测箱内深度图,以及候选吸取点附近裁出的图块描述抓取前的物体堆叠和局部几何
动作选择图中的坐标;高度由深度图确定指定这次吸取的位置
尝试后结果吸盘气压判出的成功/失败自动监督标签

图像如何越积越多,成功率为何上升

训练初期,机器人在允许区域内随机选点;有了一些数据之后,让当前 CNN 给候选位置预测抓取成功概率,再选高分位置尝试。每次抓取之前拍深度图,执行后读取气压,将尝试前的局部图像与尝试后的成败配对保存;累计数百次后,重新训练 CNN。模型的输出是候选位置的成功概率,而不是机械臂的完整运动指令。来源:PFN,〈手法—学習〉

这个循环可以概括为:

观察工件堆 → 选择候选吸取点 → 实际尝试 → 气压给出成败
       ↑                                   ↓
       └──── 用新样本更新“该点能否吸起”的预测器 ────┘

关键不在于“失败就神奇地变聪明”,而在于失败点也有具体的图像上下文:工件边界、互相贴合或被遮挡的位置,可能在粗糙视觉规则下看似可抓,却在真实尝试中失败;这些负样本会压低相似位置的预测分数。正样本则提高模型对可吸取局部形态的偏好。模型又决定下一批真实样本来自哪里,形成“采集—训练—再采集”的闭环。PFN 把这看作一种主动获取训练数据的过程;其中 CNN 本身仍按带标签图像做监督学习。

PFN 报告,在该装置及工件条件下,随机初期的抓取成功率约为 50%;约 2,000 条数据、4 小时后达到 70%;约 5,000 条数据、10 小时后达到 90%。来源:PFN,〈結果〉 这里的 90% 是抓取尝试成功率,不是图像分类准确率,更不是换一种工件仍能保持 90% 的保证。数据分布变化、相机标定偏差或错误标签,也都可能让后续训练退步;闭环并不意味着性能必然逐次单调上升。

还有两个容易混淆的 FANUC 产品:

  • FANUC 2018 年的 AI Bin Picking 公告说其使用“3D object scoring function”选择更合适的抓取顺序。这说明产品方向与散堆抓取相关,但公告没有宣称其全部实现细节和上述 2015 年演示完全相同。
  • PFN 2019 年关于 AI Error Proofing 的公告明确提到“example images of good and bad parts”:操作员给出合格/不合格零件示例图,用于视觉质检。这是另一项功能,不能拿它的“好坏图片”当成抓取演示的自主成败标签。

乒乓球能不能照这个思路学?先定义“成功”

能迁移的是真实试错和自动反馈闭环,但不能把 FANUC 的“吸起来=成功”直接改写成“拍子碰到球=成功”。乒乓球至少有三层目标:

层级建议的观测指标它无法单独说明什么
击中在有效来球中,球拍确实触球的比例碰到球可能直接打飞或下网
合法回球在有效来球中,击球后球越网并落在对方台面的比例落台不等于对手难接
有威胁的回球合法回球后,对手未能合法回击、己方赢得该分的比例;还要分对手水平和来球条件统计单次对手失误未必由该球造成

合法回球的口径不是凭空制定的。Google DeepMind 的《Achieving Human Level Competitive Robot Table Tennis》在〈II-A Hardware, problem setting, and environment〉把一次回球定义为:机器人击球后,球先落在对方台面,而非己方台面。因此“触球率”和“回球率”必须分开算;后者也不能冒充整场比赛胜率。

如何自动得到这三层标签?

球桌附近的同步相机可记录来球和回球轨迹;球拍位姿、接触传感或球轨迹突变可协助判断是否触球;球与球网、台面的位置关系用于判断过网及首次落点。若目标是“有威胁”,还必须继续观察对手的动作、回击和最后的得分。每球至少保存:来球状态及时间戳、机器人状态、所选击球动作、触球事件、过网/落台事件、对手回击事件和最终判罚。旋转可以通过额外视觉或轨迹模型估计,但不能把“看见一段球轨迹”自动等同于精确测得旋转。

这比散堆抓取难得多:FANUC 可以拍下近乎静止的工件堆,再从容执行吸取;乒乓球的球持续高速运动,观测、预测和动作都受延迟约束。《Robotic Table Tennis: A Case Study into a High Speed Learning System》描述的实机平台采用约 125 Hz 的感知系统、工业机器人高速反馈接口及自动发球/回收,并专门处理延迟和碰撞安全。这些数字是该论文系统的实现,不是所有乒乓球机器人的统一硬指标;它们说明为什么仅有“多拍些训练图片”远远不够。来源:该论文,〈II Table Tennis System〉

已有论文做到哪一步?

第一步:真实机器人可以从少量击球中改善落点

Tebbe 等人的《Sample-efficient Reinforcement Learning in Robotic Table Tennis》使用 KUKA 机械臂。系统先以高速相机、轨迹预测和运动规划解决“球将到哪里、如何赶到那里”;学习器再调整击球瞬间的球拍姿态与速度。这是一种降低学习维度的工程分工,而非从原始图片开始学习所有感知和关节控制。

论文〈III-B Reward〉的奖励包含目标落点误差,也惩罚过高的球路:
R(ga,h,gd)=−‖gd−ga‖−αh.R(g_a,h,g_d)=-\lVert g_d-g_a\rVert-\alpha h .

其中 gdg_d 是希望落到的目标点,gag_a 是实际落点,hh 是球飞向目标途中、约在中途位置的高度。为何还要罚高度?因为同一个落点可以由平快球或很高的吊球到达;后者可能给对手扣杀机会。文中实验采用 α=0.07\alpha=0.07,它是该研究在自身仿真中选定的系数,不能脱离单位与装置直接照搬。来源:Tebbe 等,〈III-B Reward〉

作者报告,实机实验在约 200 球以内学得较准确的回球:固定发球位置时,最后 50 球的目标落点误差约 118 mm;发球位置更分散时,误差约 209 mm。这是特定发球与目标条件下的落点误差,不等于“200 球学会赢真人”。论文还说明其仿真用于算法设计和调参,不是先在仿真预训练一个策略再宣称实机零样本成功。来源:Tebbe 等,〈IV-A Simulation〉〈VII Experiments on the robot system〉

第二步:能回球以后,比赛需要技能选择与对手适应

Google DeepMind 的竞争性乒乓球研究把不同低层技能组织成技能库:正反手、不同落点等技能分别训练;上层控制器根据来球、技能预估回球率/出球速度/落点,以及当前对手表现选择技能。每次真实对打还能更新对该对手的技能偏好。论文报告在 29 场对未见过的人类选手的比赛中赢了 13 场;赢下全部初级组比赛和部分中级组比赛,但未赢高级组选手。来源:论文摘要、〈II-B Hierarchical agent architecture and training overview〉〈II-D The High Level Controller〉〈III-C Match results〉

尤其要读清训练边界:论文〈II-C LLC training〉明确写道“All policies were trained in simulation”。真实对打提供来球分布、评估和在线技能选择信息;不能将其写成底层神经网络每接一球便在真实机械臂上重训一次。

第三步:“威胁”可以成为明确的目标,但要有对手反馈

《Outplaying elite table tennis players with an autonomous robot》在〈Rewards〉明确区分三种结果:“missing the ball”(未击中)、“hitting the ball but failing to return it”(击中但回球失败)和“successfully returning the ball”(成功回球)。成功回球后,部分策略继续针对目标落点和旋转给奖励;在比赛策略中,研究者还用精英选手的胜负球数据训练“这类球更可能得分吗”的预测模型。来源:〈Control〉〈Rewards〉及策略选择段落

这说明“有威胁”可以被建模,却不能只靠球速、旋转或落点当作胜负真值。该论文的低层回球策略主要在仿真中训练,比赛时再选择技能;它也不是 FANUC 式地让真人无限喂球、直接在实机上从零试到精英水准。

如果真要搭建“人喂球—机器人学习”系统

比较可靠的路线是分阶段推进:

  1. 先做可验证的数据链。标定相机、球桌和机器人坐标系;测量时间戳与端到端延迟;能稳定重建来球状态、球拍接触和回球首次落点。每球留下完整记录,不把漏检或标签不确定的样本硬判成失败。
  2. 先学稳,再学刁。第一阶段提高触球率;第二阶段提高合法回球率和落点可控性;第三阶段在合法率不倒退的约束下练习深浅落点、角度、速度与旋转。每阶段保留尚未用于训练的来球做独立测试。
  3. 最后引入会回击的对手。将“合法回球后对手回不回来、最终得分没有”纳入评价;按对手水平、来球速度/旋转和站位分层。比较同一类来球下的基准回球与新回球,避免把对手偶然失误误认成策略进步。对手若逐渐适应,训练和测试也必须覆盖这种变化。
  4. 把实机试错限定在安全动作空间。用仿真和已有轨迹规划器先筛掉机械臂撞台、越界和不可能完成的动作,再将有价值的试验搬到实机;高速闭环内执行的是已验证策略,模型更新和回归评估放在两球之间或训练批次之间。

最关键的反例很简单:如果人只负责喂球,却从不尝试接机器人的回球,系统可以学会碰球、过网、落台和定点,却拿不到“这球是否真正让对手难接”的实测标签。它只能优化威胁的代理指标。只有加入真实或足够可信的对手回击,才能把“越打越有威胁”从口号变成可检验的学习目标。

结论

FANUC 案例展示的是:明确动作、可靠自动标签、持续收集带结果的观测数据,能让机器人在固定抓取任务中减少失败。乒乓球也能利用同一学习思想,实机少样本落点学习和仿真—实机结合的比赛系统都已有论文支持;但它需要更快的感知与控制,并且必须把触球、合法回球、对手是否接住、最终得分分开评价。真正不可直接移植的,不是“试错学习”本身,而是把一个静态、单步、容易测量的抓取结果,误当成动态、连续、对抗性的比赛目标。

原始资料

  1. PFN 开发者技术说明,《深層学習でバラ積みロボットの0から学習》,〈手法〉〈結果〉。2015 年演示的一手资料,非同行评审论文。
  2. FANUC,“FANUC’s new AI functions utilizing machine learning and deep learning”,2018 年产品公告,〈ROBOT: AI Bin Picking〉。
  3. PFN,“FANUC’s new AI functions that utilize machine learning and deep learning”,2019 年产品公告,〈Robot: AI Error Proofing〉。
  4. J. Tebbe 等,“Sample-efficient Reinforcement Learning in Robotic Table Tennis”,arXiv:2011.03275v4,〈III-B Reward〉〈IV-A Simulation〉〈VII Experiments on the robot system〉。
  5. D. B. D’Ambrosio 等,“Robotic Table Tennis: A Case Study into a High Speed Learning System”,arXiv:2309.03315v2,〈II Table Tennis System〉。
  6. D. B. D’Ambrosio 等,“Achieving Human Level Competitive Robot Table Tennis”,arXiv:2408.03906v3,〈II-A Hardware, problem setting, and environment〉〈II-B Hierarchical agent architecture and training overview〉〈II-C LLC training〉〈II-D The High Level Controller〉〈III-C Match results〉。
  7. “Outplaying elite table tennis players with an autonomous robot”,Nature,〈Control〉〈Rewards〉及策略选择段落。

发表回复

Your email address will not be published. Required fields are marked *.

*
*