论文专题讲解:SpatialVLA:3D 空间表征接入 VLA

论文专题讲解:SpatialVLA:3D 空间表征接入 VLA

Charles Lv8
论文信息

论文题名: SpatialVLA: Exploring Spatial Representations for Visual-Language-Action Model。

作者: Delin Qu、Haoming Song、Qizhi Chen、Yuanqi Yao、Xinyi Ye、Yan Ding、Zhigang Wang、JiaYuan Gu、Bin Zhao、Dong Wang 等(共 11 人)。

机构: Shanghai AI Laboratory,、Fudan University,、Shanghai Jiao Tong University,、Zhejiang University,。

时间 / 主题: 2025-01;具身智能 / VLA。

arXiv / 官方报告: arXiv:2501.15830;官方材料:spatialvla.github.io/

GitHub / 项目: GitHub:github.com/SpatialVLA/SpatialVLA;项目页:spatialvla.github.io/

元数据来源与核验口径: 来源:arXivGitHub API / repo官方 / 项目材料;Checked Date:2026-06-15;Repro Status:Paper / official materials reviewed, independent reproduction not claimed。

原论文故事线

研究背景

SpatialVLA 讨论的是 VLA 模型里的 3D 空间理解问题。很多 VLA 把 2D 图像 token、语言 token 和动作 token 接起来,依靠大规模机器人数据学习从视觉到动作的映射。但机器人操作发生在 3D 物理世界中:物体深度、相机视角、末端位移、抓取方向和空间关系都不是 2D 像素坐标能直接表达的。

跨机器人泛化进一步放大了这个问题。不同机器人相机位置、内参、外参和动作空间都不同,同一物体在图像中的位置不能直接对应同一 3D 位置,同一连续动作数值也不一定代表同一空间运动。SpatialVLA 的背景就是:要让 VLA 成为 generalist robot policy,必须显式处理输入侧 3D 空间和输出侧空间动作表示。

问题(Challenge)

论文要解决的问题是:如何为 VLA 注入可泛化、可迁移的 3D spatial representations。 难点有两层。输入侧,模型要从 RGB 观测中知道每个视觉 token 对应的 3D 位置,但又不能依赖所有机器人都共享统一世界坐标。输出侧,连续动作如果按每维均匀分桶,可能不符合真实动作分布,也会产生过多 action tokens,降低推理速度。

这个问题有价值,是因为空间理解是机器人 manipulation 的底座。没有 3D 位置,模型很难准确处理遮挡、距离、抓取和放置;没有可迁移动作 token,不同机器人数据难以共享。SpatialVLA 要证明显式空间输入和自适应动作网格能同时提升泛化和适配效率。

Finding

作者的 finding 是:VLA 的空间能力需要在观测和动作两端同时显式化:用 egocentric 3D position encoding 表示视觉 token 的空间位置,用 adaptive action grids 表示机器人空间运动。 这个洞见把“只让 VLM 从 2D 图像里隐式学空间”翻转成“给模型一个机器人可用的 3D 接口”。

这个 finding 能解决挑战,是因为 egocentric camera frame 避免了跨机器人全局坐标不一致的问题,仍能告诉模型像素在相机坐标中的深度和方向;adaptive action grids 则根据动作分布自适应离散化,让常见空间动作得到更合适 token 表示,并能在新机器人 setup 上通过 re-discretization 适配。

方法

SpatialVLA 基于 VLM backbone,输入多视角或单视角图像和语言指令,输出未来动作序列。Ego3D Position Encoding 使用深度估计和相机内参把每个像素反投影到 egocentric camera coordinate system,再通过 sinusoidal encoding 和 MLP 投到视觉 token 维度,与 2D visual features 相加。这样视觉 token 同时包含语义和 3D 位置。

动作侧使用 Adaptive Action Grids。模型根据机器人动作数据分布构建自适应离散网格,把 translation、rotation、gripper 等动作编码成空间 action tokens。训练包括 pre-training 和 post-training:先在 1.1M real-world robot episodes 上预训练 generalist manipulation policy,再通过 action grids re-discretization 适配新仿真或真实机器人 setup。

结论

实验覆盖 24 个真实机器人任务和 3 个仿真环境,包括 zero-shot in-distribution robot control、新机器人 setup fine-tuning、需要空间理解的任务、视角/纹理/光照变化、unseen objects 和空间布局变化。论文报告 SpatialVLA 在多个设置中超过 OpenVLA、TraceVLA、RT-2-X、OCTO、Diffusion Policy 等基线,并且由于 spatial action tokens 更少,推理速度显著提升。

消融支持 Ego3D Position Encoding 和 Adaptive Action Grids 的贡献:前者提升 3D scene spatial understanding,后者改善跨机器人动作迁移和 post-training 效率。边界是,空间表征收益仍依赖深度估计、相机内参和动作分布拟合;它没有证明长时安全恢复、强接触力控或所有 embodiment 都已解决。

关键术语

  • Ego3D Position Encoding(自我中心三维位置编码):在相机坐标系中为每个视觉 token 加入 3D 位置表示。
  • Adaptive Action Grids(自适应动作网格):根据动作分布自适应离散化连续机器人动作的 tokenization 方法。
  • Egocentric Coordinate System(自我中心坐标系):以当前相机或机器人自身为参考的坐标系,避免跨平台全局坐标不一致。
  • Cross-Embodiment Control(跨具身控制):同一模型迁移到不同机器人形态、相机设置或动作空间。
  • Post-Training(后训练):在预训练模型基础上针对新机器人或新任务进行适配。
  • Spatial Action Tokens(空间动作 token):表示空间位移和姿态变化的离散动作 token。

SpatialVLA 适合放在具身智能专题里的原因很明确:它不是单纯把 VLM 做大,而是问 VLA 最根本的空间问题:不同机器人相机安装不同、动作空间不同,模型怎样学到可迁移的 3D 空间动作知识?

先想一个最小场景:同一个杯子在腕部相机里占据画面中心,在第三人称相机里可能只在右下角;同样一句“把杯子推到盘子旁边”,对不同机器人也对应不同的末端位移、旋转和夹爪动作。RGB 像素位置不是 3D 位置,连续动作数值也不是跨机器人共享的语言。SpatialVLA 的核心就是把这两个不对齐的接口补上:输入侧告诉模型每个视觉 token 大概在相机坐标系里的 3D 位置,输出侧把连续动作改写成和数据分布对齐的空间 action tokens。

所以这篇文章不是在讲“加一个深度图会更好”这么简单。它真正回答的是:VLA 何时需要显式几何,动作 token 为什么不能只按每一维均匀切桶,以及空间表示的收益要靠哪些真实/仿真闭环结果来证明。

论文位置

很多 VLA 方法把图像 token、语言 token 和动作 token 接起来,但 RGB 图像本身是 2D 投影。对抓取、放置、插入、避障来说,模型需要知道物体在 3D 空间里在哪里,动作又要把末端执行器带到哪里。

SpatialVLA 的方案是两边一起改:

  1. 输入侧加入 Ego3D Position Encoding
  2. 输出侧用 Adaptive Action Grids 把连续动作离散成空间 action tokens。

SpatialVLA model{ width=“490” .atlas-figure-compact }

Figure source: SpatialVLA, Figure 1. 原论文图意:SpatialVLA 在视觉语言模型上加入 Ego3D position encoding 和 adaptive action grids,把 3D 空间上下文和动作 token 接入 VLA。

SpatialVLA 总图先看输入几何和输出动作网格。
输入输出:输入是视觉语言观测、空间表征和动作网格,输出是 VLA 控制动作。
效率机制:把 3D 空间先验显式接入动作预测,降低纯图像 token 学空间关系的负担。
对主线意义:它连接 VLA 动作接口和具身几何状态。
不能证明什么:空间表征收益不能证明跨机器人平台或长时安全任务通用。

Ego3D Position Encoding

Ego3D 的直觉是:不要先追求全局世界坐标一致,而是在每个相机自己的 egocentric coordinate system 里恢复 3D 位置。这样可以减轻不同机器人相机外参不一致的问题。

流程可以写成:

1
2
3
4
5
6
RGB image
-> depth estimation
-> back-project with camera intrinsics
-> per-pixel 3D positions in egocentric camera frame
-> sinusoidal encoding + MLP
-> add to 2D visual tokens

论文使用 ZoeDepth 估计 depth,再用相机内参反投影得到像素的 3D position。注意这里仍然需要 intrinsics,但不依赖跨机器人统一的 camera extrinsics。这一点和具身智能里的相机标定章节正好衔接:内参用于像素到相机坐标反投影,外参则在跨机器人泛化时往往难以统一。

更具体地说,如果像素坐标是 (u,v)(u,v),深度估计为 d(u,v)d(u,v),相机内参为 KK,那么每个像素可被反投影到相机坐标系:

xu,vego=d(u,v)K1[u,v,1]\mathbf{x}_{u,v}^{\mathrm{ego}} = d(u,v) K^{-1}[u,v,1]^\top

这里 xu,vego\mathbf{x}_{u,v}^{\mathrm{ego}} 是相机自身坐标系中的 3D 点;K1[u,v,1]K^{-1}[u,v,1]^\top 给出从相机中心穿过该像素的射线方向;d(u,v)d(u,v) 决定沿射线走多远。SpatialVLA 再把这个 3D 位置做 sinusoidal encoding,经 MLP 投到和视觉 token 同维度的 embedding,并与 SigLIP 视觉 token 相加:

zu,v=vu,v+MLP(γ(xu,vego))\mathbf{z}_{u,v} = \mathbf{v}_{u,v} + \mathrm{MLP}(\gamma(\mathbf{x}_{u,v}^{\mathrm{ego}}))

这条公式的关键不是数学复杂,而是接口清楚:vu,v\mathbf{v}_{u,v} 负责 2D 语义,例如杯子、盘子、抽屉;γ(xu,vego)\gamma(\mathbf{x}_{u,v}^{\mathrm{ego}}) 负责相机坐标里的距离、方位和高度。模型不用猜“哪个像素更近、哪个物体在前方”,这些几何关系已经被写进 token。

为什么不用全局世界坐标。
跨机器人数据里,第三人称相机、腕部相机、外参标定和工作空间都不统一。若强行把所有观测拉到一个全局坐标系,标定误差和平台差异会先污染输入。Ego3D 的保守选择是只使用相机内参和单目深度,把空间关系表达在每个相机自己的坐标系里;它降低了跨 embodiment 对齐成本,但也意味着模型仍依赖深度估计质量和当前视角可见性。

Adaptive Action Grids

动作侧,SpatialVLA 不直接预测连续 Δx,Δy,Δz,ΔR\Delta x,\Delta y,\Delta z,\Delta R,而是根据数据集中动作分布,把 translation / rotation movement 离散成 adaptive spatial grids。

SpatialVLA adaptive action grids

Figure source: SpatialVLA, Figure 2. 原论文图意:Adaptive action grids 先统计 translation 和 rotation action movement 的分布,再根据 Gaussian fitting 对每个动作变量划分等概率区间,形成空间动作 token。

Design Why it matters
Normalize action variables to [-1, 1] 消除不同机器人动作尺度差异
Fit Gaussian distribution over action movement 让网格跟真实动作分布对齐
Split grids with equal probability 高频动作区域更细,低频区域更粗
Generate only 3 tokens per step 比 RT-1 / RT-2 / OpenVLA 常见 7-token 动作更轻
Re-discretize for new robots 方便 post-training 适配新 embodiment

这条路线的关键不是“离散化一定比连续动作好”,而是让动作 token 与物理空间统计对齐,减少跨 embodiment 动作空间错位。

论文把单臂动作拆成 translation、rotation 和 gripper 三块。translation 不是直接对 (x,y,z)(x,y,z) 每一维均匀切桶,而是先把平移运动转成近似“方向 + 距离”的空间网格;rotation 也用同样的分布自适应思想;gripper 仍是开/合离散 token。一个动作步最终只需要预测 3 个空间动作 token:

at=(attrans,atrot,atgripper)a_t = (a_t^{\mathrm{trans}}, a_t^{\mathrm{rot}}, a_t^{\mathrm{gripper}})

设某个动作变量归一化后为 x[1,1]x\in[-1,1],论文会在数据集上拟合高斯分布 p(x)p(x),再把区间切成 MM 个等概率桶:

bi1bip(x)dx=1M\int_{b_{i-1}}^{b_i} p(x)\,dx = \frac{1}{M}

这和普通 uniform bins 的区别非常大:高频小动作附近会得到更细的分辨率,罕见大动作区域会更粗。对机器人控制来说,这很合理,因为真实策略的大量动作是小幅调整,少量动作才是大范围移动。如果把所有区间均匀切开,模型会浪费很多 token 容量在低频区域。

Post-training:为什么要重新离散化

SpatialVLA 的 post-training 不是只做 LoRA 或全参微调。新机器人或新任务的数据分布往往改变动作尺度和方向统计,所以论文会在新数据上重新拟合高斯分布,生成新的 action grids。新网格 token 的 embedding 不是随机初始化,而是从预训练网格附近的 token 通过 trilinear interpolation 得到:

ej=iN(j)wijei\mathbf{e}'_j = \sum_{i\in \mathcal{N}(j)} w_{ij}\mathbf{e}_i

其中 ej\mathbf{e}'_j 是新网格第 jj 个 token 的初始 embedding,N(j)\mathcal{N}(j) 是它在旧网格里的邻近 token,wijw_{ij} 由网格中心距离归一化得到。读法很简单:新机器人说“我的小幅向前动作长这样”,模型就把旧机器人上相近空间动作的知识搬过来,再用少量数据继续调。

训练数据和评测设置

论文先在约 1.1M real-world robot dataset 上预训练,数据混合由 OXE 和 RH20T 子集组成,并参考 OpenVLA 的 mixture weight 做修改。

SpatialVLA experiment setup{ width=“690” .atlas-figure-compact }

Figure source: SpatialVLA, Figure 3. 原论文图意:评测覆盖 7 robot learning scenarios、24 real-robot tasks 和 3 simulation environments,关注 zero-shot control、new setup adaptation 和 spatial understanding。

论文附录还给出了 dataset mixture 可视化:

SpatialVLA dataset mixture

Figure source: SpatialVLA, Figure 8. 原论文图意:展示 SpatialVLA 训练数据混合的来源分布。

训练和部署条件也值得读细一点:SpatialVLA 使用 Paligemma2 系列 VLM 作为底座,在 64 A100 GPUs 上预训练约 10 days,batch size 为 2048。输入侧只条件于一个第三人称相机和一张当前图像来构造 Ego3D 表征;输出侧预测未来 action chunk,论文描述为 12 个 spatial action tokens,再执行 ensemble 后进入下一次预测。部署时,论文报告单张 RTX 40908.5GB 显存、约 20Hz,这使它更像实时控制策略,而不是离线规划器。

实验口径。
zero-shot 在这里不是开放世界任意任务,而是预训练数据分布附近的机器人/任务设置上直接部署;fine-tuning 则是在 Fractal、BridgeData V2、LIBERO 或 Franka 目标数据上继续适配。读结果时要区分 SimplerEnv、真实 WidowX、LIBERO 仿真和真实 Franka,它们不是同一种 closed-loop 证据。

实验结论

SpatialVLA 的评测不是只看一个 benchmark,而是分三类:

  1. zero-shot control:SimplerEnv 和 real-world WidowX;
  2. new setup adaptation:LIBERO 和 Franka 新设置;
  3. spatial understanding:需要空间关系理解的真实任务和 LIBERO-Spatial。

Table III from the paper can be redrawn as follows, keeping the original English fields:

Method LIBERO-Spatial SR ↑ LIBERO-Spatial Rank ↓ LIBERO-Object SR ↑ LIBERO-Object Rank ↓ LIBERO-Goal SR ↑ LIBERO-Goal Rank ↓ LIBERO-Long SR ↑ LIBERO-Long Rank ↓ Average SR ↑ Average Rank ↓
Diffusion Policy from scratch 78.3 ± 1.1% 5 92.5 ± 0.7% 1 68.3 ± 1.2% 5 50.5 ± 1.3% 5 72.4 ± 0.7% 5
Octo fine-tuned 78.9 ± 1.0% 4 85.7 ± 0.9% 4 84.6 ± 0.9% 1 51.1 ± 1.3% 4 75.1 ± 0.6% 3
OpenVLA fine-tuned 84.7 ± 0.9% 2 88.4 ± 0.8% 3 79.2 ± 1.0% 2 53.7 ± 1.3% 3 76.5 ± 0.6% 2
TraceVLA fine-tuned 84.6 ± 0.2% 3 85.2 ± 0.4% 5 75.1 ± 0.3% 4 54.1 ± 1.0% 2 74.8 ± 0.5% 4
SpatialVLA fine-tuned 88.2 ± 0.5% 1 89.9 ± 0.7% 2 78.6 ± 0.6% 3 55.5 ± 1.0% 1 78.1 ± 0.7% 1

表源:SpatialVLA,Table III。原表含义:LIBERO Simulation Benchmark Results,汇报四个 task suites 的 success rate 和 rank,并对三次随机种子、500 trials 求均值。关键点是 SpatialVLA 的平均成功率最高,尤其在 LIBERO-Spatial 和 LIBERO-Long 上排名第一;这比单纯“加深度”更具体地说明 3D spatial encoding 对空间关系和长链任务都有帮助。

SpatialVLA spatial understanding

Figure source: SpatialVLA, Figure 6. 原论文图意:展示 SpatialVLA 在空间提示和复杂空间布局任务上的评测,说明 Ego3D position encoding 对 spatial understanding 有帮助。

这组空间实验怎么读。
Figure 6 不是普通成功率展示,而是在问模型是否真的利用了几何关系。Franka 任务要求理解 closest to robot 这类空间提示;WidowX 任务加入高度、位置和动态扰动;LIBERO-Spatial 则系统改变物体布局。SpatialVLA 在 Franka 空间提示任务达到约 73%,LIBERO-Spatial 达到 88.2%,而缺少深度/3D 输入的策略在复杂空间变化下更容易低于 50%。这支撑的是“3D 表征能改善空间布局泛化”,不是“所有机器人几何问题都解决”。

论文里几个关键结论:

Question Reported takeaway
Does 3D spatial input help? Ego3D improves spatial prompt following and object-layout tasks
Does adaptive action tokenization help? Spatial action grids improve transfer and action representation
Can it adapt to new robots? Re-discretizing spatial grids helps new robot setup adaptation
Is LoRA useful? In small-data LIBERO tasks, LoRA fine-tuning outperforms full fine-tuning

消融实验:真正支撑方法的三根钉子

附录提到的训练消融很实用:pre-training ablations 在 Google Fractal + BridgeData V2 mixture 上从 scratch 训练,使用 8 A100 GPUsbatch size 128120K steps。这些消融不是装饰,它们分别验证动作 token、网格分辨率和 3D encoding。

Ablation 论文中最有用的读数 结论
linear 256 bins vs adaptive grids Google Robot 上 variant aggregation / visual matching 大幅下降,论文报告 adaptive grids 分别带来约 +36.5% / +42.1% 提升 动作空间不能只按 RT 系列的逐维均匀 token 化;空间动作统计本身是知识
uniform distribution vs fitted Gaussian uniform grid 在多个任务上弱于数据分布初始化 等概率桶让 token 容量集中到高频动作区域,比平均铺开更适合模仿学习
grid resolution 8194 resolution 比 1026 resolution 在 Move Near、Put Eggplant 等任务上明显更稳 分辨率太低会让模型倾向小动作、慢动作;太高则要付出 token/样本效率成本
w/o Ego3D variant aggregation 从 81.6%/79.2% 降到 68.9%/66.7% 3D 位置编码主要提升场景变化、纹理/光照变化和相机姿态变化下的稳健性
spatial embedding adaptation LIBERO 四个 suite 相对 LoRA 继续提升约 +4.6%+5.1%+2.2%+5.4% 新机器人小数据适配时,重离散化动作网格比只调语言/视觉参数更贴近控制问题

这里最有意思的反直觉点是:linear 256 bins 有时能得到更低的 L1 loss,但 closed-loop 成功率更差。这提醒我们,动作误差的平均距离不等于任务成功;一个物理动作 token 是否落在可执行、可迁移的空间动作簇里,往往比连续误差小一点更重要。

对具身智能的启发

SpatialVLA 提醒我们:VLA 的泛化问题不只是语言模型大小问题。跨机器人泛化至少有三层错位:

  1. 观测错位:相机位置、视角、内外参不同;
  2. 动作错位:自由度、控制器、工作空间不同;
  3. 数据错位:任务分布、采集协议和动作统计不同。

Ego3D 和 adaptive action grids 分别处理前两层。它不是最终答案,但给后续 VLA 设计一个明确方向:把 3D 空间和动作坐标系当成模型接口的一部分,而不是后处理细节。

局限

SpatialVLA 仍然依赖深度估计质量。单目深度在透明、反光、低纹理或尺度异常物体上会偏;长时任务也不是它的主要强项。论文里 LIBERO-Long 表现仍受限,说明空间表示能补几何,但不能自动解决长时记忆和任务规划。

阅读结论

SpatialVLA 的复用点在显式空间动作接口:方法要抓空间网格、动作 token 和数据混合;实验要看 spatial understanding、真实任务设置和不同动作表示消融。它适合补 VLA 的几何短板,但不能替代深度传感、控制器和碰撞检查。

外部精读

  1. SpatialVLA arXiv:读 Ego3D position encoding、adaptive action grids 和 LIBERO / real-robot ablation。
  2. SpatialVLA project page:看任务视频和实验设置,尤其区分 zero-shot、fine-tuning、simulation 与真实机器人证据。
  3. SpatialVLA GitHub:确认代码、权重和动作网格实现接口。
  4. OpenVLA:作为通用 VLA 底座对照,理解 SpatialVLA 为什么要补显式 3D 空间表征。
  5. Open X-Embodiment / RT-X:理解跨机器人数据混合、动作标准化和 embodiment 差异为什么会让空间接口变重要。
  6. ZoeDepth:SpatialVLA 的 Ego3D 依赖单目深度估计,读它能理解深度误差会怎样进入 VLA 输入。
  7. State of VLA Research at ICLR 2026ICLR Blogposts: Spatial Awareness in VLMs:作为讲法参考,学习如何把 VLA、spatial awareness 和 benchmark 边界讲成问题链;具体实验 claim 仍回到对应论文。

相关阅读与下一步

  • Title: 论文专题讲解:SpatialVLA:3D 空间表征接入 VLA
  • Author: Charles
  • Created at : 2025-09-19 09:00:00
  • Updated at : 2025-09-19 09:00:00
  • Link: https://charles2530.github.io/2025/09/19/ai-files-paper-deep-dives-embodied-ai-spatialvla/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments