想象一下你刚刚结束了一场晚宴。桌子上乱糟糟地堆着碗、放着杯子的盘子以及散落的餐具。你的任务是“清理”餐桌——把所有东西整齐地堆叠起来,以便搬到厨房。对你来说,这轻而易举。但对机器人来说,这简直是一场噩梦。

这是一个长程操作任务 (Long-horizon manipulation task) 。 它需要推理物理规律 (你不能把盘子堆在杯子上) 、几何空间 (我有空间放下这个东西吗?) 以及动作顺序 (我需要先移开杯子,然后才能移动下面的盘子) 。

传统上,机器人学家通过符号规划 (symbolic planning) 来解决这个问题。他们将世界转化为文本: on(cup, plate) (杯子在盘子上) ,is_free(table) (桌子空闲) 。机器人规划出一系列逻辑,然后执行。但这需要对世界有完美的认知,并且需要人类手动定义每一种可能的物体关系。另一方面,现代的端到端学习 (end-to-end learning) (如扩散策略 Diffusion Policies) 试图直接将像素映射到机器人的动作。虽然这种方法很强大,但它们很难在需要许多复杂步骤的任务中“未雨绸缪”。

在这篇文章中,我们将深入探讨 SPOT: 基于点云物体变换的搜索 (Search over Point cloud Object Transformations) , 这是一篇发表于 CoRL 2025 的论文。这项研究提出了一种混合方法: 它保留了原始的视觉数据 (点云) ,但应用了严格的搜索算法 (A*) 来寻找解决方案。这是一个通过在 3D 空间中可视化其动作后果来进行规划的系统。

图 1: SPOT: 基于点云物体变换的搜索。我们的方法通过直接在点云空间中规划来解决多物体重排任务,无需使用任何特权真值信息,例如物体状态真值。它从分割后的点云开始,对物体级 SE(3) 变换执行 A* 搜索,直到找到满足目标的配置。输出的规划随后在现实世界中执行。

核心问题: 离散与连续

要理解 SPOT 为何重要,我们需要了解“离散化瓶颈 (Discretization Bottleneck) ”。

老派的规划器在离散空间中工作。你要么在 房间 A,要么在 房间 B。一个杯子要么 在桌上,要么 被拿着。但现实世界是连续的。如果你把杯子向左多放 1 厘米,它可能会撞到一个碗。如果你把积木堆得稍微偏离中心,塔就会倒塌。

大多数规划器通过将世界简化为符号来解决这个问题,从而丢失了关键的几何细节。SPOT 提出在一个不同的问题: 我们能否直接在世界的连续几何结构上运行搜索算法?

作者将这个问题表述为多物体重排 (Multi-Object Rearrangement) 。 给定一个杂乱场景的 3D 扫描 (点云) ,机器人必须找到一系列动作——具体来说是刚体变换 (SE(3)) ——将物体移动到目标配置。

SPOT 架构

SPOT 是一个“混合”系统。它使用规划 (A* 搜索) 来组织决策过程,但使用深度学习来生成规划器考虑的具体动作。

它不会扫描整个世界并尝试每一种数学上的可能性——那将花费无限的时间。相反,它使用学习到的“建议器 (Suggesters) ”来提出可能的动作,然后通过搜索这些提议来找到有效的序列。

这是高层面的系统概览:

图 3: 系统概览。我们的方法将 RGB-D 图像、物体名称和目标函数作为输入。它生成分割后的点云,并使用 A* 搜索在连续动作 (物体变换) 上进行规划,直到找到满足目标的点云。节点扩展通过从物体建议器中采样要移动的物体,然后从放置建议器中采样相应的变换来进行。模型偏差估计器使搜索偏向于物理上合理的动作。输出是一系列物体变换,并交给机器人执行。

该系统由三个主要的学习组件组成,用于指导 A* 搜索:

  1. 物体建议器 (Object Suggester) : 决定移动什么
  2. 放置建议器 (Placement Suggester) : 决定把它移到哪里
  3. 模型偏差估计器 (MDE) : 决定移动是否物理安全

让我们逐一拆解。

1. 学习型建议器

在标准的搜索算法中,你通过列出每一个可能的下一步动作来扩展一个“节点” (世界的一种状态) 。在连续的 3D 世界中,动作是无限的。SPOT 利用学习到的先验知识来限制这种无限性。

物体建议器 (The Object Suggester)

首先,机器人观察点云并问: “接下来我应该移动这些物体中的哪一个?”

如果一个沉重的碗压在盘子上,移动盘子是没有意义的。 物体建议器是一个神经网络 (PointNet++) ,它接收当前的点云并预测物体上的概率分布。它有效地从演示数据中学习前提条件——例如,学习到通常最上面的物体会被最先移动。

放置建议器 (The Placement Suggester)

一旦选定了一个物体 (例如,机器人决定移动“红色积木”) ,它需要知道把它放在哪里。

放置建议器是一个基于 TAXPose-D 的条件变分自编码器 (cVAE) 。它以物体和场景为输入,并采样潜在的 3D 变换。它可能会建议: “把红色积木放在蓝色积木上面”或者“把红色积木放在桌子上”。

关键在于,这个模型处理了多模态性 (multimodality) 。 放置物体的地方不止一个正确的选择。你可以把杯子堆叠起来,也可以把它放到一边腾出空间。放置建议器输出多个选项,允许规划器探索不同的分支。

图 2: 学习到的物体和放置建议器。左图: 给定场景的点云观察,物体建议器预测场景中哪些物体可以被可行移动的概率分布。右图: 给定一个物体和场景点云,放置建议器采样候选变换,指示该物体下一步可能被移动到哪里。

采样动作的数学公式涉及从这两个分布中进行提取:

描述从物体和放置建议器中采样动作的公式

2. 模型偏差估计器 (MDE)

建议器是乐观的——它们建议物体应该去哪里。但它们不模拟物理。如果放置建议器说“把盘子放在这里”,但那里已经有一个杯子了,盲目执行将导致碰撞。

作者引入了模型偏差估计器 (Model Deviation Estimator, MDE) 。 这个模型观察一个提议的动作并预测“偏差”——实际结果与预期结果的差异程度。

  • 低偏差: 机器人将一个独立的杯子移动到一个空位。预测与现实相符。安全。
  • 高偏差: 机器人试图移动一个上面有碗的盘子。碗会掉下来 (物理规律) ,这意味着产生的点云看起来将与简单的刚体变换截然不同。MDE 将此标记为“高偏差”。

MDE 充当“物理直觉”模块,引导搜索避开不稳定或危险的动作。

3. 基于点云的 A* 搜索

现在进入规划引擎。SPOT 使用 A 搜索* , 这是一种经典的路径查找算法。

  • 节点: 搜索树中的每个节点都是场景的完整 3D 点云。
  • 边: 动作 (移动一个物体) 。
  • 目标: 满足特定条件的点云配置 (例如,“所有积木都堆好了”) 。

A* 需要一个代价函数 (\(g(n)\)) 来确定最佳路径。SPOT 的代价函数是几个因素的加权和:

公式: g(n) = C_a(n) + w_c C_c(n) + w_d C_d(n) + w_p C_p(n)

其中:

  • \(C_a\): 动作代价 (Action Cost) (偏好更短的规划) 。
  • \(C_c\): 碰撞代价 (Collision Cost) (避免物体相交) 。
  • \(C_d\): 偏差代价 (Deviation Cost) (避免违反物理规律,由 MDE 提供) 。
  • \(C_p\): 概率代价 (Probability Cost) (偏好学习到的建议器有信心的动作) 。

这个概率代价 \(C_p\) 特别有趣。它惩罚神经网络认为不太可能 (低概率) 的动作,有效地将搜索保持在训练数据的分布范围内:

概率代价 C_p(n) 的公式

通过结合这些代价,SPOT 可以探索可能性的“树”。它可能会模拟将杯子向左移动,意识到这会挡住盘子,然后回溯,尝试将杯子向右移动。

实验设置

研究人员在三个需要复杂顺序推理的独特环境中测试了 SPOT:

  1. 积木堆叠 (模拟) : 按特定颜色顺序 (红 -> 绿 -> 蓝) 堆叠积木。如果积木最初堆叠错误,机器人必须先将它们拆开。
  2. 受限装箱 (模拟) : 将物体放入狭窄的架子中。
  3. 餐桌清理 (现实世界) : “晚宴”场景。将盘子、碗和杯子整理成一堆。

图 4: 初始配置。我们在每个任务中使用不同复杂度的初始配置。在 4 步餐桌清理任务中,机器人首先必须从盘子上拿走杯子,然后再堆叠所有物体。对于积木堆叠,目标是从上到下按红、绿、蓝的顺序排列积木,4 步任务涉及在按正确顺序重新堆叠之前拆除所有积木。受限装箱任务要求机器人抓取并将四个积木放入架子内。

为了验证现实世界的能力,他们搭建了一个包含 Franka Emika Panda 机械臂和 RGB-D 相机的物理装置。

图 8: 现实世界设置。左图: 我们的餐桌清理环境的现实世界设置,包括 RGB-D 相机、Franka 机械臂和一组物体。右图: 在餐桌清理环境中看到的所有物体 (盘子、碗和杯子) 。

结果: 为什么规划很重要

结果突出了纯学习方法的关键局限性以及基于搜索的规划的优势。

击败端到端学习

作者将 SPOT 与 3D 扩散策略 (3D Diffusion Policy, DP3) 进行了比较。DP3 是一种最先进的模仿学习方法,试图直接复制人类动作。

在只需要 2 步的任务中,DP3 表现尚可。但随着视界增长到 3 或 4 步 (例如,在重新堆叠之前需要拆开两个积木) ,DP3 完全失败了 (0% 成功率) 。它根本无法跟踪长期的依赖关系。然而,随着复杂度的增加,SPOT 保持了较高的成功率。

表 2: 积木堆叠任务的执行成功率。复杂度通过达到目标的地面真值最优规划的长度来衡量。结果是 3D 扩散策略 4 个种子的平均值,其他方法为 5 个种子的平均值。

这种趋势在下面的模拟成功率中清晰可见。请注意,随着步骤数量的增加,基线 (绿色) 直线下降,而 SPOT (蓝色) 保持稳健。

图 9: 模拟积木堆叠环境中任务执行成功率随任务复杂度的变化。结果为 5 个种子的平均值,并显示 95% 的置信区间。

超越人类演示者

最令人着迷的结果之一是,SPOT 可以比它向其学习的人类更高效

“放置建议器”是在人类演示上训练的。然而,因为 SPOT 使用 A* 搜索,它可以以新颖的方式组合这些学习到的动作。在一个餐桌清理的例子中,人类演示者将杯子从盘子上移开,放下,然后堆叠碗。

SPOT 意识到它可以将杯子直接移动到一个最终位置,从而允许碗被立即堆叠,从而节省了整整一步。因为它探索了可能性的树,它找到了人类错过的捷径。

图 6: 高效路径发现。SPOT 通过先将杯子移到盘子旁边,为直接堆叠碗创造空间,从而找到了比视频演示更高效的规划。相比之下,演示多花了一步将杯子从盘子上拿走。

可视化搜索

这种方法的威力最好通过规划图 (Plan Graphs) 来看出。这些图像可视化了 A* 算法探索的不同路径。

在下面的例子中,机器人考虑了不同的策略。它查看了涉及先移动杯子或先移动碗的路径。它修剪了导致高碰撞成本 (非法规划) 的路径,并选择了满足目标且成本最低的路径。能够在点云空间中“想象”这些分支未来的能力是 SPOT 的核心创新。

图 16: 规划图示例 3。该图代表了为 3 步餐桌清理配置找到的所有规划和目标,其中一个杯子放在盘子上的碗里,旁边还有一个单独放在桌子上的碗。我们在这个图中看到 A* 搜索找到了实现目标的变长多模态路径。可以先把杯子移到桌子上,然后堆叠碗,再把杯子放回碗里。或者,可以精确地将杯子移到盘子的一侧,这为直接堆叠碗留出了开口。前一种规划用 3 步实现目标,而后一种仅用 2 步就实现了目标。具有高碰撞的非法规划未被选中。

结论

SPOT 代表了我们对机器人规划思考方式的转变。它从僵化的、难以定义的符号状态世界 (cup_on_table = True) 中走出来,同时也没有掉进无法进行长程推理的黑盒策略陷阱。

通过将原始点云视为状态,并使用学习模型来指导经典搜索算法,SPOT 实现了两全其美: 学习的灵活性和规划的推理可靠性。

主要收获:

  • 无离散化: 规划发生在点云和 6-DoF 变换的连续空间中。
  • 混合智能: 神经网络提出合理的动作;A* 搜索审查它们并将它们拼接成连贯的规划。
  • 物理意识: 模型偏差估计器防止规划器幻想出物理上不可能的动作。
  • 长程鲁棒性: 与纯模仿学习不同,SPOT 擅长需要 3、4 或更多连续步骤的任务。

随着机器人从工厂进入杂乱的家庭 (清理餐桌、包装杂货) ,像 SPOT 这样能够同时推理几何和顺序的方法将变得至关重要。