Token卷到触觉了!机器人终于有了通用手感

  金磊发自凹非寺

  量子位 | 公众号 QbitAI

  太反差了。

  明明给机器人装上了触觉,它咋就变得更笨了呢……

  △图片由 AI 生成

  事情是这样的。

  最近有个团队做了个实验,他们在 Sharpa Wave 灵巧手的五个手指上都装上了触觉传感器,任务是让它把一个袋子的拉链拉上。

  他们选用的动作模型是π0.5,在只靠摄像头的情况下,成功率来到了 39%。

  然后团队再把指尖传感器的读数原封不动地喂给它,按理来说,机器人多了一种感官,应当是拉拉链会更得心应手一些。

  但您猜怎么着。

  AUV(哎呦喂)……成功率直接掉到了 15%!

  而且这还不是个例。

  同样是 Sharpa Wave 灵巧手和π0.5 这个组合,接上原始触觉后去做交接盒子的任务,成功率从 57% 掉到 48%。

  即便是把灵巧手换成 XHand,6 项任务平均下来,成功率也从 49.71% 降到了 48%。

  那么机器人多了一种感官,反倒变得笨手笨脚的原因到底是什么?

  答案是,问题出在了读数这件事儿上。

  因为触觉数据和其它数据还不太一样,机器人的手指大部分时间是不接触物体的,所以读数差不多就是一大片“0”;即使开始接触物体,信号也是稀疏且带噪声的那种。

  加之不同的传感器还各司其职,视触觉负责拍指尖软胶的形变,磁触觉负责测磁场,压阻式触觉负责记电阻……数据,不尽相同。

  △三类触觉传感器怎么感知接触,各有什么取舍

  例如对于捏住一个瓶盖这个任务来说,三种传感器能给出的是三种完全不一样的数字,动作模型看不懂不说,还得硬用……可以说在帮倒忙了。

  那此局又该怎么破呢?

  蚂蚁灵波给出了一种解法——在传感器和动作模型中间加一个“翻译”。

  (注:上面的实验便是蚂蚁灵波做的。)

  简单来说,就是先把各种传感器读到的数据,翻译成动作模型能看懂的那种,例如手指碰在哪儿、用了多大劲、力往哪边偏、有没有打滑,然后再交给它。

  还是那个π0.5,还是那个拉拉链的任务,如此操作下来,成功率便直接飙升到了 59%,甚至比完全不用触觉还高 20 个百分点;交接盒子这个任务的成功率,也从 48% 回到了 63%。

  而这个“翻译”,便是蚂蚁灵波今天最新开源的触觉预训练基础模型 LingBot-Touch。

  在它的加持之下,刚才我们提到的拧瓶盖的动作,就变得非常丝滑了:

  视频地址:https://mp.weixin.qq.com/s/b7PNN5A3W8e1bZDVNTd5tg

  要知道,拧瓶盖很容易翻车的地方,恰恰在指腹和瓶盖贴在一起的那一小块:捏得稍微松一点,指腹就会在盖面上打滑,手腕转了半圈,盖子却纹丝不动。而这一幕,正是摄像头看不清的。

  那么,LingBot-Touch 这个“翻译”,究竟是怎么做到的?

  灵巧手需要一个翻译

  我们先来把 LingBot-Touch 干的活儿给讲清楚。

  简单来说,它负责接收磁触觉、视触觉、压阻式触觉这三类传感器的信号,再把它们统一编码成一种触觉 Token,从中读出接触位置、受力大小,以及力的方向是怎么随时间变化的。

  它的位置刚好卡在中间,往下能接上不同的传感器和灵巧手,往上则把这些 Token 交给不同的动作模型。

  如此一来,不管各家传感器的信号如何五花八门,到了动作模型这里,都能被统一理解,可谓殊途同归。

  △LingBot-Touch 连接多种触觉传感器与真实灵巧操作

  而且 LingBot-Touch 的轻量版 LingBot-Touch-Tiny 只有约 532 万参数,目前技术报告、代码和模型权重也都已经开源。

  那么,LingBot-Touch 又是怎么练成的呢?

  整体来看,蚂蚁灵波团队主要分了三步走。

  第一步是统一坐标。

  团队遇到的第一个难题,是不同传感器的触点数量和排布差别实在太大。比如有的灵巧手光是拇指上就铺了 116 个触点,有的布料手套却只有一个3×3 的小阵列。

  如果按编号硬对,那肯定是对不上的。

  为此,团队先把所有传感器的触点都映射到同一个标准化的指尖空间里,再给每个 Token 发一个“地址”,这个地址由时间、手指和三维位置共同组成。

  地址会通过旋转位置编码(RoPE)进入模型。这样一来,模型就不再要求固定的触点数量,即便换一种布局,也照样能读。

  在此基础上,三类传感器各自有一个轻量的入口,负责把原始读数转成 Token;入口后面,则共用同一个触觉 Transformer 主干。

  也就是说,传感器之间的差异交给各自的入口去消化,接触本身的规律,则放到主干里一起学。

  △LingBot-Touch 整体架构,三类传感器分入口、共用一个主干

  第二步是在特征空间里做预测。

  坐标统一之后,团队又碰上了第二个坑,也就是开头我们提到的那一大片“0”。

  如果让模型去还原原始读数,它很快就会找到一条捷径,只要把“没碰到”的背景学好,损失就能降得很低。可这样一来,分数虽然好看,真正有用的接触信息却没学到多少。

  所以 LingBot-Touch 选择了JEPA 路线。

  具体来说,训练时模型会随机遮住90%的触点,而且整段时间都遮着;然后,模型要根据剩下 10% 的变化,在特征空间里预测被遮住部分的表征,无需逐点还原读数。

  如此操作之下,效果可谓是立竿见影,同样用 1000 小时数据训练,LingBot-Touch 判断接触中心的误差是 0.90 毫米,而 VAE 和 MAE 都在 3 毫米以上。

  再比如,用一段触觉去找对应的视频画面,LingBot-Touch 的前 5 召回率是 32.07%,另外两种方法则都不到6%。

  △同样的数据,特征空间预测与还原原始读数的效果对比

  第三步是扩充数据,防止模型死记硬背。

  LingBot-Touch 的预训练数据一共有4983 小时、约13. 3 亿帧。其中三分之二来自人戴着触觉手套干活,剩下三分之一来自遥操作 Sharpa Wave 双臂机器人。

  之所以大量用手套,是因为它不需要机器人,一个人一天就能在普通环境里录上好几个小时。而且这些数据只标注了开、关、装配、倒水这类任务类别,没有一帧标过力的大小。

  △预训练数据的构成,覆盖三类传感原理

  不过,数据攒够了,团队还得防着模型“偷懒”。

  因为预训练里只有三种传感器布局,模型很可能直接把这三套触点位置背下来,等碰到第四种布局就抓瞎了。

  所以在训练时,团队会随机改变触点的采样密度,再把每个触点的位置小幅挪一挪,逼着模型去学接触本身的规律。

  在这三步走完之后,就该上真机检验了。

  测试覆盖了两款灵巧手,其中高自由度的 Sharpa Wave 做20 项任务,低自由度的 XHand 做 6 项,一共26 项。

  参与测试的动作模型有四种,分别是 Diffusion Policy、π0.5、LingBot-VLA 和T-Rex。每种模型都要在不用触觉、直接喂原始信号、接入 LingBot-Touch 这三种设置下分别测试。

  结果,在两款手上,四种模型都是接入 LingBot-Touch 的那一组平均成功率最高。

  和不用触觉相比,T-Rex、π0.5、LingBot-VLA 的成功率分别提升了 23.18、21.81、24.81 个百分点,而付出的代价,只是参数量多了 0.13% 到 0.16%。

  △两款灵巧手上,四种动作模型在三种设置下的平均成功率

  就拿单手插吸管来说,这个任务的难点在于刺破封膜的那一下。吸管抵住透明封膜往下压,阻力越来越大,膜一破,手上会突然松掉。

  摄像头很难分清膜是被压凹了还是已经被扎穿,但指尖可以。要是收力慢上一步,吸管就会直接冲到杯底。

  视频地址:

  https://mp.weixin.qq.com/s/b7PNN5A3W8e1bZDVNTd5tg

  当然,最能说明问题的,还得是 XHand 这组实验。

  XHand 用的磁触觉传感器,型号从来没出现在预训练数据里;而且预训练中的磁触觉数据,全部来自人戴的手套。接入 XHand 时,LingBot-Touch 更是一个参数都没改。

  即便如此,π0.5 在 6 项任务上的平均成功率,还是从直接喂原始信号时的 48.00% 升到了 74.17%。

  其中分离叠杯这一项,成功率更是从 32.5% 翻了一倍多,达到了 72.5%。

  这个任务要求灵巧手只取走最上面的那一个杯子,它得用一只手扶住整摞杯子,另一只手捏着杯沿往外抽。如果阻力突然变小、指腹还稳稳贴着杯沿,说明杯子已经松脱,得马上收力;如果是指腹自己在杯沿上打滑,那就该重新抓。

  这两种情况,手感截然不同。

  视频地址:

  https://mp.weixin.qq.com/s/b7PNN5A3W8e1bZDVNTd5tg

  换句话说,人手攒下的经验,帮机器人读懂了一只它从没摸过的手。

  除此之外,团队还拿 LingBot-Touch 和此前的触觉基础模型 FTP-1 做了对比。

  在 Sharpa Wave 上判断接触中心时,FTP-1 的误差是 2.19 毫米,LingBot-Touch 则是 0.12 毫米;在 XHand 上,误差也从 5.89 毫米降到了 0.16 毫米。

  要知道,FTP-1 在这两只手上还各自配了专门的适配器,而 LingBot-Touch 用的是同一个冻结的编码器。

  △与 FTP-1 在两款灵巧手上的对比

  另外,LingBot-Touch 的 Scaling Law 也已经初步显现出来了。

  Tiny 版在 4000 小时左右开始饱和,换成容量更大的 Small 版,到 5000 小时效果还在往上涨;真机任务的成功率,同样随着预训练数据的增加而稳定提升。

  △预训练数据量与模型规模对效果的影响

  补齐了触觉的拼图

  看完技术细节,我们再把 LingBot-Touch 放回蚂蚁灵波整条技术路线里,就能更清楚地看到它的位置。

  在此之前,灵波的通用大脑已经铺开了三块能力,空间感知有 LingBot-Vision 和 LingBot-Depth 2.0,环境交互有 LingBot-Video 和 LingBot-World 2.0,灵巧操作则有 LingBot-VLA 2.0 和 LingBot-VA 2.0。

  可以看到,这几块能力大多在解决碰到之前的事,比如东西在哪、手该伸到哪、下一步该干什么。

  不过一旦手指碰上物体,视觉能提供的信息就少了,比如指腹贴着瓶盖的地方会被手挡住,钥匙插进锁孔之后更是什么都看不见。

  LingBot-Touch 补上的,正是这一块。用一句话概括,就是视觉管接触之前,触觉管接触之后。

  双手开锁就是一个典型的例子。

  一只手握着挂锁,另一只手捏着钥匙对准锁孔,这一步主要靠眼睛;可钥匙往里一推,就有可能把锁顶歪,推到一半卡住了,还得退一点、换个角度再试。

  等钥匙进了锁孔,摄像头基本就帮不上忙了,灵巧手只能靠钥匙传回指尖的阻力来判断。

  视频地址:

  https://mp.weixin.qq.com/s/b7PNN5A3W8e1bZDVNTd5tg

  看到这里,或许有小伙伴要问了,灵波为什么要把触觉单独做成一个基础模型?

  原因在于,每只手的控制方式都不一样,但它们都得理解接触。

  如果把“理解接触”这件事单独拎出来,做成可以复用的一层,那么一款硬件攒下的经验,就能成为下一款机器人的起点。

  这个思路,其实和灵波之前做 LingBot-VLA 是一脉相承的。

  VLA 研究的是同一个大脑怎么驱动不同构型的机器人,也就是“一脑多机”;到了 Touch 这里,问题又往前推了一步,变成了不同的手、不同的传感器攒下的接触经验,能不能放在一起学,再用到新机器人身上。

  而前面 XHand 那组结果,算是给出了一个初步的答案。

  LingBot-Touch 的几个设计选择,也正是从这个目标倒推出来的。用手套采数据,是因为手套不依赖机器人本体,数据规模才扩得上去;入口按传感原理设计、不按产品型号设计,是为了给以后的新传感器留出位置。

  这也是灵波一直强调的具身原生,即从机器人在物理世界里怎么感知、怎么动手出发,来决定模型应该怎么设计、用什么数据训练。

  目前,LingBot-Touch 已经和 LingBot-VLA、LingBot-Depth 完成融合,用来提升通用大脑手眼协同、完成精细操作的能力。

  在落地方面,灵波也正和乐聚、钛虎等本体伙伴,以及国大药房、隆盛等场景伙伴,在零售分拣、物流分拣和工业场景里开展商业化测试。

  大模型越强,具身原生越不能缺席

  聊完 LingBot-Touch 本身,我们再把视角拉远一点。

  今年 9 月 GPT-6 Astra 发布之后,RoboDojo 团队让它在零样本的条件下跑了 42 项仿真操作任务,结果它的综合得分在 43 个参评条目里排到了第一。

  说实话,这件事让具身圈一度挺慌的。

  但在同一份报告里,还有另一组数字。GPT-6 Astra 在精度维度的成功率只有4%,而表现最好的公开策略是 20.42%;插管、搭塔这类需要精确接触的任务,它几乎全军覆没,真机测试也因为安全问题被叫停。

  报告把这个差距归结为缺少物理常识,也就是对接触、力和碰撞的理解。

  而就在今天,Anthropic 又发布了 Claude Fable 5.2,大模型控制机器人的进度条又往前推了一步。

  据 Anthropic 官方博客公布的内部测试结果,Fable 5.2 在 RoboDojo 仿真测试中的平均成功率达到64. 9%,是同一套测试框架下 GPT-6 Astra(29.8%)的两倍还多,也超过了大多数专门为控制机器人打造的 AI 系统。

  官方放出的演示里,由 Fable 5.2 控制的机器人还能解魔方、拧瓶盖、画画。不过,RoboDojo 考的,是看着摄像头画面去控制一台仿真的双臂机器人。

  从 Fable 5.1 到 Fable 5.2,前后两个多月,同一套测试里的成功率就从 27.6% 涨到了 64.9%。通用大模型理解任务、推理规划,乃至直接上手操作的本事,都在肉眼可见地变强。

  但在我们看来,这并不意味着具身模型就该退到一边,只管“动手”。

  仿真里的高分,和在真实世界里稳稳地把活干完,中间还隔着物理世界的泛化性。换一只手、换一种材质、换一个从没见过的场景,机器人还能不能干好?这个问题绕不过去,得由从物理世界里原生长出来的大脑自己去啃。

  蚂蚁灵波 CEO朱兴的判断也是如此。

  他认为,GPT-6 Astra、Claude Fable 5.2 这些数字世界大语言模型的进展,确实让机器人的复杂任务推理和物理操作能力更强,灵波也在积极吸收;但要真正跑通操作闭环,“物理操作泛化性这块硬骨头还是绕不开”,很大程度上仍要靠具身基础模型自身的突破。

  在他看来,通用大模型和具身基础模型更接近1+1>2的关系,两者各自突破、相互促进,共同加速具身智能产业的成熟。

  LingBot-Touch,就是灵波啃这块硬骨头的一次尝试。

  触觉是一种物理世界原生的模态。互联网上有海量的文字、图片和视频,却几乎没有哪个网页记录过,拇指捏瓶盖时到底用了几牛的力。这类经验,只能在真实交互里一点点攒,而它恰恰是物理世界泛化性的根基之一。

  例如灵巧手摸麻将,靠的就是这种经验。

  二筒和三筒摸上去都是圆圈,想分清楚,得摸出一共有几个圆、各自排在哪儿,而这些线索全藏在指腹下浅浅的刻纹里。

  视频地址:

  https://mp.weixin.qq.com/s/b7PNN5A3W8e1bZDVNTd5tg

  过去,触觉一直是零零散散的,每家传感器一套数据、一套模型,换一只手就得从头再来。而 LingBot-Touch 证明了,触觉也可以有统一的表征。

  如果再往前推一步,LingBot-Touch 这套办法,即统一坐标、入口分开、主干共享、在特征空间里做预测,其实没有哪一环是只属于触觉的。

  这套思路,也贯穿在蚂蚁灵波整条具身原生路线里。按照规划,灵波会持续探索物理操作泛化性的上限,打造跨构型的机器人行业通用大脑,推动视觉、深度、触觉乃至温度等更多物理模态在统一模型中对齐。至于机器人以后还会多出哪些感知方式,现在谁也说不准,但至少,已经有了一条可以参照的路。

  这也正是蚂蚁灵波想做的事情,在硬件和场景之间做一层智能,把不同本体、不同传感器积累下来的物理经验,转化成可以共享的通用能力。

  而且,蚂蚁灵波是以开源、可拆分的方式把这层能力给出去的,并且会在推进商业化的同时,持续向社区开源开放。

  LingBot-Touch 可以单独拿去用,接在π0.5、Diffusion Policy 这些别家的动作模型上,一样有效;传感器厂商可以继续走自己的技术路线,整机厂也不用为了某个模型去换传感器。

  奥迪今年初披露过一个数字,全行业线束生产与装配的自动化比例,还不到 10%。这类边接触、边调整的活儿,正是灵巧手迟迟接不住的地方。

  再看国内,中国的灵巧手和触觉传感器种类很多,过去这是数据互不相通的麻烦;可一旦经验能够共享,这份多样性反倒会变成数据上的优势。

  总而言之,机器人手上有了信号,也未必会用。

  正如朱兴所说,“模态输入的质量很大程度上决定了动作输出的质量”,没有好的输入,就没有好的输出。

  通用大模型跑得越快,具身原生的大脑就越不能掉队。让机器人在物理世界里把活干稳、干好的那份能力,终究要靠具身原生的大脑,在真实世界里一点一点练出来。

  项目主页:

  https://technology.robbyant.com/lingbot-touch

  技术报告:

  https://github.com/Robbyant/lingbot-touch/tree/main/paper

  GitHub:

  https://github.com/Robbyant/lingbot-touch

  Hugging Face:

  https://huggingface.co/collections/robbyant/lingbot-touch

  魔搭社区:

  https://www.modelscope.cn/collections/Robbyant/LingBot-Touch