Triplet2Track:让机器人在长时序任务中知道“做到哪一步、接下来做什么”
让机器人把桌上的方块抓起来,和让它按照指定顺序完成十几个连续步骤,表面上只是任务变长了,实际却是两种完全不同的难度。
短时序操作通常有清晰目标:看见物体、接近物体、抓住物体,几秒钟内任务就结束。长时序操作则要求机器人在不断变化的场景中持续回答三个问题:我现在做到哪一步了?当前这一步是否真的完成了?场景被扰动之后,原来的计划还成立吗? 只要其中一个问题答错,后续动作即使执行得再精确,也只是在沿着错误方向继续前进。

例如,让机器人按“红—黄—蓝”的顺序堆叠方块。它不仅要会抓取和放置,还要记住当前已经堆到哪一层,确认上一个方块是否真正放稳,并选择正确的下一个方块。如果黄色方块没有成功放下,系统却误以为这一步已经结束,那么接下来抓蓝色方块只会让错误继续累积。再比如动态天平配重,每放入一个砝码,天平状态都会发生变化,下一步该拿哪个砝码必须根据最新观察重新判断,无法在任务开始时一次性规划到底。
Triplet2Track 提出了一套很清晰的分层思路:用离散的关系三元组负责规划,用连续的点轨迹负责执行,再让视觉关系检测器持续检查任务进度。 三元组把高层目标写成可以在画面里验证的对象关系,轨迹把离散关系变化翻译成低层策略能够利用的运动先验,而在线监控和重规划则把原本脆弱的开环流程变成闭环系统。
这套系统简称 TTS,也就是 Triplet-to-Track System。它并不试图用一个超大模型包办视觉理解、规划和控制,而是给三个层级各自安排明确职责,并设计可检查的接口把它们连在一起。最终,在多类真实机械臂长时序任务上,TTS 的平均成功率达到 74.8%,同时表现出跨物体与跨任务组合的泛化能力。
真正值得学习的,并不仅是“三元组”和“点轨迹”这两个表示,而是一种系统设计意识:长时序可靠性不是单次动作精度的自然延伸,它必须来自可验证的状态、受约束的决策、连续的执行接口以及及时的错误恢复。
一、长时序操作为什么容易失控
目前的机器人操作大致可以分成两条路线。第一条是端到端视觉—语言—动作模型,也就是常说的 VLA。模型直接接收图像和语言指令,输出机械臂动作。它的优势是接口简单,不必人为规定中间符号;当训练数据足够大时,也能够学到很强的通用操作能力。但在长时序、低数据和真实环境扰动同时存在时,这种方式会暴露两个问题。
首先是数据成本。长时序示范比短时序示范更难采集,一次完整示范可能包含十几个子目标,只要中间一步失败,整段数据就可能需要重录。任务顺序、物体组合和初始位置又会形成大量排列组合,很难靠真实机器人逐一覆盖。其次是过程不透明。模型把视觉理解、任务规划和动作控制压在同一个潜空间里,当机器人拿错物体时,我们很难判断它究竟是没认出目标、忘记了当前进度、规划顺序出错,还是低层抓取没有执行到位。无法定位错误,也就很难针对性恢复。
第二条路线是分层系统:高层大模型先把任务拆成若干子目标,低层策略再逐个执行。它比端到端方式更容易解释,也能利用大模型已有的常识,减少机器人数据需求。但常见分层方案的接口仍然很松散。高层可能输出“把红色方块放好”之类自由文本,低层却需要明确知道抓哪个实例、放到哪里、沿什么路径运动。文本语义正确,不代表已经与当前场景中的具体物体和空间状态绑定。
这就会产生三种典型断层。第一是规划与观察脱节:大模型说出了画面中不存在的物体或不成立的关系。第二是规划与控制脱节:高层给出离散语义,低层没有足够明确的连续运动指导。第三是计划与进度脱节:系统在开始时生成整套方案,执行过程中却不检查子目标是否真的完成,也不根据场景变化修改后续计划。
从人类无动作标签视频中学习,也存在类似矛盾。视频里包含丰富的物体关系和运动信息,却没有机械臂的末端位姿、关节角或夹爪宽度。以往方法大致有三种处理方式:用逆动力学产生伪动作标签、做自监督视觉预训练,或者生成未来视频与目标图像。逆动力学在连续控制和长时序中容易积累误差;视觉预训练增强了感知,却没有直接提供时序控制结构;视频生成表达能力强,但可能生成不真实的接触与几何,而且推理开销较大。
点轨迹是一种更轻量、更接近物理运动的选择。它不需要知道人手或机器人各个关节怎样变化,只描述画面中某些点接下来如何移动,因此可以跨越人和机器人的形态差异。但仅靠点轨迹仍然不够。轨迹擅长回答局部的“怎么动”,不擅长回答全局的“为什么现在要这样动”。如果缺少任务阶段与对象关系约束,低层执行容易变得短视,甚至在局部状态中来回循环。
TTS 因此没有在端到端与分层之间二选一,而是重新设计了规划和执行之间的接口。高层不再输出自由文本,而是输出与具体物体实例绑定的关系三元组;低层也不是只看语义标签,而是接收与这个三元组变化对应的连续点轨迹。整个任务被表示为:
当前关系三元组 → 目标关系三元组 → 连续点轨迹 → 机器人动作。 \text{当前关系三元组} \rightarrow \text{目标关系三元组} \rightarrow \text{连续点轨迹} \rightarrow \text{机器人动作}。 当前关系三元组→目标关系三元组→连续点轨迹→机器人动作。
规划目标可以从视觉中直接验证,运动过程可以用轨迹直接观察,动作失败后又能回到关系层重新定位。这样,长时序任务不再是一条不可拆解的动作序列,而是由一系列可检测、可执行、可恢复的关系变化组成。
二、核心方法:Triplet、Track 与 Action 闭环设计
为了说清这套系统,先从任务表示开始。真实环境中的长时序操作被写成一个带语言上下文的部分可观测马尔可夫决策过程:
M ℓ = ( S , A , P , Ω , O , ρ 0 ) 。 \mathcal M_{\ell}=(\mathcal S,\mathcal A,P,\Omega,\mathcal O,\rho_0)。 Mℓ=(S,A,P,Ω,O,ρ0)。
在时刻 t t t,真实状态 s t ∈ S s_t\in\mathcal S st∈S 通过观测模型 O ( o t ∣ s t ) \mathcal O(o_t\mid s_t) O(ot∣st) 产生视觉观测 o t o_t ot,机器人依据历史观测和语言指令 ℓ \ell ℓ 选择动作:
a t ∼ π ( ⋅ ∣ o 1 : t , ℓ ) , a_t\sim\pi(\cdot\mid o_{1:t},\ell), at∼π(⋅∣o1:t,ℓ),
环境再按照转移模型 P ( s t + 1 ∣ s t , a t ) P(s_{t+1}\mid s_t,a_t) P(st+1∣st,at) 演化。之所以强调“部分可观测”,是因为机器人看不到完整真实状态,只能从相机画面、机械臂状态和有限历史中推断任务进度。长时序可靠性的本质,就是让这种推断在多轮交互中持续保持一致。
TTS 使用两个互补空间。第一个是离散三元组空间:
C = I × R × I , \mathcal C=\mathcal I\times\mathcal R\times\mathcal I, C=I×R×I,
其中 I \mathcal I I 是具体物体实例集合, R \mathcal R R 是预先定义的关系词表。一个三元组写成:
c = ( x , r , y ) , c=(x,r,y), c=(x,r,y),
表示实例
x
x
x 与实例
y
y
y 当前满足关系
r
r
r。关系可以是 on、over、grasped 等空间关系或夹爪—物体关系。系统定义
h
o
l
d
(
o
t
,
c
)
∈
{
0
,
1
}
\mathrm{hold}(o_t,c)\in\{0,1\}
hold(ot,c)∈{0,1},用于判断当前视觉观测中三元组
c
c
c 是否成立。
第二个是连续轨迹空间 T \mathcal T T。一段轨迹写成:
τ = { z t , … , z t + L − 1 } , z i ∈ R d , \tau=\{z_t,\ldots,z_{t+L-1}\},\qquad z_i\in\mathbb R^d, τ={zt,…,zt+L−1},zi∈Rd,
它描述与具体实体对齐的连续运动。任务规划器根据当前观察、语言指令和当前三元组 c k c_k ck 提议下一个目标 c k + 1 c_{k+1} ck+1;轨迹预测器再把离散变化 c k → c k + 1 c_k\rightarrow c_{k+1} ck→ck+1 编译为连续轨迹 τ k \tau_k τk;低层策略最终依据观察、当前阶段和轨迹先验生成一段动作。

2.1 第一层:用实例级三元组把任务进度变成“可检查状态”
任务规划器包含两个模块:关系预测器,以及受时序图约束的下一三元组生成器。前者负责看懂当前场景中的关系,后者负责在可行范围内选择下一步。
关系预测并不像普通物体检测那么简单。检测出红色方块和黄色方块,只需判断它们是什么;关系预测还要判断哪个在上、哪个在下、夹爪是否抓住物体、物体是否位于容器内部。为此,系统没有让一个大型视觉语言模型每帧都自由生成关系,而是设计了快慢结合的级联系统。
快分支是轻量 Transformer 关系预测器 LTP。系统先用 Grounding-DINO 检测物体实例,再用 SAM2 获得实例掩码及解码器 token。LTP 由 4 层 Transformer 和 2 层线性层构成,直接读取成对实例的 SAM2 token,对每一个有序对象对 ( x , y ) (x,y) (x,y) 预测关系分数:
P t ∈ R n × n × ∣ R ∣ 。 P_t\in\mathbb R^{n\times n\times|\mathcal R|}。 Pt∈Rn×n×∣R∣。
这里 n n n 是当前帧检测到的实例数量, P t ( x , y , r ) P_t(x,y,r) Pt(x,y,r) 表示有序实例对 ( x , y ) (x,y) (x,y) 满足关系 r r r 的得分,最终关系为:
r ^ x y L T P ( t ) = arg max r ∈ R P t ( x , y , r ) 。 \hat r_{xy}^{\mathrm{LTP}}(t)= \arg\max_{r\in\mathcal R}P_t(x,y,r)。 r^xyLTP(t)=argr∈RmaxPt(x,y,r)。
LTP 足够轻量,可以高频运行,但逐帧预测容易抖动。真实长时序操作中,大部分关系在相邻帧之间不会改变;分类器却可能在某一帧突然把 over 判成 on,下一帧又恢复。这种短暂误判如果被当成子目标完成信号,就会让规划器提前切换任务。
系统对这种误差做了一个简单但很有意义的分析。设逐帧准确率为 p p p,相邻帧真实关系发生变化的概率为 ρ \rho ρ。如果真实关系不变但预测突然翻转,记为 FP;真实关系发生变化但预测保持不变,记为 FN。两帧情况下有:
E [ F P ] ≥ ( 1 − ρ ) 2 p ( 1 − p ) , \mathbb E[\mathrm{FP}]\ge(1-\rho)2p(1-p), E[FP]≥(1−ρ)2p(1−p),
E [ F N ] ≤ ρ ( 1 − p 2 ) 。 \mathbb E[\mathrm{FN}]\le\rho(1-p^2)。 E[FN]≤ρ(1−p2)。
当
ρ < 2 p 1 + 3 p \rho<\frac{2p}{1+3p} ρ<1+3p2p
时,短暂错误翻转会比漏检真实变化更常见。实际观察中 p p p 位于 0.80 到 0.90, ρ ≈ 0.02 \rho\approx0.02 ρ≈0.02,显然满足这一条件。因此,单纯追求每帧准确率并不是最合适的目标,系统更需要抑制“关系没变但预测乱跳”的假警报。
滑动窗口平均可以缓解抖动,却不能彻底解决。于是 TTS 加入慢分支:对 InternVL2.5 进行 LoRA 微调,把它作为高精度验证器。关键之处在于,大模型不会每一帧运行。LTP 高频监控,只有窗口中的最大概率关系发生变化、出现“疑似转移”时,才触发 VLM 验证。这样既保留轻量模型的响应速度,又利用大模型过滤假阳性。
VLM 分支也不生成任意文本。给定实例对 ( x , y ) (x,y) (x,y),系统在提示中加入二者的实例掩码,并把答案限制在该对象对允许的关系集合内。原本开放式视觉问答被转成受约束分类,显著减少了关系名称漂移和自由生成幻觉。LTP 与 VLM 的训练成本也受到控制:每项任务只使用 5 条序列;由于关系变化本身很稀疏,只需标注关系真正发生变化的时刻,而不必逐帧完整标注。
快慢级联得到的是当前场景关系,但“下一步选什么”仍需受到任务顺序约束。TTS 从无动作标签的人类视频中自动构造有向时序图:
G = ( V , E ) 。 G=(V,E)。 G=(V,E)。
图中每个节点都是任务相关三元组 c = ( x , r , y ) c=(x,r,y) c=(x,r,y),一条边表示人类示范中出现过的可行关系转移。系统对每帧生成关系表 R t R_t Rt;若相邻帧中观察到:
( x , r , y ) → ( x , r ′ , y ) , (x,r,y)\rightarrow(x,r',y), (x,r,y)→(x,r′,y),
就向图中加入对应有向边。多条示范的重复转移被合并,不同执行顺序则自然形成分支。这样,人类视频不需要机器人动作标签,仍然能提供任务阶段、顺序依赖和可行转移结构。

时序图同时扮演进度索引和可行性过滤器。假设当前节点为 c k c_k ck,其所有出边就是接下来允许选择的候选状态。把图写成邻接矩阵 A A A,当前节点所在行:
M k = A [ i k , : ] , i k = i n d e x ( c k ) \mathcal M_k=A[i_k,:],\qquad i_k=\mathrm{index}(c_k) Mk=A[ik,:],ik=index(ck)
形成下一步候选的二值掩码。零样本 VLM 规划器接收当前观察 o t o_t ot、语言指令 ℓ \ell ℓ、当前三元组 c k c_k ck 和掩码 M k \mathcal M_k Mk,只在图中相邻的合法节点里评分。图外提议会被直接忽略。
这一步把“请大模型自由想下一步”改造成“请在几个经由人类示范验证的候选里选择下一步”。大模型仍负责结合当前图像和指令做语义判断,但不能凭空添加物体、跳过依赖或创造未见过的关系变化。新增人类视频时,图也可以继续扩展,新的执行顺序会增加新分支,而不是要求人工重写完整状态机。
系统还维护一个 guard set,也就是已完成子目标对应的关系守卫。每当三元组 c = ( x , r , y ) c=(x,r,y) c=(x,r,y) 被确认完成,就记录或更新映射 ( x , y ) ↦ r (x,y)\mapsto r (x,y)↦r。执行期间,关系预测器持续检查这些守卫是否仍然成立,并给出 G k ∈ { 0 , 1 } G_k\in\{0,1\} Gk∈{0,1}。下一步选择规则为:
c k + 1 = { V L M p l a n n e r ( o t , ℓ , c k , M k ) , G k = 1 , c 0 , G k = 0 。 c_{k+1}= \begin{cases} \mathrm{VLM}_{\mathrm{planner}}(o_t,\ell,c_k,\mathcal M_k), & G_k=1,\\ c_0, & G_k=0。 \end{cases} ck+1={VLMplanner(ot,ℓ,ck,Mk),c0,Gk=1,Gk=0。
如果守卫均成立,系统在当前节点的合法邻域中继续规划;如果之前已完成的关系被扰动破坏,规划器就重新定位到初始节点 c 0 c_0 c0 并重新规划。这不是简单地“从头执行所有动作”,而是重新根据视觉关系确定当前任务状态,避免沿着已经失效的旧计划继续运行。
2.2 第二层:把离散关系变化翻译成连续点轨迹
三元组解决了“要把世界从什么关系变成什么关系”,却没有告诉机械臂“具体怎样移动”。例如 (方块, right-of, 盒子) 变成 (方块, in, 盒子),高层语义明确,但低层仍需要知道方块从哪里出发、如何移动到盒子内部。Track Predictor 就是规划与控制之间的编译器。

训练轨迹预测器时,系统先从人类视频中找出一次三元组转移及其对齐的视频片段。Grounding-DINO 与 SAM2 得到对象 x x x 和 y y y 的像素级掩码 M x , M y M_x,M_y Mx,My;再根据掩码包围框在实例内部播种查询点,用 CoTracker 跟踪这些点,生成与具体实体对齐的轨迹 V t : t + H V_{t:t+H} Vt:t+H。关系变化 r → r ′ r\rightarrow r' r→r′ 则通过文本编码器变成离散嵌入 e ( r → r ′ ) e(r\rightarrow r') e(r→r′)。 一个训练样本可以写成:
D x : y = { ( O t : t + H , M x , M y , V t : t + H , e ( r → r ′ ) ) } 。 \mathcal D_{x:y}=\{(O_{t:t+H},M_x,M_y,V_{t:t+H},e(r\rightarrow r'))\}。 Dx:y={(Ot:t+H,Mx,My,Vt:t+H,e(r→r′))}。
其中 ( M x , M y , e ( r → r ′ ) ) (M_x,M_y,e(r\rightarrow r')) (Mx,My,e(r→r′)) 被称为三元组转移先验。它同时告诉模型:画面中哪两个实例参与操作,以及它们之间要发生哪一种关系变化。
轨迹预测被建模为多模态掩码预测任务。输入包括当前视觉观察 o t o_t ot、查询点当前位置 v t v_t vt、两个实例掩码 M x , M y M_x,M_y Mx,My 和关系变化嵌入 e ( r → r ′ ) e(r\rightarrow r') e(r→r′),输出是各查询点下一时刻的位置 v t + 1 v_{t+1} vt+1,滚动后得到完整短时序轨迹。
两个实例掩码由专门的 mask encoder 编码为实例锚定 token,关系变化嵌入被投影到同一 token 空间,与视觉特征一起送入 Transformer。轨迹解码器最终输出连续点轨迹,使离散更新:
( x , r , y ) → ( x , r ′ , y ) (x,r,y)\rightarrow(x,r',y) (x,r,y)→(x,r′,y)
落到具体的运动上。
这里没有把对象和关系简单拼成一句文本提示,而是分别提供实例掩码与关系变化 token。通用文本只能表达“把物体放入盒子”,掩码却明确指出是哪一个物体、哪一个盒子以及它们在当前画面中的位置。这种显式空间条件给模型更强的归纳偏置,减少背景、颜色和外观变化造成的干扰,也解释了为什么轨迹先验能够从人类视频迁移,并支持同类抓取姿态下的跨物体与组合泛化。
为了提高训练稳定性,Track Predictor 还加入两个辅助任务。第一个是掩码图像块重建:遮住部分图像 patch,再用解码器从 Transformer 视觉特征中恢复,迫使骨干保留局部结构与场景信息。第二个是关系变化识别:结合主客体掩码解码特征以及中间文本解码 token,预测关系变化类别 δ r \delta r δr。主任务要求轨迹“走得对”,辅助分类则要求网络理解“为什么这样走”,共同加强关系变化与运动模式之间的绑定。
这也是 TTS 与纯轨迹方法的本质区别。纯轨迹先验主要从局部运动线索预测下一段路径,可能缺少全局任务阶段;Triplet2Track 预测的轨迹始终从一个明确的关系变化出发,因此每段局部运动都有可解释的任务语义。
2.3 第三层:用少量机器人动作把轨迹变成真实控制
人类视频负责学习任务结构与轨迹先验,但真实机械臂最终仍需要自己的动作空间。TTS 没有宣称完全不需要机器人数据,而是用少量带动作标签的机器人示范训练一个轨迹引导行为克隆策略。这样,昂贵的机器人数据主要用于学习“轨迹到动作”的映射,而物体变化、执行顺序与任务组合更多从人类视频中获得。
动作策略的训练样本表示为:
D t a c t = { O t : t + H , S t , A t , M x , M y , e } , \mathcal D_t^{\mathrm{act}}= \{O_{t:t+H},S_t,A_t,M_x,M_y,e\}, Dtact={Ot:t+H,St,At,Mx,My,e},
S t S_t St 是机器人关节和夹爪状态, A t A_t At 是动作标签,其中包含 7 维末端位姿与 1 维夹爪宽度。给定视觉片段、实例掩码和关系条件,Track Predictor 先生成短时序轨迹先验 p t : t + H p_{t:t+H} pt:t+H。低层策略将观察特征、三元组转移先验和轨迹先验融合,经带可学习 action token 的 Transformer 处理;得到的 action token 再与轨迹先验融合一次,最后由 MLP Action Head 输出当前动作 a t a_t at。训练使用针对真实动作 A t A_t At 的 L 2 L_2 L2 回归损失。
轨迹先验在动作生成前后被两次使用。第一次让 Transformer 在提取决策特征时了解局部运动趋势,第二次让动作头在解码末端位姿时再次对齐具体轨迹。这种设计让动作同时依赖高层关系上下文和局部物理运动,而不是只靠视觉外观记忆一个动作模板。
推理阶段采用滚动时域闭环。时刻 t t t,任务规划器先把 c k + 1 c_{k+1} ck+1 设为当前活动目标。系统基于两路相机观察和三元组转移 c k → c k + 1 c_k\rightarrow c_{k+1} ck→ck+1 预测短期轨迹,动作策略只输出当前一步动作;执行后获取新观察,再重复预测与控制。每执行 5 步,关系预测器检查活动三元组是否已经成立。若未完成,就继续当前子目标;若已完成,则由下一三元组生成器选择 c k + 2 c_{k+2} ck+2。如果发现 guard violation,则先重新定位任务状态并重规划。
因此,TTS 的闭环并不只存在于低层视觉伺服中,而是同时覆盖两个尺度:低层每步更新观察和动作,高层每 5 步验证关系与进度。局部轨迹偏差不会无限积累,高层状态错误也有机会被发现。Triplet、Track 和 Action 并不是三段串联后各管各的模块,而是一个带反馈的循环。
三、这套系统有什么用——可靠性、数据效率和泛化
TTS 首先解决的是长时序任务中的“可验证性”。自由文本子目标对人来说容易读懂,却不一定能由机器可靠判断完成与否。三元组则把判断缩小为一个清晰问题:具体实例 x x x 与具体实例 y y y 是否满足关系 r r r?只要关系预测器能够回答,任务进度就不再隐藏在大模型上下文或策略内部。
这种表示还能追踪错误来源。如果规划的三元组本身错误,问题位于任务规划层;如果三元组正确但点轨迹偏离目标,问题位于轨迹预测层;如果轨迹合理但机械臂抓取失败,问题位于动作策略或硬件执行层。可解释性在这里不是为了把模型“讲得好听”,而是直接服务于调试、验证和恢复。
第二个价值是抑制幻觉。让 VLM 自由生成下一步,看似灵活,却可能选择画面中不存在的物体、给出错误空间关系,或者在长序列中忘记前置依赖。时序图把人类示范中真实发生过的关系转移变成候选集合,VLM 只需在合法邻居中做选择。这类似给大模型铺了一条带护栏的路:它仍然决定走哪个分支,却不能突然跳到图外。
第三个价值是减少机器人数据。系统并没有把人类视频伪装成精确机器人动作,而是从中提取两类更容易跨形态迁移的信息:高层关系转移与对象点轨迹。机器人示范只需学习轨迹到自身控制空间的映射。这种任务分工让有限机器人数据集中在硬件相关部分,而把物体多样性、执行顺序和组合结构交给更容易获得的人类视频。
第四个价值是组合泛化。假如机器人训练时只看过“红—黄—蓝”的堆叠顺序,端到端策略可能把整个顺序记成动作模式;三元组系统则把它拆成若干实例关系变化。测试时改成“红—蓝—黄”,底层抓放技能没有变化,高层只需沿着另一条合法关系路径组织相同的局部动作。轨迹又以实例掩码和关系变化为条件,不强依赖某个固定外观,因此可以把已学运动迁移到新对象。
动态环境中,这种分层闭环更加重要。以天平配重为例,每放入一个砝码,系统都重新观察天平是否平衡,并依据最新状态选择下一步。若有人中途增加或取走青蛙玩具,旧计划立即失效;TTS 可以通过关系守卫发现状态不一致,再重新规划。对于多样化抓取放置,如果目标物体在抓取后被移走,系统也能够触发重新定位与重新抓取,而不是继续向一个已经不存在的目标位置运动。
当然,分层系统不是模块越多越好。真正重要的是每层接口能否被上下游同时理解。三元组对规划器来说是离散候选,对视觉模块来说是可检测谓词;点轨迹对人类视频来说可以自动提取,对机器人策略来说又是可消费的运动先验。正因为接口同时满足“能从数据中得到”和“能被下一层使用”,整条链路才不会变成多个模型的机械拼接。
四、真实机械臂表现、消融结论与仍然存在的边界
系统在真实 7 自由度 Franka 机械臂上测试,使用两台分辨率为 1280 × 720 1280\times720 1280×720 的 Intel RealSense D435i,相机分别提供第三人称视角和腕部视角。所有模型基于 PyTorch 与 CUDA 11.8 实现,在两张 NVIDIA A100 上训练。动作策略以 15 Hz 运行,每 5 个控制步执行一次关系检查。
实验包含三类长时序任务,每类任务分别考察系统的一种核心能力。

动态天平平衡(DSB) 要求机器人根据左盘中的青蛙玩具数量,把棕色、蓝色和红色砝码逐步放入右盘,直到天平平衡。所有任务实例都保证存在解,但训练时不会穷举全部平衡组合,只收集各砝码的基础抓取放置视频。低层学习轨迹到动作的映射,多步决策则留到测试时在线完成。这项任务最多包含 12 个子目标,主要检验场景状态不断变化时能否持续重规划。
顺序堆叠(SS) 要求按照指定顺序从下到上堆叠方块,例如“红—黄—蓝”。机器人训练数据只包含一种顺序,测试时则改成“红—蓝—黄”等未见组合。这项任务最多包含 11 个子目标,用来判断系统是否真正理解关系与顺序,还是只记住一条固定动作链。
多样化抓取放置(DPP) 包含两种指令形式:把苦瓜放入蓝色盒子、黄色土豆放入绿色盒子;或者把黄、红、粉色方块依次放入绿色盒子。测试时会把苦瓜换成玉米或红番茄等未进入机器人训练数据的新类别与属性,考察对象级泛化。该任务最长包含 9 个子目标。
如果物体集合和执行顺序都出现在机器人训练数据中,记为 Seen;否则记为 Unseen。Unseen 又包含两种情况:相同对象集合的新顺序属于组合泛化,更换物体类别或属性属于跨类别泛化。每类任务收集 30 条机器人示范和 50 条人类示范,机器人视频与人类视频分别使用少量轨迹标注。用于泛化的对象变化与执行顺序存在于人类示范中,却不出现在机器人示范里,这一设置直接检验了人类视频能否为机器人补充结构性知识。
比较对象包括三个代表性方向。FT-Pi0.5 是端到端 VLA 基线,直接从图像和语言预测动作,用来检验在低数据条件下大型动作模型能否处理灵巧控制与组合结构。SeeDo 代表基于人类视频的 QA 式分层规划,由 VLM 产生文本方案并通过代码策略执行。PALO 代表语义空间中的任务分解,由 VLM 递归地把任务嵌入拆成原子动作。为保证公平,TTS 的关系预测器只负责完成检测和守卫违规检测,不向这些零样本规划器额外提供当前帧之后的空间关系监督。
| 方法 | DSB Seen | DSB Perturbed | SS Seen | SS Unseen | DPP Seen | DPP Unseen | DPP Perturbed |
|---|---|---|---|---|---|---|---|
| FT-Pi0.5 | 13.3 | 0.0 | 25.0 | 0.0 | 40.0 | 16.7 | 40.0 |
| SeeDo | 26.7 | 0.0 | 41.7 | 40.0 | 50.0 | 54.5 | 0.0 |
| PALO | 14.3 | 0.0 | 16.7 | 18.2 | 42.9 | 36.4 | 0.0 |
| TTS | 78.6 | 60.0 | 83.3 | 66.7 | 84.6 | 70.0 | 80.0 |
TTS 在七种设置上的平均成功率为 74.8%,最好的对照方法 SeeDo 只有 30.4%。差距不仅来自更强的抓放动作,更来自长时序中错误不再持续累积。
在 DPP 中,SeeDo 与 PALO 的主要问题是自由目标生成缺少观察约束。物体交互后场景已经改变,规划器仍可能选择错误对象或产生不成立的空间关系。在 SS 中,常见失败是顺序逻辑错误与任务进度漂移,例如提前抓取当前阶段不需要的方块,或者没有遵守指定堆叠次序。在 DSB 中,下一步动作取决于每次放置后的最新物理状态,缺少在线规划的基线无法稳定应对;FT-Pi0.5 在任务级小数据适配下,还容易在外观相似的砝码之间犹豫或误选。
扰动测试进一步针对闭环可靠性。在 DSB 执行过程中,人为增加或移除青蛙形状的配重,同时确保任务仍可解;在 DPP 中,机器人抓住目标后立刻移走该目标,以触发重新定位和重新抓取。TTS 在两类扰动下仍分别取得 60.0% 和 80.0%,而 SeeDo 与 PALO 都降为 0。这里的提升并不是因为初始计划更长,而是因为系统会持续检查观察与计划是否一致。
规划器快慢分支的对比也很有价值:
| 关系预测方式 | Rollout 时间(秒)↓ | 整体准确率(%)↑ |
|---|---|---|
| 仅 LTP | 3.4 × 10 − 3 3.4\times10^{-3} 3.4×10−3 | 84.3 |
| 仅 VLM | 202.6 | 98.8 |
| LTP + VLM 级联 | 32.2 | 98.4 |
仅使用 LTP 极快,却只有 84.3% 准确率;每次都调用 VLM 能达到 98.8%,但完整 rollout 需要 202.6 秒;事件触发的 LTP+VLM 级联达到 98.4%,与全程 VLM 几乎相当,而时间降到 32.2 秒。它说明快慢系统的目标不是在单个指标上超过大模型,而是用轻量模型处理大多数稳定帧,把昂贵计算集中在真正可能发生状态变化的时刻。
模块消融则展示了三层结构各自承担的责任:
| 变体 | DPP(%) | SS(%) | DSB(%) |
|---|---|---|---|
| 移除 Track Predictor | 45.5 ± 7.4 45.5\pm7.4 45.5±7.4 | 46.1 ± 3.4 46.1\pm3.4 46.1±3.4 | 43.8 ± 9.4 43.8\pm9.4 43.8±9.4 |
| 移除 Temporal Graph | 57.1 ± 8.4 57.1\pm8.4 57.1±8.4 | 25.0 ± 0.0 25.0\pm0.0 25.0±0.0 | 0.0 ± 0.0 0.0\pm0.0 0.0±0.0 |
| 移除 Relation Predictor | 75.0 ± 0.0 75.0\pm0.0 75.0±0.0 | 37.5 ± 5.5 37.5\pm5.5 37.5±5.5 | 14.3 ± 0.0 14.3\pm0.0 14.3±0.0 |
| 移除 Task Planner,仅保留 ATM | 7.1 ± 2.0 7.1\pm2.0 7.1±2.0 | 0.0 ± 0.0 0.0\pm0.0 0.0±0.0 | 0.0 ± 0.0 0.0\pm0.0 0.0±0.0 |
| 仅 Action Policy | 0.0 ± 0.0 0.0\pm0.0 0.0±0.0 | 0.0 ± 0.0 0.0\pm0.0 0.0±0.0 | 0.0 ± 0.0 0.0\pm0.0 0.0±0.0 |
移除轨迹预测器后,离散目标与连续控制之间重新出现断层,三个任务家族都明显下降。移除时序图后,DPP 仍有一定表现,但 SS 降到 25.0%,DSB 直接变为 0,说明顺序依赖和动态决策尤其需要可行转移约束。移除关系预测器后,DPP 仍达到 75.0%,但 SS 与 DSB 大幅下降,表明静态目标理解相对容易,真正依赖在线进度检测的任务更需要关系反馈。完全去掉任务规划器,只保留 ATM 式轨迹先验,系统几乎无法维持长时序进度;仅有动作策略则在三类任务中全部失败。
这些结果共同说明,TTS 的效果不是某个单模块独立贡献的。三元组规划负责全局任务结构,时序图负责压缩合法决策空间,关系预测器负责视觉验证与异常检测,轨迹预测器负责把关系变化变成连续物理先验,动作策略则完成机器人相关的最后映射。少一层,系统都会在相应接口处暴露问题。
随着带动作标签的机器人示范从 0 增加到 40 条,整体性能会逐步提升;而在只有几十条动作示范时,TTS 已经获得合理表现。这支持了它的数据效率主张:人类视频不能完全代替机器人控制数据,但能承担任务结构和运动先验学习,从而降低对大规模机器人动作采集的依赖。

当前边界同样明确。第一,时序图只能处理图中已有的关系转移,若执行进入图外状态,现有重定位机制可能无法找到正确恢复路径。第二,整套闭环依赖实例检测、分割与关系预测,感知错误仍会沿着规划链传递。第三,三元组适合刚体对象和清晰空间关系,但布料折叠、绳索整理等可变形物体任务难以被简单的二元关系完整表达。后续需要更强的状态重定位、更丰富的物体表示以及对图外恢复的建模。
因此,Triplet2Track 并没有把长时序机器人操作归结为“换一个更强的大模型”,而是把可靠性拆成了几个可以分别验证的问题:高层目标是否绑定到具体实例,下一步是否来自可行转移,关系变化是否在视觉中真正发生,离散目标是否被翻译成连续运动,执行偏差是否能触发重新规划。
对任何复杂机器人系统来说,这种思想都值得借鉴。**真正可靠的智能,不只是能在理想条件下给出正确答案,还要知道自己的计划依赖什么、如何检查它是否成立,以及不成立时从哪里重新开始。**当任务从一次抓取扩展到十几个连续子目标,系统能否看懂“现在”,往往比它能否一次性想象完整“未来”更加重要。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)