蚂蚁灵波 LingBot-Touch 触觉模型:26 项真机任务成功率涨 24.8 个点

蚂蚁灵波把机器人手指上的触觉数据变成了一套可以跨硬件复用的表征,并且给出了完整的真机对照数据。11 月 10 日,这家公司开源了触觉基础模型 LingBot-Touch,技术报告与模型权重同步释出,Apache-2.0 协议。

一句话结论:只喂给策略 0.13% 到 0.16% 的额外参数,26 项真机灵巧手任务的平均成功率能提升 13.9 到 24.8 个百分点,而直接把传感器原始信号喂进去只能拿到一半不到的收益,甚至在 22 组对照里把成绩拉低。

这件事的分量在于,触觉一直卡在具身智能的最后一米。机器人能把物体拿起来、放下、摆齐,却经常分不清瓶盖是松了还是滑了。视觉能回答东西在哪里,回答不了指腹压得多重。这一步一直靠每款传感器各自的专用模型去补,于是每换一款硬件就要重做一遍适配。

LingBot-Touch 到底做了什么

LingBot-Touch 的定位是触觉基础模型,走的是 JEPA 路线,也就是在潜空间里做预测,而不是重建原始信号。整体结构是四层:按传感原理分设的模态 tokenizer、把手部几何统一到指尖规范空间的接口、一个共享的 Haptic Transformer 编码器,以及负责给出预测目标的 EMA 目标编码器。

共享 Transformer 用的是 5D RoPE 位置编码,把时间维、触点空间维和指序维一起编码进去。训练时遮蔽大部分触点,让模型在潜空间里预测被遮蔽部分对应的接触状态。

这里有个关键设计选择,直接影响后面所有数字。团队在同样的数据上对比了三个目标:重建信号的 VAE、重建信号的 MAE,以及在潜空间做预测的 LingBot-Touch。在 1K 小时数据下,VAE 的接触中心误差是 3.03 毫米,MAE 是 3.07 毫米,而 LingBot-Touch 是 0.90 毫米;检索召回率上,前两者分别是 4.4% 和 5.6%,LingBot-Touch 达到 32.1%。

更有意思的是数据变多之后的表现。喂到 4K 小时,VAE 在五个探针任务中有四个反而变差,接触中心误差从 3.03 涨到 4.08 毫米,召回率从 4.4% 掉到 3.1%。MAE 稍好,但召回率始终没超过 9%。原因很直白:触觉信号绝大多数时间是零,重建信号等于奖励模型去建模背景,而更多背景数据对这件事毫无帮助。潜空间预测的目标从来不是背景,所以它没这个问题。

4983 小时数据是怎么凑出来的

商用触觉传感器都还在早期阶段,压阻式、磁式、视触觉各有各的强项和短板,没有一种能撑起独立的数据闭环。LingBot-Touch 的做法是把不同原理的数据统一进一个规范指尖空间,然后混在一起训。

传感原理 采集平台 时长 片段数 触点/指 采样率
压阻式 Juqiao 触觉手套 2,197 小时 86,906 9 / 16 60–100 Hz
磁式 PaXini 触觉手套 1,136 小时 294,871 116 / 96 41.7–83.3 Hz
视触觉 Sharpa Wave 指尖 1,650 小时 82,654 240×240 30 Hz
合计 三类来源 4,983 小时 464,431 不统一 不统一

三个数字需要单独点出来。总时长 4,983 小时,总片段 464,431 段,总帧数约 13.3 亿。其中约三分之二的数据来自人戴的触觉手套,而不是最终部署在机器人指尖的传感器。

这背后是一个反直觉的判断。触觉数据极难采集,每一小时都需要有一只带传感器的手真的去触摸世界,而且不同传感器的数据无法直接合并。与其死磕单款传感器攒够几千小时,不如用采集最容易的传感器去换时间,再把时间花在最终要部署的那只手上。强度和动态这两类信息在不同传感原理之间是可以迁移的,付出的代价是空间精度。

预训练语料的构成里,手套数据占了 3,333 小时,指尖数据只有 1,650 小时。磁式那一栏甚至来自人手采集的 PaXini 手套,而真正部署时用的 XHand1 磁触觉传感器型号根本不在预训练清单里。这个「没见过也能用」正是整套设计要证明的事。

26 项真机任务的对照数据

评测用了两只手:Sharpa Wave 跑 20 项任务,XHand1 跑 6 项任务,每项任务 20 次试验。策略侧选了一个模仿学习基线 Diffusion Policy 和三个 VLA 策略 π0.5、LingBot-VLA、T-Rex,每种策略跑三套配置:原始模型、直接拼原始触觉信号、拼 LingBot-Touch 的冻结 token。

策略 原始模型 加原始触觉 加 LingBot-Touch 净提升
Diffusion Policy 21.6% 28.6% 35.6% +13.9 pp
π0.5 48.1% 54.7% 69.9% +21.8 pp
LingBot-VLA 48.3% 56.5% 73.1% +24.8 pp
T-Rex 45.4% 56.6% 68.6% +23.2 pp

三列数据的含义很容易被误读。第二列是不给触觉的原始策略,第三列是把传感器原始信号直接喂进去,第四列才是本文方案。第三列的增量只有 7.0、6.6、8.2、11.2 个百分点,不到第四列的一半,而且在 104 组策略与任务的组合里有 22 组是倒退的。

倒退的幅度并不温和。LingBot-VLA 在麻将牌分拣任务上从 28.8% 掉到 5.0%,在鸡蛋转移任务上从 65.0% 掉到 28.8%;π0.5 在拉链闭合任务上从 39.0% 掉到 15.0%。给策略 200 条演示,它学不会怎么读一个稀疏的高维传感器,硬塞进去只会分散它对已有信号的注意力。冻结 token 是带着含义进来的,不需要重新学。

换个角度看得更清楚。在模型从未见过的 XHand1 上,原始触觉信号几乎是废的,四种策略的均值变化分别只有 +4.6、-1.7、0.0、+2.0 个百分点;而同一份信号经 LingBot-Touch 编码后,平均带来 16.3、24.5、17.8、13.8 个百分点的提升。传感器本身有多难读不重要,统一表征把这份难度抹掉了。

单任务里提升最猛的都是视觉看不清的那一步。拉链拉头是否到位,LingBot-VLA 从 11% 到 55%;喷头是否已经压到位,从 42.5% 到 87.5%;卡片是否已经脱出,T-Rex 从 32% 到 92%;瓶盖是否已经转松,从 56% 到 90%。这些位置恰恰是手指与物体互相遮挡的地方。

在 Sharpa Wave 的 20 项任务上,四个策略用 LingBot-Touch 后的均值分别是 35.51%、68.58%、72.51% 和 70.05%,其中 LingBot-VLA 的表现细节可参考 蚂蚁灵波 LingBot 全栈 2.0 一文。整体上,104 组组合里有 89 组 LingBot-Touch 拿了最好成绩,99 组不低于原始策略,另有 9 组输给原始触觉配置、5 组输给原始策略。方法不万能,但方向明确。

仿真强化学习里的表现

12 项仿真任务用的是 PPO,三个随机种子,比较无触觉、二值接触指示、原始信号、随策略一起训练的触觉 CNN,以及冻结的 LingBot-Touch 特征。

观测方式 12 项任务平均成功率
无触觉 21.4%
二值接触 30.3%
原始信号 38.5%
触觉 CNN 45.6%
LingBot-Touch 69.0%

这个排序本身就是结论。学出来的表征胜不过预训练表征,而预训练表征又胜不过信号本身。其中最悬殊的两项是转盘和转笔,转盘 97.4% 对次优的 82.9%,转笔 97.1% 对 64.2%。Sharpa Wave 的平衡球任务是 67.7% 对 32.4%,XHand1 上是 35.9% 对 10.0%,二值接触和完全无触觉在这两个任务上都是 0 分。

稳定性同样值得看。LingBot-Touch 的跨种子标准差不超过 9.2 个百分点,平均 3.9;其他方案在转笔任务上能到 55,在转盘上到 40,意味着有的种子能解出来有的永远解不出来。预训练表征把接触状态分开之后,探索负担降下来了,策略收敛更快也更一致。

数据越多越好,但不是线性

同一套 LingBot-VLA 策略,触觉编码器的预训练时长从 1K 增加到 5K 小时,策略在五项 Sharpa Wave 任务上的成功率依次是 69.8%、74.3%、77.4%、81.4%、82.2%,纯策略是 55.9%。曲线还在往上走,没有饱和迹象。

消融实验给出了几个具体结论。空间遮蔽率取 80% 最优,对比默认的 90%,力值误差从 2.28 降到 1.69 牛顿,检索召回率从 14.4% 升到 35.4%。时序遮蔽要覆盖整个片段而不是局部段落,否则预测器会从相邻时间步把被遮住的触点抄回来。clip 长度 32 帧、每个 token 2 到 4 帧效果最好,单帧 token 和 8 帧 tubelet 都明显更差。EMA 动量从 0.999 递增到 1.0 优于任何常数动量,而 0.998 的固定值几乎塌掉,力值误差超过 7 牛顿,召回率只有 1%。

作为横向对照,把同一策略里的 LingBot-Touch 换成 FTP-1 的触觉编码器,成功率只有 67.5%,不到一半的收益,FTP-1 在叠杯分离上从 95% 掉到 85%,擦盘子从 74% 掉到 67%。表征质量的差距会原样传导到策略上。

怎么跑起来

权重在 Hugging Face 和魔搭社区都有,仓库 robbyant/lingbot-touch 提供代码,Apache-2.0。模型分 Tiny 和 Small 两档,这次 26 项真机测试全部使用约 530 万参数的 Tiny 版本,也就是 HaT-Tiny 编码器。

依赖环境是 Linux 加 Python 3.12.13 加 PyTorch 2.11,NVIDIA 驱动走 cu130 轮子,numpy 固定在 2.4.4。安装方式是 pip install 本地仓库目录,装完 pip check 校验一次。推理脚本默认跑 CPU,有兼容显卡就把 –device cpu 换成 –device cuda:0。

三种传感原理通过 modality 参数选择,分别对应 magnetic、piezoresistive 和 visuotactile。数据要先对齐成规范的指尖坐标再归一化,官方给了一个现成的几何变换公式,形如 p_canonical 等于原始坐标旋转平移缩放之后的结果。 Sharpa 的示例数据自带正确坐标,XHand 的适配器内置了固定目标坐标和手部映射,只有全新原始触点布局才需要自己标定。

采样点数也有讲究。磁式支持 96、76、64、48、32、24 六个档,压阻式是 61、16、9 三档(61 点布局下拇指是 124 点),视触觉是 200、96、32 三档。官方建议重采样到与目标传感器分辨率和几何相容的档位,表征质量还能再提一截。

官方在文档里反复强调一点:读出方式推荐用注意力查询,也就是用可学习或任务条件的 query 去 cross-attention 全部输出 token,而不是逐 token 线性投影或直接取均值最大。JEPA 编码后的每个 token 已经融入了其他触点和时间步的信息,按地址挑 token 或者池化,并不能把某个手指某个时刻的信息单独隔离出来。

这类具身模型正在从「一个大脑打天下」走向分模块精修,蚂蚁灵波把视觉、深度、触觉、地图、视频生成分别做成独立基座再叠 VLA 的路线,可以对照 百度 ApolloWorld 世界模型 和 逐际动力 FluxVLA V2 看看差异。

需要打的折扣

几个限制写在报告里,不影响结论方向,但影响适用范围。电容式传感器目前完全不在预训练范围内,团队说是拿到的电容数据没达到质量要求。规范几何和预训练布局只覆盖指尖,手掌和手指中段的接触被明显低估,从指尖扩展到整只手是下一步。真实机器人和仿真实验只在两款手形态上做过。

还有一点值得留个心眼。这套结论建立在「冻结预训练编码器、只在后训练时接入」的用法上,效果好不等于可以替代传感器研发。真正的瓶颈仍然在硬件端,某一款传感器如果自己就有几千小时的专属数据,它未必需要共享表征来接。

常见问题

LingBot-Touch 是什么?它是蚂蚁灵波在 11 月 10 日开源的触觉基础模型,用 4,983 小时跨三种传感原理的数据训练,通过统一指尖空间把压阻式、磁式、视触觉的信号映射成同一套触觉 token,可直接接入 VLA 或强化学习策略,权重与代码以 Apache-2.0 协议释出。

它和直接用传感器原始信号有什么区别?在 26 项真机任务上,原始信号给四个策略带来的平均增益是 7.0 到 11.2 个百分点,且在 104 组对照中有 22 组出现倒退;换成 LingBot-Touch 的 token 后,增益是 13.9 到 24.8 个百分点,89 组拿到最好成绩。在从未见过的 XHand1 上差距更明显,原始信号几乎无效,token 仍有 13.8 到 24.5 个百分点的提升。

普通人能用起来吗,需要什么硬件?最低门槛是 Linux 加 Python 3.12.13 加 PyTorch 2.11,CPU 即可跑通推理,权重从 Hugging Face 或魔搭下载,输入按 magnetic、piezoresistive、visuotactile 三种模态之一组织并做几何归一化。想复现真机效果则需要 Sharpa Wave 或 XHand1 这类灵巧手,以及大量遥操作采集的演示数据,这是团队原论文里 200 到 500 条每任务的量级。

小结

触觉这条路线长期受制于数据孤岛,每款传感器各自为战,每换一次硬件就重做一次适配。LingBot-Touch 给出的答案是把传感器物理特性从输入端剥离,只保留接触本身的物理规律,再用跨原理的大语料把表征撑起来。4983 小时的数据换来的是 26 项任务上平均 20 个百分点左右的成功率提升,代价只有千分之一点几的参数量。

从这个角度看,值得关注的并不是某个具体的分数,而是表征和数据的分工方式。视觉领域被反复验证过的那条路径,数据在哪里不重要,重要的是数据能不能汇聚到同一套表示上。触觉刚刚走到这一步。