25年9月来自多伦多大学、克罗地亚萨格罗布大学和 Vector 研究院的论文“Generating Stable Placements via Physics-guided Diffusion Models”。
在多物体场景中稳定放置物体是机器人操作的一项基本挑战,因为放置必须避免穿透、建立精确的表面接触并达到力平衡。为了评估稳定性,现有方法依赖于运行仿真引擎或采用启发式的、基于外观的评估方法。相比之下,该方法将稳定性直接集成到扩散模型的采样过程中。为此,查询一个离线的基于采样规划器来收集多模态的放置标签,并训练一个扩散模型来生成稳定的放置结果。该扩散模型以场景和物体点云为条件,并作为几何-觉察先验。利用基于评分生成模型的组合特性,将学习到的先验与稳定性-觉察损失相结合,从而提高从高稳定性区域采样的概率。重要的是,该策略无需额外的重训练或微调,可以直接应用于现成的模型。在四个可以精确计算稳定性的基准场景上评估方法。与最先进的几何方法相比,该物理引导模型在应对强力扰动方面提高 56%,同时运行时间缩短 47%。
确定稳定放置位置的原则性方法需要:(i) 几何-觉察放置算法,(ii) 对场景平衡的推理,以及 (iii) 用于评估结果的稳定性验证器。为了推理场景平衡,现有方法要么依赖于执行仿真引擎 [6]、[7],要么仅基于外观评估放置质量 [8]、[9]。前者耗时较长,而后者需要对物体惯性参数做出假设。本文提出一种无需仿真的方法,通过融合要求 (i) 和 (ii) 来以原则性的方式解决稳定性问题:利用从 [10] 中获得的基于物理的特性(称为鲁棒性)增强放置算法。鲁棒性描述在场景中某一点上施加的最大力,在该力的作用下,物体不会发生移动。
稳定物体放置规划
给定一个包含 N 个相互摩擦接触物体的场景,已知这些物体的姿态、形状、质量分布和摩擦系数,稳定物体放置规划问题旨在确定一个待放置物体的姿态,使其满足以下两个条件:
-
1)(无穿透):任意两个物体之间不得存在重叠区域。 -
2)(稳定):作用于任何物体上的所有力和力矩之和必须为零。
满足上述两个条件的姿态被认为是有效的,任何其他姿态都被认为是无效的。
装配鲁棒性
本文利用文献[10]中定义的装配鲁棒性,它表示由摩擦接触刚体组成的装配体在不发生位移的情况下承受外力的能力。鲁棒性被正式定义为将一对点(p, e)映射到在点p上沿e方向施加的最大力R,其中e在单位球面,且在发生任何位移之前,该力的大小为R。计算装配体对外部力的鲁棒性需要求解反作用力,并考虑多物体滑动和倾倒现象。鲁棒性信息可以作为一种有用的中间表示,并提供一种将复杂静力学信息编码到点云特征中的方法。本文使用文献[10]中定义的算法来计算场景物体对作用于表面点的法向力的鲁棒性,简称为鲁棒性。
如 [5] 中强调的那样,针对给定的放置姿态,在场景中计算出的鲁棒性统计量(例如,最小或中值鲁棒性)可用于定量比较放置位置,并从稳定性的角度正式评估放置质量。
扩散模型
本文采用扩散模型[20]、[22]来模拟稳定放置姿态的多峰分布。扩散模型通过对潜变量x_1:T的马尔可夫链进行边缘化,来近似从分布p(x_0)中采样的过程。
在马尔可夫链的每一步,根据噪声过程,将由噪声调度{α_t}定义的加性噪声与潜变量x_t混合。因此,当T→∞时,原始样本x_0将与高斯噪声无法区分,从而可以将p(x_T)定义为单位高斯先验。扩散模型的目的,是学习从 x_T ∼ N (0; I) 到 x_0 ∼ p(x_0) 的映射,这可以通过最小化训练目标来实现。其中,由参数 θ 定义的模型 xˆ_θ 学习如何根据噪声样本 x_t 预测从数据集 X 中采样得到的原始数据点 x_0。
为了生成新的样本 xˆ_0,噪声根据如下的一个逆朗之万动力学采样过程迭代去除:
x_t−1 =β_t(x_t +η_txˆθ(x_t,t)) + ξ_t, ξ_t ∼N(0;σ_t I),
初始状态为高斯噪声样本 x_T ~ N(0; I) [22],这里变量 β_t、η_t 和 σ_t 由调度器获得,该调度器调节每个采样步骤的方差水平。由于扩散模型采用基于分数的公式 [22],公式 (5) 中的采样过程还可以由一个以噪声数据样本 x_t 为输入的可微代价函数 J 来指导。令概率分布 q(x_t) ∝ exp −J (x_t) 赋予 x_t 的实现以高概率,同时成本较低。q(x_t) 对数似然函数的梯度可以纳入采样过程,如下所示:
x_t−1 = β_t(x_t + η_t(xˆ_θ(x_t, t) − γ_t∇J (x_t)) + ξ_t,
其中,γ_t 调节数据空间中梯度的相对权重。这种改进的采样过程允许组合两个目标,从而生成一个样本 xˆ_0,该样本在给定观测数据 X 的情况下具有高似然性,并且在成本函数 J 下也具有低成本 [11]。
将寻找稳定物体放置位置的问题定义为对放置姿态分布 p(T|P) 进行建模的问题,其中 P 是对场景和物体的观测值,T是姿态。训练一个扩散模型来近似从 p(T|P) 中采样,该模型用于对数据集 T 中的噪声姿态进行去噪,具体描述如下。在符号中,下标 t 表示当前扩散步骤中使用的变量。
数据集生成
查询放置规划器 [5] 以采样如图所示四个不同场景中的稳定放置位置。设计的场景使得选择稳定放置位置需要对稳定性进行推理。例如,在“架子”场景中,物体可以放置在顶部板的较大纵向区域上;而在“桌子”场景中,如果物体距离桌面中心太远,则更容易倾倒。“平衡”场景由三条腿支撑的两块板组成,因此不仅需要考虑直接支撑腿,还需要考虑整个结构。最后,悬臂梁场景包含一块很大的平板,在其上施加的重量非常小,稍有不慎就会倾倒。
对于每个场景和待放置的物体,生成包含 1024 个点的点云。此外,评估每个场景点的鲁棒性,并将其作为附加特征。如图所示,鲁棒性值可以为场景中哪些部分最有利于稳定放置的规划提供强有力的先验信息 [5],但也可能误导规划器将注意力集中在物体无法放置的区域(例如,平衡场景的底部平板)。
对于每个场景,用 [5] 生成 800 个有效的放置方案,并用于训练。每个放置方案都表示为一个 9 维向量,该向量由位置向量和 6 维旋转向量组成 [23]。为了增加数据集的大小,并避免模型在未利用所有信息的情况下识别场景对每个输入的场景点云和放置方案执行一系列变换。首先对场景绕重力轴旋转,然后进行平移并打乱点云。变换参数随机选择,且每个点云的参数均不同。因此,在测试方法时,作为模型输入的场景点云保证是之前从未见过的。
观测处理
将观测数据 P 表示为点云,由场景点 S(基数为 |S|)和放置对象点 O(基数为 |O|)组成。每个场景点 S_i 包含其空间位置 p_S_i、指向该点所在局部表面的法向量 n_S_i、表示该点属于场景点云的one-hot编码以及鲁棒性特征 R(S_i)。每个放置对象点 O_i 包含其位置 p_O_i、法向量 n_O_i 以及表示该点属于放置对象点云的one-hot编码。所有向量均相对于同一参考系定义。
实验突出几个对模型性能至关重要的架构选择。具体而言,步骤级条件更新、局部上下文提取和平移等变性至关重要;缺少这些步骤,模型难以在未见过的数据上生成精确且无穿透的定位结果。
-
• 条件更新。在扩散过程的每一步,将当前带噪声的姿态样本 Tˆ_t 应用于物体点云 O,得到 Oˆ_t = Tˆ_tO。这使得模型能够将其中间预测与期望结果关联起来,从而学习到当物体和场景紧密接触时,更可能获得稳定的定位结果。 -
• 局部上下文。定位的有效性取决于物体与场景的接触情况。因此,为模型提供局部上下文至关重要。在去噪过程的每一步,计算当前变换后的物体点云 Oˆ_t 和场景点云 S 之间的 k-近邻 (KNN)。 -
• 平移等变性。为了使模型能够利用平移等变性,我用KNN点Sˆ_t的质心c_t,将Sˆ_t和Oˆ_t都置于同一个参考系中,其中S_t = Sˆ_t − c_t,O_t = Oˆ_t − c_t。
最后,将场景点云和物体点云连接成点云P_t = (S_t, O_t),并将其输入到下图所示的点云编码器架构f_φ中,以获得潜场景表示y_t = f_φ(P_t)。
扩散模型
训练。训练一个 U-Net 模型 Tˆ_θ [12],以预测给定噪声版本 T_t、当前噪声时间步 t 以及计算观测值 P 的特征嵌入 y_t 的放置姿态 T_0。
训练目标 L(x_0, θ) 变为 L(T_0, θ)。注意,T_t 不一定保持在 SE(3) 范围内,因为根据 [20] 中描述的平方余弦调度,高斯噪声会添加到 T_0 中。
稳定性损失。除了生成在训练数据分布下具有高似然性的姿态之外,还希望惩罚弱稳定的放置姿态。考虑可微损失函数 J(T),其中 d_max 控制指数函数的陡峭程度。在两个物体接触点处,场景点和物体点的位置几乎完全相等,且 || p_S_i −T p_O_i || ≈ 0。因此,最小化此距离有助于实现几何精确的放置。此外,场景点和物体点的表面法线应方向相反,且 |n_S_i · n_O_i | ≈ 1,从而避免接触物体相互穿透。最后,当支撑物体的场景点尽可能鲁棒时,放置后场景稳定的概率最大。这体现在损失函数 J(T)中,即通过场景点的鲁棒性值对其进行加权。因此,当具有最高鲁棒性的场景点与法线方向相反的物体点直接接触时,J(T)最小化。使用可微稳定性损失来实现条件生成,被称为鲁棒性引导。
推理。一旦扩散模型 Tˆ_θ 训练完成,通过遵循这个逆朗之万动力学采样过程来采样一个稳定的姿态:
T_t−1 = α_t(T_t +β_tTˆ_θ(T_t,t,y_t))−γ_t∇J(T_t))+ξ_t,
从 t = T 到 1,其中 ξ_t ∼ N(0; σ_t I),α_t、β_t 和 σ_t 遵循平方余弦调度 [20]。在这个逆朗之万动力学采样过程中应用鲁棒性指导,方法是计算稳定性损失J(T)相对于当前噪声姿态 T_t 的负梯度,并将该梯度加到去噪过程中。
生成模型的训练和推理流水线如图所示:
需要注意的是,指导既不影响扩散模型的训练阶段,也不需要训练外部模型来获得指导梯度;它仅在推理阶段应用,无需任何特殊调整。为了进一步降低引导的计算开销,每隔 n 个时间步应用一个常数 γ_t,其他时间步则将其置零。最后,虽然引导需要所有可用的点特征,但神经网络的训练和推理只需要点的位置和独热编码。
根据采样过程获得去噪样本 T_t−1 后,对 T_t−1 的最后 6 个元素进行 Gram-Schmidt 正交化,将 6D 旋转表示转换为 SO(3) 中的旋转矩阵 [23]。这个新的姿态,记为 Tˆ_t−1,可以用于变换物体云相对于场景的位置,从而放置物体,或者改变观测表示 O,以获得特征嵌入 y_t−1,用于下一个去噪步骤。
性能指标
评估扩散模型生成的布局的鲁棒性、非穿透性和稳定性。将稳定布局、不稳定布局、穿透布局和非穿透布局分别定义为 S、S'、P 和 P'。所有生成的布局集合为 A = S ∪ S' ∪ P ∪ P',|A| 表示 A 的基数。

