机器人导航新思路论文:Diffusion-based Generation, Optimization, and Planning in 3D Scenes
先看引言部分,这篇论文提出了SceneDiffuser模型,我关注这篇论文主要是因为这篇论文中还提出了3D导航的路径规划,这是我比较感兴趣的,因为目前还没有特别理想的可以落地的路径规划AI方案。
Abstract
本文介绍了SceneDiffuser,这是一个用于3D场景理解的条件生成模型。SceneDiffuser提供了一个统一的模型来解决场景条件的生成、优化和规划。与先前的工作相比,SceneDiffuser本质上具有场景感知、基于物理和目标导向的特点。通过迭代采样策略,SceneDiffuser通过基于扩散的去噪过程以完全可微的方式共同公式化场景感知生成、基于物理的优化和目标导向的规划。这种设计缓解了不同模块之间的差异和先前场景条件生成模型的后验崩溃。我们在各种3D场景理解任务上评估了SceneDiffuser,包括人体姿势和运动生成、灵巧抓取生成、3D导航的路径规划以及机器人手臂的运动规划。结果显示,与先前的模型相比,SceneDiffuser有显著改善,展示了其在3D场景理解广泛社区的巨大潜力。
1. 引言
生成、优化和规划3D场景的能力是计算机视觉、图形学和机器人学中的一个长期目标。为实现这些目标,设计了各种任务,促进了运动生成、运动规划、抓取生成、导航、场景合成、具身感知与操控以及自动驾驶等下游应用的发展。
尽管有丰富的应用和巨大成功,现有针对这些任务设计的模型在真实世界3D场景理解中表现出两个根本的限制。
首先,大多数先前的工作利用条件变分自编码器(cVAE)进行3D场景的条件生成。cVAE模型利用编码器-解码器结构学习后验分布,并依赖学习的潜在变量进行采样。尽管cVAE由于其简单的架构和一步采样过程易于训练和采样,但它遭遇后验崩溃问题;强大的解码器忽视了学习的潜在变量,导致这些崩溃模式生成的多样性有限。这种崩溃在具有更强3D解码器和更复杂及噪声输入条件(例如自然3D扫描)中进一步加剧。
其次,尽管生成、优化和规划在3D场景中之间存在密切关系,但缺乏一个统一的框架来解决这些模型之间的现有差异。以往工作常常在生成模型的输出上应用现成的基于物理的后优化方法,通常产生不一致和不切实际的生成,尤其是在转移到新场景时。类似地,规划者通常作为生成模型结果的独立模块进行轨迹规划或通过强化学习单独学习,导致在推理过程中(尤其是在新场景中)规划与其他模块(例如生成)之间存在差距。
为了解决上述限制,我们引入了SceneDiffuser,这是一个基于扩散过程的条件生成模型。SceneDiffuser消除了差异,并为场景条件的生成、优化和规划提供了一个统一的平台。具体而言,借助去噪过程,它在训练期间学习场景条件的生成扩散模型。在推理时,SceneDiffuser通过统一的迭代引导采样框架共同解决场景感知生成、基于物理的优化和目标导向的规划。这种设计赋予了SceneDiffuser以下三方面的优越性:
-
生成:基于扩散模型,SceneDiffuser解决了场景条件生成模型的后验崩溃问题。由于前向扩散过程可以视为3D场景中的数据增强,它有助于遍历足够的场景条件分布模式。
-
优化:SceneDiffuser将基于物理的目标集成到采样过程的每一步中作为条件指导,能够在学习和采样过程中实现可微的基于物理的优化。这种设计促进了物理上合理的生成,这对3D场景中的任务至关重要。
-
规划:基于场景条件轨迹级生成器,SceneDiffuser具备一个物理和目标感知的轨迹规划器,在长远轨迹和新3D场景中表现更好。
如图1所示,我们在多种3D场景理解任务上评估SceneDiffuser。人体姿势、运动和灵巧抓取生成的结果显著改善,展示了在3D场景和物体条件下合理且多样的生成。在3D导航路径规划和机器人手臂运动规划的结果显示了SceneDiffuser的可泛化性和长远规划能力。
2. 相关工作
2.1 3D场景中的条件生成
在3D场景中生成多样化内容和丰富的交互对于理解3D场景的可用性至关重要。几种应用出现在条件场景生成上,包括人类姿势和运动生成以及物体条件的抓取姿势生成。然而,大多数先前的方法依赖于cVAE并遭遇后验崩溃的问题,尤其是在3D场景自然且复杂的情况下。在本工作中,SceneDiffuser通过基于扩散的去噪过程解决了后验崩溃问题。
2.2 3D场景中的基于物理的优化
生成与3D场景兼容的物理上合理的内容在场景条件生成中是具有挑战性的。以往的工作使用基于物理的后优化或可微分目标将碰撞和接触约束集成到生成框架中。然而,后优化方法无法与生成模型共同学习,导致生成结果不一致。类似地,可微分方法对最终目标施加约束,在采样过程中无法优化物理交互,特别是在适应新场景时,导致生成的内容不切实际。在本工作中,SceneDiffuser通过将可微分的基于物理的优化集成到每一步的采样过程中,避免了这种不一致。
2.3 3D场景中的规划
在3D场景中采取行动和规划的能力对智能体至关重要,最近也推动了具身AI研究的高潮。在所有任务中,视觉导航在视觉和机器人社区中得到了广泛的研究。然而,现有的工作严重依赖于基于模型的规划者,并缺乏对长远规划的轨迹级优化。此外,这些规划者缺乏对物理交互的明确建模,难以在自然场景中泛化,在这些场景中需要快速学习和适应。与基于轨迹级生成器的全局轨迹规划器相比,SceneDiffuser在长远计划和新3D场景中表现出更好的泛化能力。
2.4 基于扩散的模型
扩散模型作为一类生成模型,通过逐步去噪过程学习和采样数据分布,促进了图像、文本和形状的生成。它由前向过程和反向过程组成。前向过程逐渐将数据破坏为高斯噪声,而参数化的反向过程通过学习的正常分布从噪声中恢复数据。训练目标是多噪声尺度上的去噪分数匹配。
3. 背景
3.1 问题定义
给定一个3D场景 S S S,我们旨在为完成任务(例如,导航、操控)生成最佳解决方案,给定场景中的目标 G G G。我们将代理的状态和动作表示为 p s p_s ps 和 a q a_q aq。动态模型定义了状态转移 p ( p s i + 1 ∣ s i , a i ) p(p_{s_{i+1}} \mid s_i, a_i) p(psi+1∣si,ai),这在场景理解中通常是确定性的。轨迹定义为:
τ = ( s 0 , a 0 , … , s i , a i , … , s N ) \tau = (s_0, a_0, \ldots, s_i, a_i, \ldots, s_N) τ=(s0,a0,…,si,ai,…,sN)
其中 N N N 表示以离散时间解决任务的时间跨度。
3.2 轨迹优化中的规划
场景条件轨迹优化定义为最大化任务目标:
τ ∗ = arg max τ J ( τ ∣ S , G ) \tau^* = \arg\max_\tau J(\tau | S, G) τ∗=argτmaxJ(τ∣S,G)
动态模型通常已知用于轨迹优化。考虑到未来的动作和状态及可预测的动态性,整个轨迹 τ \tau τ 可以通过传统的或数据驱动的规划算法进行联合和非渐进优化。基于轨迹的优化利用其对历史和未来状态的全局感知,从而能够更好地建模长远任务,相比于强化学习中的单步模型。
3.3 扩散模型
扩散模型是一类生成模型,代表了通过从高斯噪声逐步去噪的过程生成数据。它由前向和反向过程组成。前向过程 q ( τ t ∣ τ t − 1 ) q(\tau_t \mid \tau_{t-1}) q(τt∣τt−1) 将数据 τ 0 ∼ q ( τ 0 ) \tau_0 \sim q(\tau_0) τ0∼q(τ0) 逐渐破坏为高斯噪声。参数化的反向过程 p θ ( τ t − 1 ∣ τ t ) p_\theta(\tau_{t-1} \mid \tau_t) pθ(τt−1∣τt) 从噪声中恢复数据,利用从固定时间步长学习的正常分布。训练目标为在多个噪声尺度上的去噪分数匹配。
4. SceneDiffuser
SceneDiffuser 将规划建模为轨迹优化,并以采样的方式解决上述问题,其中轨迹优化是通过模型学习的轨迹级分布采样实现的。利用带有梯度采样和灵活条件的扩散模型,SceneDiffuser 建模场景条件的目标导向轨迹 p ( τ 0 ∣ S , G ) p(\tau_0 \mid S, G) p(τ0∣S,G)。
p ( τ 0 ∣ S , G ) = p θ ( τ 0 ∣ S ) p ϕ ( G ∣ τ 0 , S ) p(\tau_0 | S, G) = p_\theta(\tau_0 | S) p_\phi(G | \tau_0, S) p(τ0∣S,G)=pθ(τ0∣S)pϕ(G∣τ0,S)
生成 p θ ( τ 0 ∣ S ) p_\theta(\tau_0 \mid S) pθ(τ0∣S) 描述了生成特定轨迹的概率,场景条件下的生成可以使用条件扩散模型建模,带有迭代去噪过程。
p θ ( τ 0 ∣ S ) = p ( τ T ) ∏ t = 1 T p ( τ t − 1 ∣ τ t , S ) p_\theta(\tau_0 | S) = p(\tau_T) \prod_{t=1}^{T} p(\tau_{t-1} | \tau_t, S) pθ(τ0∣S)=p(τT)t=1∏Tp(τt−1∣τt,S)
p ( τ t − 1 ∣ τ t ) = N ( τ t − 1 ; μ θ ( τ t , t , S ) , Σ θ ( τ t , t , S ) ) p(\tau_{t-1} | \tau_t) = N(\tau_{t-1}; \mu_\theta(\tau_t, t, S), \Sigma_\theta(\tau_t, t, S)) p(τt−1∣τt)=N(τt−1;μθ(τt,t,S),Σθ(τt,t,S))
优化和规划 p ϕ ( G ∣ τ 0 , S ) p_\phi(G \mid \tau_0, S) pϕ(G∣τ0,S) 表示使用采样轨迹到达目标的概率,其中目标可以通过各种任务中的自定义目标函数灵活定义。
p ϕ ( G ∣ τ t , S ) = p ϕ ( O = 1 ∣ τ t , S , G ) p_\phi(G | \tau_t, S) = p_\phi(O = 1 | \tau_t, S, G) pϕ(G∣τt,S)=pϕ(O=1∣τt,S,G)
直观地,轨迹目标在 (1) 式中可以指示这种最优性。我们因此扩展 p ϕ ( G ∣ τ t , S ) p_\phi(G \mid \tau_t, S) pϕ(G∣τt,S) 为其指数形式。
p ϕ ( G ∣ τ t , S ) = exp ( J ( τ t ∣ S , G ) ) p_\phi(G | \tau_t, S) = \exp(J(\tau_t | S, G)) pϕ(G∣τt,S)=exp(J(τt∣S,G))
= exp ( ϕ p ( τ t ∣ S , G ) + ϕ o ( τ t ∣ S ) ) = \exp(\phi_p(\tau_t | S, G) + \phi_o(\tau_t | S)) =exp(ϕp(τt∣S,G)+ϕo(τt∣S))
在场景理解中, ϕ o \phi_o ϕo 通常表示可行的物理关系(例如,碰撞、接触和交集)。 ϕ p ( τ t ∣ S , G ) \phi_p(\tau_t \mid S, G) ϕp(τt∣S,G) 表示规划(即目标到达)场景条件的目标。这两个目标都可以从观察到的轨迹中通过适当参数化显式定义或隐式学习。
4.1 学习
L θ ( τ 0 ∣ S ) = E t , ϵ , τ 0 [ ∥ ϵ − ϵ θ ( α t ^ τ 0 + 1 − α t ^ ϵ , t , S ) ∥ 2 ] L_\theta(\tau_0 | S) = \mathbb{E}_{t, \epsilon, \tau_0}\left[ \|\epsilon - \epsilon_\theta\left(\sqrt{\hat{\alpha_t}}\tau_0 + \sqrt{1 - \hat{\alpha_t}}\epsilon, t, S\right)\|^2 \right] Lθ(τ0∣S)=Et,ϵ,τ0[∥ϵ−ϵθ(αt^τ0+1−αt^ϵ,t,S)∥2]
通过学习到的 p θ ( τ 0 ∣ S ) p_\theta(\tau_0 \mid S) pθ(τ0∣S),我们利用扩散模型的灵活条件采样 p ( τ 0 ∣ S , G ) p(\tau_0 \mid S, G) p(τ0∣S,G)。具体而言,我们利用泰勒展开近似 p ϕ ( G ∣ τ t , S ) p_\phi(G \mid \tau_t, S) pϕ(G∣τt,S)。
log p ϕ ( G ∣ τ t , S ) ≈ ( τ t − μ ) g + C \log p_\phi(G | \tau_t, S) \approx (\tau_t - \mu)g + C logpϕ(G∣τt,S)≈(τt−μ)g+C
其中 C C C 是常数, μ = μ θ ( τ t , t , S ) \mu = \mu_\theta(\tau_t, t, S) μ=μθ(τt,t,S),并且 Σ = Σ θ ( τ t , t , S ) \Sigma = \Sigma_\theta(\tau_t, t, S) Σ=Σθ(τt,t,S) 是原始扩散过程的推断参数。
g = ∇ τ t log p ϕ ( G ∣ τ t , S ) ∣ τ t = μ = ∇ τ t ( ϕ o ( τ t ∣ S ) + ϕ p ( τ t ∣ S , G ) ) ∣ τ t = μ g = \nabla_{\tau_t} \log p_\phi(G | \tau_t, S) \bigg|_{\tau_t = \mu} = \nabla_{\tau_t} \left( \phi_o(\tau_t | S) + \phi_p(\tau_t | S, G) \right) \bigg|_{\tau_t = \mu} g=∇τtlogpϕ(G∣τt,S) τt=μ=∇τt(ϕo(τt∣S)+ϕp(τt∣S,G)) τt=μ
因此,我们有:
p ( τ t − 1 ∣ τ t , S , G ) = N ( τ t − 1 ; μ + λ Σ g , Σ ) p(\tau_{t-1} | \tau_t, S, G) = N(\tau_{t-1}; \mu + \lambda \Sigma g, \Sigma) p(τt−1∣τt,S,G)=N(τt−1;μ+λΣg,Σ)
其中 λ \lambda λ 是引导的缩放因子。使用上述公式,我们可以在优化和规划目标的指导下采样 τ t \tau_t τt。
值得注意的是, ϕ p \phi_p ϕp 和 ϕ o \phi_o ϕo 作为物理和目标约束的预定义引导。但是,它们也可以从观察到的轨迹中学习。在训练期间,我们首先固定学习到的基础模型 p θ ( τ 0 ∣ S ) p_\theta(\tau_0 \mid S) pθ(τ0∣S),然后学习优化和规划的 ϕ o \phi_o ϕo 和 ϕ p \phi_p ϕp。
L ϕ ( τ 0 ∣ S , G ) = E t , ϵ , τ 0 [ ∥ ϵ − ϵ θ ( τ t , t , S ) − Σ g ∥ 2 ] L_\phi(\tau_0 | S, G) = \mathbb{E}_{t, \epsilon, \tau_0}\left[ \|\epsilon - \epsilon_\theta(\tau_t, t, S) - \Sigma g\|^2 \right] Lϕ(τ0∣S,G)=Et,ϵ,τ0[∥ϵ−ϵθ(τt,t,S)−Σg∥2]
4.2 采样
通过不同的采样策略,SceneDiffuser能够在统一的引导采样框架下生成、优化和规划3D场景中的轨迹。以下总结了详细的采样算法。
5. 实验
为了证明SceneDiffuser在各种场景中是通用和适用的,我们在五个场景理解任务上评估了SceneDiffuser。对于生成任务,我们评估了场景条件的人体姿势和运动生成以及物体条件的灵巧抓取生成。对于规划任务,我们评估了3D导航的路径规划和机器人手臂的运动规划。以下我们首先介绍基准方法,然后详细介绍设置、结果分析和每个任务的消融研究。我们在附录D中提供了详细的实现和实验设置,在附录E中提供了附加消融研究,在附录F中提供了附加实验,在附录G中提供了附加的定性结果。
基准方法
对于条件生成任务,我们主要将SceneDiffuser与广泛采用的cVAE模型及其变体进行比较。我们还比较了cVAE中优化轨迹物理的策略,包括作为损失集成到训练中和作为后优化应用。对于规划,我们比较了通过模仿学习使用行为克隆(BC)学习的随机规划者和一种简单的基于启发式的确定性规划者(根据L2距离指导)。
5.1 任务1:人体姿势生成
设置
场景条件的人体姿势生成旨在在给定的3D场景中生成语义上合理和物理上可行的单帧人体。我们在PROX提供的12个室内场景上评估此任务,并使用来自LEMO的PROX每帧SMPL-X参数的精细版本。输入是通过随机下采样PROX提供的场景网格提取的有色点云。根据文献,我们创建了训练/测试分割,结果为在8个场景中约53k帧用于训练,其他用于测试。
指标
我们通过直接的人类评估和间接的碰撞与接触评分评估生成姿势的物理合理性。我们在四个测试场景中随机选择1000帧进行直接测量,并指示26名众包工作者决定生成的人体姿势是否合理。我们计算合理生成的平均百分比,并将此指标称为合理率。对于间接测量,我们报告(i)通过计算正SDF的场景顶点与人体之间的比例,生成的人体的非碰撞评分;(ii)通过检查人体在距离预定义阈值下是否与场景接触来获得接触评分。按照文献评估生成的SMPL-X参数和基于标记的身体网格表示的全局平移多样性,具体计算生成姿势的平均成对距离(APD)和标准差(std)。
结果
表1定量证明了SceneDiffuser在生成姿势时的显著优势,同时保持生成的多样性。我们在图3中进一步提供了基线模型和SceneDiffuser之间的定性比较。在实现相当的多样性、碰撞和接触性能的同时,我们的模型生成的结果包含了明显更多的物理上合理的姿势(例如,悬浮、严重碰撞)。这反映在合理率的显著优势上(即超过28%),相较于基于cVAE的基线。
模型 | 合理率 (%) | 非碰撞评分 (%) | 接触评分 (%) | 平均成对距离 (APD)(平移) | 标准差 (std)(平移) | 平均成对距离 (APD)(参数) | 标准差 (std)(参数) | 平均成对距离 (APD)(标记) | 标准差 (std)(标记) |
---|---|---|---|---|---|---|---|---|---|
cVAE (不使用LHS) [90] | 14.88 | 99.78 | 96.42 | 1.218 | 0.494 | 2.878 | 0.166 | 3.638 | 0.172 |
cVAE (使用LHS) [90] | 16.19 | 99.75 | 99.25 | 1.013 | 0.416 | 2.994 | 0.170 | 3.614 | 0.169 |
我们的模型 (不使用优化) | 21.04 | 99.74 | 99.43 | 0.776 | 0.331 | 3.204 | 0.195 | 3.483 | 0.167 |
我们的模型 (使用优化) | 44.77 | 99.93 | 98.05 | 1.009 | 0.413 | 3.297 | 0.197 | 3.679 | 0.177 |
5.2 任务2:人体运动生成
设置
我们考虑在两种不同设置下生成人体运动序列:(1)仅基于3D场景条件;(2)同时基于起始姿势和3D场景条件。我们使用与第5.1节相同的人体和场景表示,并将原始LEMO运动序列分割为固定持续时间(60帧)的段。总共获得28000个运动段,每个起始姿势和结束姿势之间的距离超过0.2米。我们按照第5.1节中的相同分割进行训练/测试,并使用相同的姿势生成评估指标。我们报告运动序列中姿势指标的平均值作为我们的性能度量。
结果
如表2所示,SceneDiffuser在生成高质量运动序列方面持续优于cVAE基线。具体而言,我们生成的运动在合理率、非碰撞评分和接触评分上超越基线模型。这一性能提升表明更好地覆盖与场景的丰富交互,同时保持物理上合理。它还导致指标的多样性降低(例如,平移方差),因为运动的合理空间相较于cVAE受限。我们还注意到,提供运动的起始位置作为条件会约束可能的未来运动序列,并导致所有模型的生成多样性下降。我们也观察到在应用优化引导采样后仅有边际性能提升。一种可能的原因是生成的运动已经是合理的,并且从优化中获得的指导较小。
如图4所示,SceneDiffuser从相同起始姿势生成多样的运动(例如,“坐下”、“走路”)在未见的3D场景中。
模型 | 合理率 (%) | 非碰撞评分 (%) | 接触评分 (%) | 平均成对距离 (APD)(平移) | 标准差 (std)(平移) | 平均成对距离 (APD)(参数) | 标准差 (std)(参数) | 平均成对距离 (APD)(标记) | 标准差 (std)(标记) |
---|---|---|---|---|---|---|---|---|---|
cVAE (不使用起始姿势) [73] | 7.72 | 99.86 | 86.26 | 1.628 | 0.613 | 2.766 | 0.155 | 3.275 | 0.150 |
我们的模型 (不使用起始姿势) | 21.67 | 99.71 | 97.92 | 0.568 | 0.237 | 2.339 | 0.126 | 3.299 | 0.151 |
我们的模型 (不使用起始姿势且使用优化) | 25.83 | 99.93 | 98.91 | 0.473 | 0.196 | 2.405 | 0.127 | 3.385 | 0.154 |
cVAE (使用起始姿势) [73] | 17.65 | 99.88 | 95.44 | 0.478 | 0.188 | 1.747 | 0.091 | 2.308 | 0.105 |
我们的模型 (使用起始姿势) | 36.56 | 99.85 | 98.47 | 0.193 | 0.081 | 1.372 | 0.065 | 1.568 | 0.072 |
我们的模型 (使用起始姿势且使用优化) | 38.44 | 99.94 | 98.43 | 0.168 | 0.070 | 1.389 | 0.065 | 1.575 | 0.072 |
5.3 任务3:灵巧抓取生成
设置
灵巧抓取生成旨在为给定物体生成多样且稳定的抓取姿势,采用类人灵巧手。我们使用 MultiDex 数据集中的 Shadowhand 子集,该数据集包含 58 个日常物体的多样化灵巧抓取姿势。我们将 Shadowhand 的姿势表示为 q = ( t , R , θ ) ∈ R 33 q = (t, R, \theta) \in \mathbb{R}^{33} q=(t,R,θ)∈R33,其中 t ∈ R 3 t \in \mathbb{R}^3 t∈R3 和 R ∈ R 6 R \in \mathbb{R}^6 R∈R6 分别表示全局平移和方向, θ ∈ R 24 \theta \in \mathbb{R}^{24} θ∈R24 描述旋转关节的角度。物体通过其点云表示 O ∈ R 2048 × 3 O \in \mathbb{R}^{2048 \times 3} O∈R2048×3。我们将数据集分为 48 个已见物体和 10 个未见物体用于训练和测试。
指标
我们通过成功率、多样性和碰撞深度来评估模型。我们在IsaacGym中测试抓取是否成功,通过施加外力到物体上并测量物体的移动来确定。为了测量学习模型在训练数据中捕捉成功抓取姿势的多样性,我们报告位于不同方差水平的生成姿势的成功率。我们将碰撞深度测量为在每次成功抓取中,手部渗透物体的最大深度,以测试模型在物理正确抓取方面的表现。在所有情况下,我们忽略手的根变换,因为它不会对抓取类型的多样性产生影响。
结果
表3定量证明了SceneDiffuser在成功率方面生成了显著更好的抓取姿势,同时正确平衡了生成的多样性和抓取的成功率。这一结果表明,SceneDiffuser在生成姿势偏离训练数据的平均姿势时,依然能保持高成功率。我们还展示了通过在SceneDiffuser上应用优化,指导采样过程能够减少物理不合理抓取姿势的违规表现,超越了最先进的基线。
模型 | 成功率 (%) | 碰撞深度 (mm) | 2σ | 全部 |
---|---|---|---|---|
cVAE | 0.00 | 10.09 | 14.06 | 22.98 |
cVAE (使用测试时优化) | 0.00 | 21.91 | 17.97 | 15.19 |
我们的模型 (不使用优化) | 70.65 | 71.25 | 71.25 | 17.34 |
我们的模型 (使用优化) | 71.27 | 69.84 | 69.84 | 14.61 |
5.4 任务4:导航路径规划
设置
我们从 ScanNet 中选择了 61 个室内场景,以构建房间级场景用于导航路径规划,并对这些场景进行了导航图的注释。这些注释比以往方法更具空间密度和物理合理性。我们用一个圆柱体表示物理机器人,以模拟物理合理的轨迹。总共,我们收集了约 6000 条轨迹,通过在图上搜索随机选择的起始节点和目标节点之间的最短路径。我们在 46 个场景中使用轨迹进行训练,其余 15 个场景用于评估。模型的输入是场景点云 S ∈ R 32768 × 3 S \in \mathbb{R}^{32768 \times 3} S∈R32768×3、给定的起始位置 s 0 ^ ∈ R 2 \hat{s_0} \in \mathbb{R}^2 s0^∈R2 和目标位置 G ∈ R 2 G \in \mathbb{R}^2 G∈R2。
指标
我们通过检查“机器人”是否能够在规划的轨迹上从起点移动到目标点而不发生碰撞来评估规划结果。我们报告所有测试案例的平均成功率和规划步数。
结果
如表4所示,SceneDiffuser在BC和确定性规划基线的比较中表现优越。这些结果表明引导采样与规划目标的有效性,尤其考虑到所有测试场景在训练期间未见。值得注意的是,简单的启发式方法(如L2)经常导致路径规划中的死胡同,而SceneDiffuser能够正确结合对场景条件轨迹分布的过往知识和特定未见场景下的规划目标,从而帮助避免障碍和死胡同,成功到达目标。与基线模型相比,我们的模型在保持更高成功率的同时,还需要更少的规划步骤。这表明SceneDiffuser在长远任务中成功导航至目标而不发生偏离,而经典的基于RL的随机规划者(即BC的低性能)则存在问题。
任务 | 模型 | 成功率 (%) | 规划步骤 |
---|---|---|---|
路径规划 | BC | 0 | 150 |
确定性 (L2) | 13.50 | 137.98 | |
我们的模型 | 73.75 | 90.38 | |
手臂运动规划 | BC | 0.31 | 299.08 |
确定性 (L2) | 72.87 | 141.28 | |
我们的模型 | 78.59 | 147.60 |
5.5 任务5:机器人手臂的运动规划
设置
旨在生成杂乱场景中有效的机器人手臂运动轨迹,我们使用了具有七个旋转关节的 Franka Emika 手臂,并使用 MoveIt 2.0 收集了 200 个随机生成的杂乱场景下的 19800 条轨迹。我们用点云表示场景 S ∈ R 4096 × 3 S \in \mathbb{R}^{4096 \times 3} S∈R4096×3,用关节角度序列 R ∈ [ − π , π ] R \in [-\pi, \pi] R∈[−π,π] 表示机器人手臂轨迹。我们在 160 个场景上训练模型,并在 40 个未见场景上进行测试。
指标
与第5.4节类似,我们通过在未见场景上的成功率和平均规划步数评估生成的轨迹。我们认为,如果机器人手臂在有限的步骤内达到目标姿势在某个距离阈值之内,则该轨迹为成功。
结果
我们观察到与第5.4节中类似的整体性能。表4显示,SceneDiffuser持续优于基于RL的BC和确定性规划基线。SceneDiffuser的成功试验的规划步数与确定性规划者相当,显示了在长远场景中的规划效果。
5.6 消融分析
我们探讨了缩放系数 λ \lambda λ 如何影响人体姿势生成的结果。我们报告了在不同 λ \lambda λ 下采样结果的多样性和物理指标,范围从 0.1 到 100。如表 5 所示, λ \lambda λ 在生成碰撞/接触和多样性之间提供平衡。具体而言, λ = 1.0 \lambda = 1.0 λ=1.0 导致最佳的物理合理性,而较大的 λ \lambda λ 值则导致多样性结果。我们将这一效应归因于优化,较大的 λ \lambda λ 会使得优化偏离场景。
指标 | λ = 0.1 \lambda = 0.1 λ=0.1 | λ = 1.0 \lambda = 1.0 λ=1.0 | λ = 10.0 \lambda = 10.0 λ=10.0 | λ = 100.0 \lambda = 100.0 λ=100.0 |
---|---|---|---|---|
合理率 (%) | 28.75 | 52.5 | 21.25 | 0 |
平均成对距离 (APD)(平移) | 0.764 | 0.886 | 1.564 | 23.96 |
平均成对距离 (APD)(参数) | 3.206 | 3.243 | 9.040 | 573.6 |
非碰撞评分 (%) | 99.76 | 99.87 | 99.85 | 74.9 |
接触评分 (%) | 99.70 | 99.65 | 81.75 | 0.0 |
6. 结论
我们提出了SceneDiffuser作为一个通用的条件生成模型,用于3D场景中的生成、优化和规划。SceneDiffuser的设计具有场景感知、基于物理和目标导向等吸引人的特性。我们展示了SceneDiffuser在各种任务中显著优于以往模型,确立了其有效性和灵活性。
公式解析与代码说明
我们将逐个解析文中提到的公式,并结合其代码进行说明。以下是公式的详细解释及其在代码中的实现。
3.1 问题定义
公式
p ( p s i + 1 ∣ s i , a i ) p(p_{s_{i+1}} | s_i, a_i) p(psi+1∣si,ai)
- 解释:这个公式定义了状态转移的概率。它表示给定当前状态 s i s_i si 和动作 a i a_i ai 时,下一状态 p s i + 1 p_{s_{i+1}} psi+1 的概率。这个过程通常是确定性的,即给定的状态和动作将产生一个确定的下一个状态。
在代码中,这个状态转移可以通过一个动态模型函数实现,尽管代码中未直接给出。
3.2 轨迹优化中的规划
公式
τ ∗ = arg max τ J ( τ ∣ S , G ) \tau^* = \arg\max_\tau J(\tau | S, G) τ∗=argτmaxJ(τ∣S,G)
- 解释:这个公式定义了轨迹优化的目标,意图最大化任务目标 J J J。其中 τ \tau τ 是整个轨迹, S S S 是场景信息, G G G 是目标信息。这个公式寻求找到最佳轨迹。
在代码实现中,优化过程通常涉及遍历可能的轨迹,并使用梯度下降法或其他优化算法来调整轨迹,以使目标函数最大化。
3.3 扩散模型
公式
p ( τ t − 1 ∣ τ t , S ) = N ( τ t − 1 ; μ θ ( τ t , t , S ) , Σ θ ( τ t , t , S ) ) p(\tau_{t-1} | \tau_t, S) = N(\tau_{t-1}; \mu_\theta(\tau_t, t, S), \Sigma_\theta(\tau_t, t, S)) p(τt−1∣τt,S)=N(τt−1;μθ(τt,t,S),Σθ(τt,t,S))
- 解释:这个公式表示在给定当前状态 τ t \tau_t τt 和场景信息 S S S 的情况下,生成上一个状态 τ t − 1 \tau_{t-1} τt−1 的概率。这是通过一个高斯分布来实现的,其中均值 μ \mu μ 和协方差 Σ \Sigma Σ 由模型的参数生成。
在代码中,这可以通过以下方式实现:
def sample_previous_state(tau_t, t, S):
mu = mu_theta(tau_t, t, S) # 计算均值
sigma = sigma_theta(tau_t, t, S) # 计算协方差
return np.random.normal(mu, sigma) # 从高斯分布中采样
4. SceneDiffuser
公式
p ( τ 0 ∣ S , G ) = p θ ( τ 0 ∣ S ) p ϕ ( G ∣ τ 0 , S ) p(\tau_0 | S, G) = p_\theta(\tau_0 | S) p_\phi(G | \tau_0, S) p(τ0∣S,G)=pθ(τ0∣S)pϕ(G∣τ0,S)
- 解释:这个公式表示生成某个轨迹 τ 0 \tau_0 τ0 的概率,条件是给定场景 S S S 和目标 G G G。这两个部分分别代表了轨迹的生成和到达目标的条件概率。
在代码中,这个公式通常涉及到两个模型的调用,如下所示:
def compute_joint_distribution(tau_0, S, G):
p_tau_given_S = p_theta(tau_0, S) # 生成轨迹的概率
p_G_given_tau = p_phi(G, tau_0, S) # 达到目标的条件概率
return p_tau_given_S * p_G_given_tau # 计算联合概率
4.1 学习
公式
L θ ( τ 0 ∣ S ) = E t , ϵ , τ 0 [ ∥ ϵ − ϵ θ ( α t ^ τ 0 + 1 − α t ^ ϵ , t , S ) ∥ 2 ] L_\theta(\tau_0 | S) = \mathbb{E}_{t, \epsilon, \tau_0}\left[ \|\epsilon - \epsilon_\theta\left(\sqrt{\hat{\alpha_t}}\tau_0 + \sqrt{1 - \hat{\alpha_t}}\epsilon, t, S\right)\|^2 \right] Lθ(τ0∣S)=Et,ϵ,τ0[∥ϵ−ϵθ(αt^τ0+1−αt^ϵ,t,S)∥2]
- 解释:这个公式是模型的损失函数,表示生成的噪声 ϵ \epsilon ϵ 与预测噪声 ϵ θ \epsilon_\theta ϵθ 之间的均方误差。损失函数用于优化模型参数,以最小化生成的噪声与真实噪声之间的差距。
在代码中,这个损失函数的实现可能如下所示:
def compute_loss(tau_0, S):
expected_loss = 0
for t in range(T):
epsilon = np.random.normal(0, 1, size=tau_0.shape) # 生成噪声
predicted_epsilon = epsilon_theta(tau_0, t, S) # 计算预测噪声
expected_loss += np.mean((epsilon - predicted_epsilon) ** 2) # 均方误差
return expected_loss / T # 返回平均损失
4.2 采样
公式
p ( τ t − 1 ∣ τ t , S , G ) = N ( τ t − 1 ; μ + λ Σ g , Σ ) p(\tau_{t-1} | \tau_t, S, G) = N(\tau_{t-1}; \mu + \lambda \Sigma g, \Sigma) p(τt−1∣τt,S,G)=N(τt−1;μ+λΣg,Σ)
- 解释:这个公式表示在给定当前状态 τ t \tau_t τt、场景 S S S 和目标 G G G 的情况下,生成上一个状态 τ t − 1 \tau_{t-1} τt−1 的概率。这里的均值 μ \mu μ 经过调节以引入优化的目标,通过乘以一个缩放因子 λ \lambda λ 来增强指导。
在代码中的实现可能类似于:
def sample_previous_state_with_guidance(tau_t, S, G, lambda_value):
mu = mu_theta(tau_t, t, S)
sigma = sigma_theta(tau_t, t, S)
g = compute_guidance(tau_t, S, G) # 计算引导
return np.random.normal(mu + lambda_value * sigma * g, sigma)
5. 消融分析
公式
合理率 λ = 最佳物理合理性 \text{合理率} \; \lambda = \text{最佳物理合理性} 合理率λ=最佳物理合理性
- 解释:这里的分析主要是通过不同的 λ \lambda λ 值进行实验,观察其对生成结果的影响。合理率和 APD 等指标用于评估不同 λ \lambda λ 值下模型的表现。
在代码中,消融分析的实现可能如下:
for lambda_value in [0.1, 1.0, 10.0, 100.0]:
evaluate_model(lambda_value) # 评估模型在不同lambda下的表现
这篇论文提出了一种基于**扩散模型(diffusion models)*的方式来解决3D场景中的生成、优化和路径规划问题。它的思路与传统的A、Dijkstra等经典路径规划算法不同,而是采用了一种生成模型,结合场景信息来自动生成轨迹(路径)。为了解释得更清楚,我会从最基础的概念开始介绍,并给出简明的Markdown格式解释。
这个论文路径搜索是基于扩散模型的规划方法还是挺新颖的
传统的规划方法:A*算法
-
如何工作?
- A*算法将起点、终点以及路径上的点视为图的节点。
- 它通过“估计的代价”函数(启发式函数)来搜索出从起点到终点的最短路径。
- 搜索过程中,会逐步找到从起点到目标点的路径,保证其代价最小。
-
优缺点
- 优点:对于明确的环境,A* 算法能够找到最短路径,且计算效率高。
- 缺点:需要明确的代价函数,无法很好地处理复杂的动态环境。
这篇论文的方法:基于扩散模型的规划
这篇论文没有使用 A* 或者 Dijkstra 这种明确的图搜索算法,而是使用了一种 扩散模型。这种方法更像是通过“生成路径”的方式来找到最优轨迹。简单来说,模型会从目标点开始,逐步生成一条合理的路径。它的思路和传统的A*完全不同。
什么是扩散模型?
扩散模型是一种生成模型,它的工作原理是通过一系列的“去噪”步骤,从一个完全随机的噪声逐步生成一个符合目标的结果。它本质上是一个“采样”的过程。
- 前向过程:将数据(例如,路径)逐步加上噪声,直到变成完全的随机噪声。
- 反向过程:从随机噪声开始,逐步去噪,生成出符合目标的路径或结果。
论文的规划方法是如何工作的?
-
目标:给定一个3D场景,我们的目标是找到从起点到终点的一条路径,同时考虑场景中的物理约束(如障碍物)。
-
扩散模型生成路径:
- 扩散模型从一个随机轨迹开始,通过逐步的去噪过程,生成一条符合场景约束的合理路径。
- 在这个去噪过程中,它考虑了场景中的物体(障碍物),并且通过“引导”(guidance)将路径调整到目标点。
-
不同之处:
- 扩散模型不像A*那样需要搜索整个空间来找到最短路径,而是通过“采样”生成一条合理的路径。
- 它不仅可以生成路径,还能生成不同任务的轨迹(如机器人的手臂运动轨迹)。
模型的工作步骤
- 初始阶段:模型开始于一条随机生成的路径或轨迹。
- 引导采样:通过去噪步骤,逐渐生成更符合场景和物理约束的轨迹。
- 例如,确保路径不碰到障碍物,并尽量朝着目标点移动。
- 最终输出:经过多个去噪步骤后,输出的是一条可行且符合目标的路径。
为什么不用A*等传统方法?
- 传统路径规划:如A*依赖于明确的启发式函数,而且只能解决较简单的路径问题(如网格搜索、静态障碍物)。
- 扩散模型的优势:
- 能够处理复杂的3D场景,如动态障碍物或场景中的多种约束。
- 可以生成不仅仅是路径,还可以生成复杂任务的轨迹(如机器人抓取物体的手臂运动轨迹)。
- 不需要显式地搜索整个空间,而是通过采样生成合理的路径。
总结
这篇论文使用了扩散模型来解决路径规划问题,与A*这样的传统算法不同。它通过逐步生成合理的轨迹,处理复杂的3D场景和动态环境。其思路是通过“去噪”过程生成轨迹,而不是搜索最短路径。
传统方法(如A*)是通过搜索找到最优路径,而这篇论文的扩散模型方法是通过采样逐步生成合理路径。