![]()
想象一下,你蒙着眼睛去挤一个装满液体的滴管。你的手指感受到的压力、滑动、形变,每一瞬间都在剧烈变化。可你的眼睛(就算能睁开)看到的画面,可能从头到尾都没什么两样,滴管还是那个滴管,手还是那只手。
这正是机器人在做精细操作时遇到的真实困境。上海交通大学邓志杰实验室的研究团队做了一个实验:让机器人捏一个滴管,记录下40步动作里的视觉画面和触觉数据。结果发现,1.17秒后,视觉表征几乎没变化,用余弦距离衡量只有0.005,几乎可以忽略不计。但触觉表征呢?余弦距离飙到了0.55,几乎是完全不同的信号。
这个数字对比说明了什么。
它说明了一件在机器人研究圈子里其实有点反直觉的事情:很多主流的机器人控制模型,压根没有认真对待这个差距。
**机器人怎么"看"和"想"的**
要理解这个问题为什么重要,得先说说现在机器人是怎么干活的。
现在流行的机器人控制模型叫VLA
VLA*:全称Vision-Language-Action,视觉语言动作模型,是一种能同时理解图像、语言指令并输出机器人动作的AI系统
这类模型看一眼摄像头画面,听一句语言指令,比如"把溶液从烧瓶转移到烧杯",然后一口气生成接下来一整串动作,可能是未来50个时间步的动作序列。这一整串动作被称为一个动作块
动作块*:Action Chunk,指模型一次性生成的、包含多个时间步的连续动作序列,生成后交给机器人依次执行
问题就出在这里。模型生成这一整串动作的时候,只看了一眼当下的画面和触觉,然后就闭着眼睛把后面几十步全部想好了。可是就像前面那个滴管实验展示的,触觉信号在这几十步里会剧烈翻天覆地地变化,而模型手里攥着的还是最初那一眼看到的旧数据。
这就好比你请一个装修师傅,师傅进门看了一眼墙面情况,然后转身就把接下来两个小时要用的力度、角度、工具全部计划死了,中途不再看墙。如果墙面材质均匀倒也无妨,可万一墙里藏着一块钢板,一块木头,师傅的手感受到的阻力早就该变了,可他脑子里的计划还停留在进门那一眼,后面的动作只会越错越离谱。这就是不做执行时反馈会付出的代价:动作和真实接触状态渐行渐远。
已经有研究者注意到这个问题,做法是额外配一个高频率的触觉反应控制器,专门盯着触觉信号做快速调整,和负责规划的慢速大脑分开工作。这种思路被称为慢快分层
慢快分层*:Slow-Fast Hierarchy,一种系统设计,用低频率模块做整体规划,用高频率模块做局部快速反应,两者协同工作
这个思路听起来合理,但代价也不小:你得额外训练一个独立的控制器,架构变复杂了,训练流程也变复杂了,相当于给机器人配了两个大脑,还得教它们互相配合。
论文的团队想的是另一条路:能不能不额外造一个控制器,而是让原本负责生成动作的那个模块自己学会中途看一眼最新的触觉信号,然后调整还没执行的部分。这就是TacForcing的核心思路。
**流式生成:动作是一块块蹦出来的,不是一整块甩出来的**
TacForcing的第一个关键设计,是把原本的动作专家
动作专家*:Action Expert,VLA模型中专门负责根据观测和条件生成具体动作数值的子模块,通常基于扩散模型或流匹配技术实现
换成了一个流式动作专家
流式动作专家*:Streaming Action Expert,一种渐进式生成动作的模块,不是一次性生成整个动作块,而是分批次、逐步完成生成,使执行中的反馈能够介入后续生成过程
具体怎么做的?研究者把一整个动作块切成若干个小块,比如50步动作切成10块,每块5步。生成过程中,每个小块有自己独立的生成进度,靠得近、快要执行的那块先被"磨"完,磨好了立刻送去执行,而后面还没磨完的那些块,则保留着半成品状态,等下一轮再继续打磨。
这里要理解一个背景知识,叫流匹配
流匹配*:Flow Matching,一种生成模型技术,通过学习一个连续的速度场,把随机噪声逐步"引导"变成目标数据,类似于给一团乱麻按照特定方向逐渐梳理成型
在传统流匹配里,整个动作块所有位置共享同一个进度时间,好比一锅粥所有米粒同时熟。TacForcing把这个共享时间拆开,让每个小块有自己独立的时间进度,靠前的块进度快,先熟先出锅,后面的块进度慢,还在锅里继续煮。
这个设计像什么呢?想象一个流水线上的面包师傅,不是把整批面团一起放进烤箱等全部烤熟才端出来,而是把面团分成小份,第一份烤好了立刻端出去卖,第二份继续留在烤箱里接着烤,第三份才刚开始发酵。如果不这样分批处理,非要等所有面团同时达到出炉状态,那么最先做好的那份面包只能干等着,新鲜度早就打了折扣,顾客买到手的时候已经凉了。分批出炉的好处是,先做好的先给顾客,后做的还能根据顾客临时反馈的口味微调配方。
机器人这里的"顾客反馈",就是执行完前面几个动作后传回来的最新触觉信息。
**触觉更新:每完成一个动作块,就摸一次新的触感**
流式生成解决了"动作能不能分批做"的问题,但还需要解决"新的触觉信息什么时候插进来"的问题。
论文设计的机制是:动作块完成执行后,立刻用装在指尖的触觉传感器采集最新的形变图,这个数据被称为触觉观测,经过一个专门的触觉编码器
触觉编码器*:Tactile Encoder,把原始的触觉形变图数据转换成模型可以理解的向量表示的神经网络模块,论文中用了FTP-1模型预训练好的编码器权重
处理成一组触觉标记(tactile tokens),然后交给流式动作专家,用来指导接下来还没生成完的那些块。
这套流程听起来直接,但研究者很快意识到一个隐患:如果不加约束,最新采集到的触觉信息会被允许直接影响所有还没生成完的块,包括那些要再过好几轮才会真正执行的块。
这就带来一个新问题:一个触觉快照,能管多久?
**执行感知触觉注意力:让新触感只管眼前这一步**
这就是论文第二个核心贡献,叫执行感知触觉注意力,简称EATA
EATA*:Execution-Aware Tactile Attention,一种注意力掩码机制,限定最新的触觉信息只能直接影响接下来即将执行的那个动作块,其余尚未轮到执行的块暂时被屏蔽,等待后续更新的触觉信息
为什么要这么限制?回到前面滴管实验的数据,触觉信号在几十个时间步内变化幅度极大。如果让当前这一刻采集到的触觉信息去指导三四个块之后才会执行的动作,那等真正执行到那一步时,手指的接触状态早就变了,你现在这份触觉快照早就过期作废了,指导意义反而可能是负的。
研究者用了一个附加的注意力掩码来实现这个限制,公式上简单说就是:只有对应即将执行块的动作位置,才被允许"看到"当前最新的触觉标记,其余位置一律屏蔽,视觉上等同于设成负无穷大,注意力权重直接归零。
这个设计像什么?想象你在给一个正在下棋的朋友实时支招。棋盘局势瞬息万变,如果你把"现在这一步该怎么走"的建议同时喊给他接下来准备走的第三步、第四步,那第三步第四步落子的时候,棋局早就不是你喊建议那一刻的样子了,你的建议反而可能带偏他。合理的做法是,你只针对他马上要落的这一子给建议,再往后的棋步,等真到那个时候,你再看新的棋局给新的建议。EATA做的就是这件事:让每一份触觉反馈只服务于离它最近、最快要执行的那一步,而不是被强行摊派给整个未来。
如果去掉EATA会发生什么?论文的消融实验给出了答案,模拟环境里平均成功率从60%掉到51%,现实世界任务里更明显,从69%掉到48%,整整掉了21个百分点。这个差距足以说明,把触觉反馈和执行时机对齐这件事,不是锦上添花,而是真正决定成败的关键环节。
**训练怎么配合这套流式生成逻辑**
光是推理阶段这样设计还不够,训练过程也得跟上这套逻辑,否则模型在真正上场执行时会水土不服。
研究者的做法是,在训练时随机采样一个生成进度,模拟流式推理过程中某一时刻的状态:哪些块已经完成,哪些块还在半成品状态,此时该用哪个时间点的触觉观测,该套用哪个EATA掩码,全部按照真实执行时的逻辑还原出来。损失函数只计算那些还没完成的动作位置的误差,已经定型的块不再参与梯度更新。
这个安排背后的道理其实很朴素:考试考什么,平时就得练什么。如果训练时用的是完整观测到完整动作块的老套路,测试时却要应对"半成品状态加上部分更新的触觉"这种新场景,模型大概率会不适应。让训练分布和推理分布对齐,是机器学习里一个很基础但常被忽视的原则。
**实验结果说话**
论文在两个场景下做了验证:一个是仿真环境UniVTAC的六个接触密集型任务,一个是三个真实世界任务。
仿真基准UniVTAC*:一个统一的视觉触觉操作仿真平台,包含举瓶子、拔钥匙、举罐子、放瓶子进架子、插孔、插管六个任务
对比的基线方法覆盖了三种流派:不用触觉的通用VLA模型π0.5,用固定触觉编码器增强的UniVTAC-ACT,把多种触觉传感器数据统一编码的FTP-1,以及前面提到的慢快分层触觉反应策略RDP。
仿真结果里,TacForcing平均成功率65%,比不用触觉的π0.5高14个百分点,比慢快分层的RDP高23个百分点。六个任务里,TacForcing在五个任务上拿到最高或并列最高成绩,唯一没拿第一的是举罐子任务,63%对比最好成绩66%,差距很小。
真实世界的三个任务分别是把瓶子立起来、把液体从容器转移到另一个容器、擦白板。这次对比的基线还多了一个不用触觉的通用模型GR00T N1.7。TacForcing平均成功率69%,比FTP-1高17个百分点,比GR00T N1.7高27个百分点,比π0.5高42个百分点。
最夸张的差距出现在转移液体这个任务上:TacForcing成功率50%,所有基线方法都不超过19%。这个任务需要机器人用滴管精确控制吸取和挤出的力度,恰恰是那个开篇实验里触觉剧烈变化的场景,也是执行时反馈最有用武之地的场景。
| 配置 | 仿真平均 | 真实世界平均 |
| Base(无触觉) | 43% | 42% |
| 固定触觉(全程用初始触觉) | 42% | 31% |
| TacForcing去掉EATA | 51% | 48% |
| **TacForcing(完整版)** | **60%** | **69%** |
这张表格里有个特别值得琢磨的细节:固定触觉这一档,也就是给整个动作块加上一次初始触觉观测但不再更新,成绩反而比完全不用触觉更差,仿真里从43%降到42%,真实世界里从42%降到31%。
这说明什么?说明触觉信息如果只采集一次就锁死不再更新,价值非常有限,甚至可能因为信息过时而帮倒忙。真正有用的不是"有没有触觉输入"这件事本身,而是"触觉输入能不能跟上真实接触状态的变化节奏"。这也从反面印证了论文最初的判断:触觉这种在几十步动作内剧烈波动的信号,如果不做执行时更新,用了可能还不如不用。
**写在后面**
读这篇论文时,最让我意外的其实是那张固定触觉反而拖累成绩的对比数据。
直觉上你会觉得,给模型多一种感知输入总归是有益无害的,多总比少好。可这个实验结果打破了这个直觉:一个过时的、和当下真实状态脱节的信息源,不是中性的,它是有毒的。模型如果信任了这份过时数据,反而会做出错误判断,比不获取这份数据表现更差。
这让我联想到日常生活里一个很类似的现象。你查了一份三天前的天气预报出门,结果比完全不查天气预报还糟糕,因为你会带着三天前的预期去决策,可能少带了伞,也可能因为过度自信而做出了原本不会做的冒险选择。信息的价值从来不是绝对的,它和信息的新鲜程度、和使用场景对信息更新频率的要求,是绑在一起的。
论文里还有一个没有深入展开但值得追问的地方:block size也就是每个小块包含几步动作,论文里固定用了5步。如果这个数字变大或变小,触觉反应的灵敏度和计算开销之间会怎么权衡?块切得越细,触觉更新越及时,但计算和触觉采集的频率也越高;块切得越粗,效率是保住了,但可能又退回到旧问题上。这个平衡点该怎么找,论文没有细致的消融数据,留给了后续研究去填。
一个滴管,1.17秒,0.55的余弦距离。这几个数字凑在一起,讲了一个关于"眼见不一定为实,手感才是当下真相"的故事。机器人学会用手去感知世界,比学会用眼睛去看世界,或许还要难上几分。
Q&A
Q1:TacForcing是什么?
A:TacForcing是一种流式动作生成框架,让机器人在执行动作过程中能够实时接收最新的触觉反馈并调整还未完成的动作,而不需要额外配备一个独立的高频触觉反应控制器。
Q2:EATA解决了什么问题?
A:EATA(执行感知触觉注意力)解决了触觉信息过时误导后续动作的问题,它规定最新采集到的触觉反馈只能指导即将执行的那个动作块,避免让距离更远、还要等好几轮才执行的动作块被过时的触觉信息带偏。
Q3:TacForcing在实验中表现如何?
A:在仿真的六个接触密集型任务上平均成功率65%,在真实世界三个任务上平均成功率69%,均优于不使用触觉的通用模型和使用固定触觉、慢快分层等方案的基线方法,转移液体任务上优势尤其明显。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.