cs.RO · v1 2025-05 · 本页依据 v3(2025-09-18)
Enhancing VLA Models with a Force-aware MoE for Contact-rich Manipulation
把末端 6 维外力当成与视觉、语言平级的输入:在 π0 的 VLM 之后加一层力感知 MoE 融合模块(FVLMoE),再把融合结果加到动作专家的 token 上。
OpenVLA、π0 这类 VLA 用预训练的视觉-语言模型理解场景和指令,然后输出动作。插插头、插 U 盘、擦白板、削黄瓜这类任务,成败取决于接触:有没有对准、压得够不够、是不是已经顶住了。
作者在引言里指出两个缺口:
论文的回答是:力应该作为“一等模态”进入 VLA,而且融合方式要能随上下文切换,于是有了 MoE 形式的融合模块。
每个时刻的观测是 Ot = {Vtb, Vth, st, ft}:
给定语言指令 L,策略 π(At | Ot, L) 输出一个动作块 At = {at, …, at+H−1}。动作是目标 TCP 位姿加夹爪宽度(§4.3)。
解读公式里只有当前一帧 ft,没有力的历史窗口。论文也没有给出力的采样率、归一化方式和控制频率。
点“下一步”按顺序看,或者直接点任意模块看它的形状和作用。维度都来自附录表 4;表注写明这些维度是 indicative(示意性的)。
解读第 4 点有个细节:G 取的是融合序列“末尾”的 Haction 个 token。力 token 在最末,一定被选中;其余是序列末尾的 VL token(π0 的前缀里语言在图像之后,所以大概率是语言 token)。论文没有给 Haction 的数值,也没讨论为什么按位置截取。
解读G 只依赖 EVL 和 ft,与去噪步 τ 无关,一次推理算一遍就能在所有去噪步复用。所以力信息的更新频率等于“整块重规划”的频率。
训练目标沿用 π0 的条件 flow matching:学习从噪声到动作块的速度场。论文没有提到任何额外的力相关损失,也没有提 MoE 常用的负载均衡损失。
推理见图 3 右侧的回路:生成动作块、执行、读取新的力 ft+1,再推理下一块。论文没说每块执行几步后重新推理。
附录 B · 训练配置
| 硬件 | 8× RTX 4090(24 GB)节点,64 核 CPU,251 GB 内存 |
|---|---|
| 优化器 | Adam,β₁ = 0.9,β₂ = 0.95;bf16;梯度裁剪 ‖∇‖ = 1.0 |
| 学习率 | 峰值 2.5×10⁻⁵,30,000 步内衰减到 2.5×10⁻⁶ |
| 多任务 | 2 卡数据并行,global batch 16,经梯度累积等效 2048;30,000 步约 12 小时 |
| 单任务 | 1 卡,10,000 步,约 9 小时 |
附录表 4 · 关键模块维度
| 层 | 参数 / 维度 |
|---|---|
| Force Projection | Linear; 6 (F/T) → DVLM = 2048 |
| State Projection | Linear; Dstate = 32 → Dact_e = 1024 |
| Action Projection | Linear; Daction = 32 → 1024 |
| Action-Time MLP | 2 层 MLP; 2×1024 → 1024; Swish |
| FVLMoE 输入 | NVL×2048 (V-L) 拼接 1×2048 (力 token) |
| Pre-MoE Encoder | Transformer encoder block; Dmodel = 2048, NH = 8, Dh = 256; MLP 扩张倍数 1 |
| MoE Layer | 稀疏 MoE; E = 4 个 MLP 专家 (2048 → 2048); top-k = 1; Router 2048 → 4 |
| Output Projection | Linear; 2048 → 1024 |
| Action Output Projection | Linear; 1024 → Daction = 32 |
解读状态和动作写的是 32 维,而 st 实际只有 7 维,应该是沿用 π0 把低维向量补零到 32 的惯例。论文没有说明是全参数微调还是冻结部分参数;用单张 24 GB 卡训练单任务,通常需要其中之一,这一点影响复现。
§4.3 · 附录 A · 硬件与数据
| 机械臂 | Flexiv Rizon 7 自由度,配大寰(Dahuan)自适应夹爪 |
|---|---|
| 相机 | 第三人称 RealSense D435(1280×720,30 FPS);腕部 RealSense D415(640×480,30 FPS) |
| 力 | TCP 上的估计外力/力矩,6 维,世界坐标系 |
| 采集 | Quest 3 VR 遥操作,自定义映射到末端控制;5 名操作员 |
| ForceVLA-Data | 244 条轨迹,约 14 万个同步时间步;按时间戳同步;图像缩放到 480×640;每任务约 50 条示范;示范之间变换物体位置和朝向 |
| 动作 | 目标 TCP 位姿 + 夹爪宽度 |
解读14 万步 ÷ 244 条 ≈ 每条 574 步,按 30 FPS 算约 19 秒。论文没有给控制频率,这个数只作量级参考。数据集和代码承诺开源,本页没有核实是否已经发布。
解读Flexiv Rizon 的每个关节都带力矩传感,外力估计很可能来自这里。论文只写了“estimated”,没写估计方法。
§5.1 · 任务与评测次数(† 取自 arXiv 源码里被注释掉的任务描述,正式版未收录)
| 任务 | 物理难点(§5.1) | 成功判据 | 评测次数 |
|---|---|---|---|
| Insert USB | 精确对准 + 受力控制的插入 | 拿起 U 盘竖直向下插入,完全插入到位† | 20 |
| Insert Plug | 同上 | 插头完全插入、与插座齐平†;插头一开始就放在插孔上方,以避开抓取† | 20 |
| Pump Bottle | 精确的竖直按压 | 泵头按到底、按不动为止† | 20 |
| Wipe Board | 平滑轨迹 + 持续贴面接触 | 两个指标:Wipe Board-1 完成擦拭动作;Wipe Board-2 完全擦净 | 10 |
| Peel Cucumber | 持续接触中施加并保持受控的力 | 累计削皮覆盖足够;另报平均削皮长度和最少刀数。每次试验 15 刀,每两刀之间人工转动黄瓜† | 15 |
§5.1 · 基线(都基于 π0,用相同的示范数据)
| 名称 | 说明 |
|---|---|
| π0-base w/o F | 标准 π0,不接力 |
| π0-base w/ F | 把力直接拼到状态输入上 |
| π0-fast w/o F / w/ F | π0-FAST(离散动作 token)的对应两个版本 |
| ForceVLA | π0 + FVLMoE |
点图例可以隐藏某个方法。斜线纹表示“接了力”。数值取自论文图 5 的柱顶标注(与源码中矢量图的文字一致)。
作者认为更长的削皮长度说明工具姿态更稳、能贴合曲面并保持接触。表 1 只比较了 π0-base 的两个版本和 ForceVLA。
五种设置(§5.3):
表 2 · 泛化成功率(%)· 粗体 = 该列最高,下划线 = 第二(照录论文标注)
选一种接法,看力在管线里的位置和对应成功率。论文没写这张表用的是哪个任务、几次试验。
解读表 3 的 45 / 60 / 80 分别和图 5 中 Insert Plug 列的 π0-base w/o F、π0-base w/ F、ForceVLA 完全一致,所以这张消融很可能是在插插头任务上、20 次试验做的。注意“linear before VLM”(55%)其实比不接力的基线(45%)还高,真正崩掉的是“MoE before VLM”(0%)。“VLM 之前不能放力”这个结论,严格说只对 MoE 那种接法成立。
做法:在测试数据上开环前向(不与环境交互),每个任务约 10 条 episode。每条按进度切成 100 段,算每段内 router 给出的 top-1 概率的均值,再对 episode 平均。
§5.5:插 U 盘第一次没对准时,ForceVLA 会重新调整朝向或重新抓取;基线会重复失败的动作或施加过大的力。插座不稳时,ForceVLA 保持柔顺控制、跟着插座位移调整插头,基线跟丢后失败。
论文表 3 正好测了这种做法。“linear before VLM”(力线性投影后在 VLM 之前送入)是 55%,“MoE before VLM”是 0%,都不如在 VLM 之后融合(80%)。作者的解释:改变预训练 VLM 的输入表示会扰乱它已经学好的特征分布,削弱它处理视觉和语言的能力。π0-fast 直接接力后大幅下降,作者也给了类似的解释。
解读55% 仍高于不接力的 45%,所以 VLM 前注入并非完全不可行。这个消融只有一个任务、每种配置约 20 次,60% 与 80% 的 95% 区间是重叠的(见 §06)。同一时期的 Tactile-VLA 恰好把触觉放进了 VLM 前缀,目标是借用 VLM 的语义做推理(见 §07)。
论文这就是基线 π0-base w/ F。主结果平均从 37.3 升到 40.2,涨得很少;表 3 里对应的“concate after VLM”是 60%,低于 FVLMoE 的 80%。作者的结论是:光有力数据不够,融合方式才是关键。
解读泛化实验里这种接法的平均分反而比不接力低(31.96 对 38.93)。
论文动机是力的需求随任务阶段变化,MoE 可以按上下文把 token 路由到不同专家;多任务和按模态处理也是 MoE 的强项(§1、§4.1)。证据是附录 C 的路由图。
解读论文没有“保留 encoder 层、去掉 MoE(或换成单个同宽 MLP)”的消融。所以 80% 对 60% 的提升里,多少来自 MoE 路由,多少来自新加的那层 2048 维 encoder(力 token 和 VL token 通过自注意力充分交互),目前拆不开。这是方法部分最关键的缺口。
论文公式里只有当前的 ft ∈ ℝ6,经线性层投成 1 个 token。闭环靠的是每次推理都读新的 ft+1(图 3)。
解读单帧能表达“现在有没有顶住”,但看不出“力在变大还是变小”。而且力只在每次整块推理时更新一次,块内执行是开环的。论文没给动作块长度、执行步数和推理频率,没法估算实际反应延迟。Motus2 的触觉专家正是冲着这个问题去的(见 §07)。
论文用的是 TCP 上的估计外力(estimated external wrench),表达在世界坐标系。局限部分承认估计值可能达不到高保真直接测量的精度,对触觉极敏感的场景尤其如此。
论文作者认为插插头和削黄瓜表现出明显的时间分工,擦白板则一直偏好同一个专家,并把 Expert 0 看作通用专家。
解读证据偏弱:一是统计混合了所有 token,二是开环,三是没有把路由和成败或者和力的大小关联起来。更有说服力的做法是只看力 token 的路由,并对照同一时刻的力曲线。
力与触觉专题现在收了七篇:ForceVLA、Tactile-VLA、T-Rex、N₀-VTLA、N₀-TWAM、Motus2、ME-Dex 1.0。ForceVLA 最早,要回答的问题也最基础:在已经预训练好的 VLA 上,力应该从哪里进、怎么融。后来的六篇给出了越来越多的答案。
七篇对照(ForceVLA 列来自本文;Tactile-VLA、ME-Dex 1.0、Motus2 三列只根据各自摘要与相关章节;T-Rex、N₀-VTLA、N₀-TWAM 三列来自对应的精读页)
| ForceVLA | Tactile-VLA | T-Rex | N₀-VTLA | N₀-TWAM | ME-Dex 1.0 | Motus2 | |
|---|---|---|---|---|---|---|---|
| 传感信号 | 估计的 6 维末端 wrench,单帧 | UMI 手持夹爪上的双高分辨率触觉传感器(法向 + 切向力),取 H 步历史 | Sharpa Wave 灵巧手 10 指:6 轴力 16 帧历史 + 当前力 + 形变深度图 | 自研视觉式触觉,当前帧减回合起始帧的差分图 | 视觉式触觉;预测用 Wan VAE 潜变量,观测用估计出的三轴力图 | 异构触觉(夹爪和灵巧手、多种布局),用 Canonical Hand Model 与 Unified Tactile AE 统一 | 灵巧手触觉,按短时间窗读取 |
| 进入模型的位置 | VLM 之后、动作专家之前;FVLMoE 输出加到动作 token 上 | Transformer 输入前缀里做 token 级融合(MLP 把触觉历史压成 1 个 token) | 独立触觉专家读主干 KV 缓存,只做去噪最后一段(τ 0.4 → 0),每块 4 次 | 预测器输出 10 个潜在触觉 token z,拼在动作 token 之前;不进 VLM 前缀 | 触觉专家每层共享注意力;当前触觉经零初始化交叉注意力进动作流 | MoT 中单独的 Tactile Expert,中间层共享注意力 | 轻量 Tactile Expert:骨干先去噪到 σc,每个子块执行前用最新触觉窗口完成 σc→0 |
| 是否预测力 / 触觉 | 否 | 输出力感知的动作,由混合位置-力控制器执行 | 否 | 训练初期是:Stage 1 预测未来 50 步的触觉净变化潜变量,之后撤掉该目标 | 是:未来触觉与未来视频一起生成,推理时也生成 | 是:未来触觉与视频、动作联合去噪 | 是:预测每个子块之后的力窗口 |
| 骨干 | π0(VLA) | VLA,flow matching 动作头 | Qwen3-VL-2B 三专家 MoT(latent / 动作 / 触觉) | π0.5(VLA) | 三专家世界动作模型,从 LingBot-VA 改造,7.16B | 世界动作触觉模型(Video / Tactile / Action 三专家) | 自进化通用世界模型(policy / simulator / evaluator 共享权重) |
| 数据 | VR 遥操作 244 条,操作员无力反馈 | 带触觉的 UMI 手持采集,操作员能直接感到接触 | 22,889 小时人类视频预训练 + 100 小时带触觉遥操作中训练 | NeoData 多平台视触觉数据预训练 + 每任务 SFT | NeoData 超 3 万小时、6 种本体、450 任务 | 仿真轨迹回放时补录力传感器数据(RoboTwin、DexJoCo)+ 真机 | 单目 → 双目第一视角人类数据 → 机器人域 |
| 评测 | 真机 5 个任务 + 5 种泛化设置 | 真机:触觉相关的指令跟随、常识、推理 | 双臂灵巧手真机 12 任务,每任务 16 次 | NeoReal 真机 9 任务 + UniVTAC、NeoSim 仿真 20 任务 | UniVTAC、NeoSim 仿真 + 8 个真机任务 | RoboTwin、DexJoCo、ManiFeel + 真机 | 仿生双臂双灵巧手平台 |
两篇都是在 π0 式 VLA 上接力或触觉。Tactile-VLA 在相关工作里把 ForceVLA 归为“modality-specific routing”一类,并强调自己的主要贡献是证明 VLM 的隐空间里已有对物理交互的语义理解,少量示范就能激活,做到接触任务的零样本泛化(比如区分“用力插”和“轻轻插”)。
接法上,ForceVLA 刻意让力绕开 VLM;Tactile-VLA 刻意把触觉放进 VLM 的输入前缀,好让语言推理(CoT 变体)能用上触觉。解读这两者不矛盾:ForceVLA 自己的表 3 里,VLM 前的线性注入(55%)仍好于不接力(45%),崩掉的只是 VLM 前的 MoE。两篇的目标也不同,ForceVLA 追求成功率,Tactile-VLA 追求把语言里的力度语义落到力控上。
数据上,Tactile-VLA 指出普通遥操作的操作员没有力反馈,采到的策略自然不会依赖触觉,所以自制了带触觉的 UMI 采集设备。ForceVLA 用的正是没有力反馈的 VR 遥操作。
ME-Dex 的图 1 把“VLA 生成动作,部分设计再把当前触觉作为条件”列为第一类做法,并指出这类方法不联合预测未来的触觉、视觉和动作。解读ForceVLA 正属于这一类。ME-Dex 的核心主张是触觉和视频一样是对世界状态的观测,应当作为未来观测一起建模。
名字相近的“专家”含义完全不同:ForceVLA 的专家是一层里 4 个 MLP,按 token 学出路由;ME-Dex 的专家是按模态划分的 Transformer(Video / Tactile / Action),通过共享注意力相连。
Motus2 的轻量触觉专家复用骨干的中间动作块和 KV 缓存:骨干只去噪一次到 σc,之后每个短子块执行前,用最新的触觉窗口完成最后一段去噪;同时用 flow matching 预测子块执行后的力窗口。ME-Dex 的相关工作也提到,Motus2 的注意力结构防止动作精修 token 看到加噪的未来力 token。
解读这正对应 ForceVLA 的一个空白:ForceVLA 的力只在每次整块推理时读一帧,块内开环。Motus2 把触觉更新拉到子块频率,而且不需要重跑整个骨干。
T-Rex 的主干(latent 专家和动作专家)完全不看触觉,触觉只进一个 0.62B 的独立专家,负责从 τ = 0.4 走到 0 的低噪声区间,而且一个 16 步动作块里用最新触觉重跑 4 次。它的基线里有一个“π0.5 + tactile”,把 10 指的 6 维力拼进状态输入,12 个任务平均从 π0.5 的 17 掉到 6。解读这和 ForceVLA 表 3 的方向一致:在 VLM 之前粗暴地融合力会伤到预训练表示,ForceVLA 的办法是挪到 VLM 之后,T-Rex 更进一步,挪到了去噪轨迹的末端。
两篇的力信号也相近:ForceVLA 是单帧 6 维末端 wrench,T-Rex 是每根手指的 6 轴 wrench(加一张形变图),并用 VQ-VAE 把 16 帧历史压成离散 token。
N₀-VTLA 的相关工作把 ForceVLA 列为“以测量或估计的力为条件”的力感知变体。它自己的论点是:当前触觉只记录已经发生的接触,策略会比自己的接触事件慢一步。所以它不把当前读数交给动作专家,而是先预测接下来 50 步里触觉会变多少(潜变量 z),再让动作专家读 z。两篇都不让触觉进入 VLM 前缀,区别在于动作专家拿到的是当前的力(ForceVLA)还是对接触变化的预测(N₀-VTLA)。
N₀-TWAM 的观测通路和 ForceVLA 的思路很像:当前触觉先转成三轴力图,编码后在动作头之前通过交叉注意力加到动作 token 上(输出投影零初始化)。它的相关工作把 ForceVLA 归为“把力反馈注入动作专家”的一类。去掉这条通路,NeoSim 从 49.4 掉到 29.6,UniVTAC 从 84.5 掉到 70.5。解读也就是说,即使模型已经在预测未来触觉,“把当前力直接给动作生成”这一步仍然有明显价值。
解读一条可以串起七篇的线:2025 年的两篇(ForceVLA、Tactile-VLA)解决“怎么把力/触觉接进预训练 VLA”,力是输入。2026 年分出两个方向:一是提高触觉的更新频率,T-Rex 在块内把去噪最后一段交给触觉专家,Motus2 沿用了这个机制;二是把触觉当成要预测的量,N₀-VTLA 在 VLA 里预测一个触觉变化潜变量,ME-Dex 和 N₀-TWAM 在世界动作模型里直接生成未来触觉,N₀-TWAM 还同时保留了当前力的注入。ForceVLA 的表 3 留下的经验(别粗暴改动预训练表示)在后面几篇里依然适用:它们都给触觉单独配了专家或通路,而不是把触觉塞进主干的输入。