SpatialVLA 论文
将 VLA 赋予三维空间理解,面临两个问题:1)不同机械构型的观测数据缺乏三维对齐性(摄像头传感器不同且安装位置不同 -> 得到的三维空间不同);2)异构机器人的自由度、运动控制等不同 -> 动作空间不同。SpatialVLA 通过 Ego3D 位置编码(基于自我中心相机坐标系)以及自适应动作网格统一各个机器人动作空间,通过自回归预测(chunk=4)。
Ego3D Position Encoding
先用 SigLIP 提取视觉-语言对齐的 2D 语义特征
X
∈
R
d
×
h
×
w
\boldsymbol{X} \in R^{d×h×w}
X∈Rd×h×w,然后采取 ZoeDepth 估计深度图 D,通过相机内参反投影
π
−
1
\pi^{-1}
π−1 得到像素在 egocentric 坐标系中的
P
∈
R
3
×
h
×
w
\boldsymbol{P} \in R^{3×h×w}
P∈R3×h×w,然后通过正弦函数与可学习的 MLP 得到最终位置编码:
O
3
d
=
X
+
P
′
=
X
+
M
L
P
(
γ
(
P
)
)
\boldsymbol{O}_{3d}=\boldsymbol{X}+\boldsymbol{P}^{'}=\boldsymbol{X}+MLP(\gamma(\boldsymbol{P}))
O3d=X+P′=X+MLP(γ(P))
Adaptive Action Grids
对于单臂机器人,定义动作空间:
a
=
{
a
t
r
a
n
s
,
a
r
o
t
,
a
g
r
i
p
}
a=\{a_{trans},a_{rot},a_{grip}\}
a={atrans,arot,agrip} 其中平移动作
a
t
r
a
n
s
=
{
x
,
y
,
z
}
=
{
ϕ
,
θ
,
r
}
a_{trans}=\{x,y,z\}=\{\phi,\theta,r\}
atrans={x,y,z}={ϕ,θ,r} (xyz -> 极坐标系),旋转动作
a
r
o
t
=
{
r
o
l
l
,
p
i
t
c
h
,
y
a
w
}
a_{rot}=\{roll,pitch,yaw\}
arot={roll,pitch,yaw},夹爪动作
a
g
r
i
p
a_{grip}
agrip 开合二值动作。
将连续动作空间离散化:
- 归一化:对于平移 { ϕ , θ , r } \{\phi,\theta,r\} {ϕ,θ,r} 和旋转 { r o l l , p i t c h , y a w } \{roll,pitch,yaw\} {roll,pitch,yaw},归一化至 [ − 1 , 1 ] [-1,1] [−1,1]。
- 高斯拟合:基于混合数据集统计动作分布,拟合高斯分布 N ( μ a , ∑ a ) \mathcal{N}(\mu^a,\sum^a) N(μa,∑a)
- 等概率划分:将连续动作 [ − 1 , 1 ] [-1,1] [−1,1] 分为 M 个区间并且确保都为 1/M 概率: a 2 , … … , a M = a r g m i n ∣ ∫ a i a i + 1 f ( x ) d x − 1 M ∣ , i = 1 , … … , M a_2, ……,a_M=argmin|\int_{a_i}^{a_{i+1}}f(x)dx-\frac{1}{M}|,\quad i=1,……,M a2,……,aM=argmin∣∫aiai+1f(x)dx−M1∣,i=1,……,M (高斯分布曲线下面积分为 M 份,每份面积相等)
方向优先:为
(
ϕ
,
θ
)
(\phi,\theta)
(ϕ,θ) 分配更多区间(5° 和 10° 的差别大于 0.1 米和 0.12 米的差别)
M
ϕ
,
M
θ
,
M
r
M_\phi,M_\theta,M_r
Mϕ,Mθ,Mr 为
(
ϕ
,
θ
,
r
)
(\phi,\theta,r)
(ϕ,θ,r) 的区间数,得到
M
t
r
a
n
s
=
M
ϕ
⋅
M
θ
⋅
M
r
M_{trans}=M_\phi · M_\theta · M_r
Mtrans=Mϕ⋅Mθ⋅Mr 和
M
r
o
t
=
M
r
o
l
l
⋅
M
y
a
w
⋅
M
p
i
t
c
h
M_{rot}=M_{roll} ·M_{yaw} ·M_{pitch}
Mrot=Mroll⋅Myaw⋅Mpitch
tokens:
V
=
M
t
r
a
n
s
+
M
y
a
w
+
2
V =M_{trans}+M_{yaw}+2
V=Mtrans+Myaw+2
采用大规模跨机器人预训练+特定机器人微调(如果动作空间不同,则重新初始化
E
a
E_a
Ea)。
对于新机器人(动作空间不同),(按照前文)从数据集中重新拟合动作分布,再得到新的动作网格。对每个新网格
G
i
n
e
w
G^{new}_i
Ginew 找到预训练网格中最邻近的 K 个网格,采取三线性插值初始化:
e
i
n
e
w
=
∑
j
=
1
K
w
j
e
j
,
w
j
=
1
/
d
j
∑
k
=
1
K
1
/
d
k
e_i^\mathrm{new}=\sum_{j=1}^Kw_je_j,\quad w_j=\frac{1/d_j}{\sum_{k=1}^K1/d_k}
einew=j=1∑Kwjej,wj=∑k=1K1/dk1/dj
其中
e
j
e_j
ej 为预训练网格
G
j
G_j
Gj 的嵌入向量,
d
j
d_j
dj 为新网格与预训练网格中心的欧氏距离。(继承预训练动作的语义和空间关系)
实验结果
思考
- 如果机器人为单轴运动,那么将 Action 建模成高斯分布是不合理的。
- SpatialVLA 的推理速度为 21 Hz,低于 DP,可结合 DP 与空间网格。
- 长时建模能力。