想象一下,你正试图拿起一张平放在桌子上的扑克牌。你不能直接抓起它,因为你的手指——或者机器人的抓手——无法伸到牌的下面。你会怎么做?你会本能地用一根手指将牌滑到桌边 (非抓取操作) ,一旦它悬在边缘,你就会捏住它 (抓取操作) 。

这一系列动作对人类来说微不足道,但对机器人来说却是一个巨大的挑战。它需要长视距抓取与非抓取 (Long-Horizon Prehensile and Non-Prehensile, PNP) 操作 。 机器人必须针对一系列漫长的步骤,对物理、接触和几何形状进行推理。它必须决定如何滑动物体,在哪里停止,以及如何重新定位手部以便从滑动过渡到抓取,同时不把牌碰掉。

在这篇文章中,我们将深入探讨一篇名为**“SPIN: distilling Skill-RRT for long-horizon prehensile and non-prehensile manipulation”** (SPIN: 蒸馏 Skill-RRT 以实现长视距抓取与非抓取操作) 的研究论文。研究人员提出了一个框架,将规划算法的前瞻性与神经网络的速度和鲁棒性结合在了一起。

涉及卡片、书籍和杯子的机器人任务概览。

图 1 所示,这些任务涉及复杂的序列:

  1. 翻转卡片 (Card Flip) : 将卡片滑到边缘以抓取并翻转它。
  2. 书架 (Bookshelf) : 倾以此放倒一本紧挨着的书以腾出空间,然后抓取并将其上架。
  3. 厨房 (Kitchen) : 在水槽中操作杯子以正确调整把手方向,然后将其放入橱柜。

问题: 为什么 PNP 如此困难?

解决这些问题需要特定的技能序列。标准的强化学习 (RL) 通常在这里会失败,因为“视距 (horizon) ”太长——机器人可能需要在看到奖励之前执行数百个低级运动指令。

另一方面, 任务与运动规划 (TAMP) 方法擅长处理长视距问题,但在“物理”部分却很吃力。定义一张卡片如何滑动或一本书如何倾倒的确切符号规则极其困难,且容易出现模拟误差。

这些任务的一个主要瓶颈是状态间隙 (State Gap) 。 假设机器人使用“推动技能”来移动一本书。当推动完成时,机器人的抓手正紧压着书。为了开始下一个技能 (例如抓取) ,机器人需要将手移动到一个新的位置。然而,将手从书上移开而不干扰它是很危险的。如果机器人稍微碰了一下书,书可能会平倒下去,导致下一个技能无法实施。

标准的运动规划器试图为手部找到一条无碰撞的路径,但在这些容错率极低的“富接触 (contact-rich) ”场景中,它们往往会失败。

解决方案: SPIN (从技能规划到推理)

研究人员介绍了 SPIN (Skill Planning to INference) ,这是一个分两阶段处理问题的框架:

  1. 数据生成: 在模拟器中使用复杂的规划器 (Skill-RRT) 离线解决问题。这很慢,但能产生高质量的解。
  2. 蒸馏 (Distillation) : 训练一个快速的神经网络策略来模仿这些解。这产生了一个可以实时运行的系统。

SPIN 框架工作流程概览。

图 2 所示,该过程涉及三个主要组件,我们将逐一拆解:

  1. 技能 (Skills) : 预训练的动作库 (如滑动、倾倒) 。
  2. 连接器 (Connectors) : 专门训练用于弥合技能之间差距的策略。
  3. Skill-RRT: 将一切串联起来的规划器。

第一步: 技能库

在机器人能够规划复杂的序列之前,它需要基本的能力。作者使用强化学习 (RL) 预训练了一组参数化技能 (Parameterized Skills)

  • 非抓取 (NP) 技能: 如滑动、倾倒或推动等动作。这些动作最大化利用接触来移动物体。
  • 抓取 (P) 技能: 标准的拾取和放置动作。

每个技能都将“目标物体位姿 (Goal Object Pose) ”作为输入。例如,滑动技能接收坐标 \((x, y)\) 并试图将卡片推到那里。至关重要的是,这些技能是独立训练的。滑动技能不知道接下来会发生抓取技能;它只专注于滑动。

第二步: 用连接器弥合差距

这就是 SPIN 引入的一个巧妙创新之处。如前所述,从一个技能过渡到另一个技能是危险的。标准的运动规划器 (如 RRT) 可能会找到一条路径让机械臂从滑动的结束位置移动到抓取的开始位置,但它无法考虑到断开接触时的微妙物理现象。

为了解决这个问题,作者引入了连接器 (Connectors) 。 连接器是一个小型的、以目标为条件的 RL 策略,专门用于将机器人从技能后状态移动到技能前状态,且对物体的干扰最小

我们如何训练连接器?

我们不能为每一种可能的情况都训练一个连接器——那将耗费无限的时间。研究人员使用了一种叫做 Lazy Skill-RRT (懒惰 Skill-RRT) 的方法。

  1. 他们运行一个规划器,假想存在一个完美的连接器。它将机器人从技能 A 的结束处“传送”到技能 B 的开始处。
  2. 他们记录下这些“传送”作为训练问题。
  3. 然后,他们训练一个 RL 智能体来实际解决这些特定的过渡问题,并惩罚物体的任何移动。

运动规划器失败案例与连接器的对比图示。

图 5 (上图) 展示了为什么这是必要的。标准的运动规划器 (Bi-RRT) 经常失败 (如行 a、b、c 所示) ,因为它们会在过渡期间导致物体掉落或发生碰撞。SPIN 中使用的学习型连接器就像“漏斗”一样,安全地将机器人引导至下一个技能的起始位置。

第三步: 使用 Skill-RRT 进行规划

现在机器人拥有了技能 (移动物体) 和连接器 (链接技能) ,它需要一个大脑来决定使用哪些技能以及将物体移动到哪里

作者提出了 Skill-RRT , 这是经典快速探索随机树 (RRT) 算法的扩展。标准的 RRT 探索的是机器人关节配置。Skill-RRT 探索的是技能和中间物体目标的空间。

算法 1: Skill-RRT 伪代码。

以下是 Skill-RRT 循环的工作原理 (简化版) :

  1. 采样: 随机选择一个技能 (例如“倾倒”) 和一个该技能的随机目标物体位姿 (例如“倾斜 45 度”) 。
  2. 最近邻: 在现有的规划树中找到一个可以过渡到这个新状态的节点。
  3. 扩展:
  • 使用连接器将机械臂移动到该技能的起始位置。
  • 在模拟器中执行该技能
  • 如果技能成功 (物体到达目标) ,将这个新状态添加到树中。
  1. 重复直到达到目标。

处理狭窄通道

规划中的一个主要挑战是寻找“狭窄通道 (narrow passages) ”——即物体必须处于特定区域才能使任务成功的那些区域。例如,要翻转一张卡片,它必须正好位于桌子的边缘。如果规划器在桌子上到处随机采样物体位置,它可能永远找不到那个特定的边缘点。

为了解决这个问题,作者为每个领域定义了特定的区域 (Regions) (\(Q_{obj}\)) 。

为翻转卡片、书架和厨房领域定义的区域。

图 3 所示,规划器不是在 3D 空间中任意采样,而是在这些逻辑区域 (例如“上层架子”、“下层架子”、“水槽”) 内采样子目标。这大大缩小了搜索空间,使规划变得可行。

第四步: 蒸馏为反应式策略

Skill-RRT 很强大,但它很慢 。 计算一个计划可能需要几分钟,这对于在动态的现实世界厨房中工作的机器人来说是不可接受的。此外,现实世界中的执行存在噪声;如果物体稍微滑动一下,僵化的计划可能会失败。

SPIN 的最后一步是蒸馏 (Distillation) 。 目标是将规划器的繁重计算压缩到一个快速、反应式的神经网络中。

  1. 数据生成: 研究人员在数千个随机化问题上运行 Skill-RRT,收集了大量成功的轨迹数据集。
  2. 鲁棒性过滤: 并非所有成功的计划都是平等的。有些可能只是因为“模拟运气”才成功的。为了确保质量,他们在添加随机噪声的情况下多次重放 (replay) 每个计划。
  3. 过滤: 只有那些持续成功 (例如 >90% 的时间) 的计划会被保留。

用于过滤的重放成功率比较。

图 6 展示了这种过滤的重要性。蓝色直方图代表使用高成功率阈值 (\(m=0.9\)) 保留的计划质量。这些计划比使用低阈值 (\(m=0.1\)) 或不过滤保留的计划要鲁棒得多。

  1. 扩散策略 (Diffusion Policy) : 最后,他们在过滤后的数据集上训练一个扩散策略 。 扩散策略非常擅长处理多模态分布——这意味着它可以学习解决问题的多种有效方法,而不会产生混淆。

结果是一个策略,它接收当前状态并在几毫秒内输出运动指令,有效地赋予了机器人源自 Skill-RRT 的复杂计划的“肌肉记忆”。


实验与结果

团队将 SPIN 与几个最先进的基准进行了评估,包括:

  • PPO: 标准的“扁平”强化学习。
  • MAPLE: 一种分层 RL 方法。
  • HLPS: 一种以目标为条件的分层方法。
  • Skill-RRT: 原始规划器 (无蒸馏) 。

模拟结果

结果非常明显。标准的 RL 方法 (PPO, HLPS) 在这些长视距任务上的成功率为 0% 。 它们根本无法深入探索动作序列以找到奖励。

Skill-RRT (规划器) 表现尚可,成功率在 39% 到 66% 之间。然而,它很慢 (每个计划需要 80-120 秒) 。

SPIN , 即蒸馏后的策略,表现优于所有其他方法。

  • 翻转卡片: 95% 成功率
  • 书架: 93% 成功率
  • 厨房: 98% 成功率

为什么 SPIN 的表现优于创建其训练数据的规划器?这种现象被称为“先知效应 (oracle effect) ”。蒸馏后的策略从成千上万个计划中进行了归纳。如果机器人在执行过程中出现小错误,策略 (在训练中见过类似的变体) 可以立即反应并纠正。而原始规划器则受困于开始时计算出的僵化路径。

数据质量的重要性

研究人员进行了一项消融研究,看看他们的“噪声重放过滤”是否真的重要。

基于过滤方法的期望位姿分布比较。

图 7 在翻转卡片任务中突出了这一点。x 轴显示了滑动卡片的目标位置。

  • 右图: “安全且可抓取”的区域很窄 (蓝色/绿色块) 。
  • 左/中图: 蓝色条形 (SPIN 的高质量过滤) 紧密聚集在安全区域。绿色区域 (不过滤) 则扩散到了危险区域。
  • 结论: 过滤剔除了将卡片放置在危险位置的“侥幸”计划,只留下了机械上鲁棒的计划。

现实世界部署

终极测试是在现实世界中。完全在模拟中训练的策略被零样本 (zero-shot) (意味着没有在现实世界中进行额外训练) 部署到了物理 Franka Research 3 机器人上。

结果令人印象深刻:

  • 翻转卡片: 85% 成功率
  • 书架: 90% 成功率
  • 厨房: 80% 成功率

失败主要是由于意外的物理碰撞或硬件扭矩限制触发了安全停止——这是模拟器无法完美捕捉的混乱现实所固有的问题。

结论

SPIN 框架展示了机器人技术的一个强大范式: 离线规划,在线推理。

通过利用 Skill-RRT 的蛮力搜索能力,结合 连接器 来处理微妙的过渡,该系统发现了 RL 自身无法找到的复杂解。然后,通过将这些解蒸馏为 扩散策略 , 机器人获得了以现实世界所需的速度和反应能力来执行这些复杂行为的能力。

这种方法弥合了经典规划的有条理推理与现代深度学习的敏捷、泛化性能之间的差距。对于机器人领域的学生和研究人员来说,SPIN 强调了我们并不总是需要在规划和学习之间做出选择——通常,最好的结果来自于让它们协同工作。