ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

世界模型长出触觉:N0-TWAM如何攻克接触富集操作难题

世界模型长出触觉:N0-TWAM如何攻克接触富集操作难题 最近机器人圈子里讨论度最高的发布应该就是复旦和NeoteAI联手推出的N0-TWAM了。名字乍一看不大好念但“让世界模型长出触觉”这句口号确实戳中了很多人的神经。我自己的第一反应是世界模型已经够复杂了7B参数还要去处理接触富集操作这个组合到底解决了什么实际痛点用大白话翻译这个项目它想让机器人不再只靠眼睛判断而是真正拥有“手感”。接触富集操作指的就是插销、装配、拧螺丝、连接器插拔这种需要不断和物体发生接触反馈的活。这类任务最大的麻烦在于视觉在接触发生的那一刻几乎是不管用的力矩和触觉反馈才是真正靠谱的信息源。一个7B参数的模型要把这件事扛起来考验的不只是网络结构还有数据工程和部署策略。这篇文章我打算把发布口径之外的底层逻辑也一并拆一拆。从世界模型的原理讲起再聊接触富集操作为什么这么难啃接着分析N0-TWAM可能的技术路径最后给实战层面的数据采集和部署避坑经验。关注具身智能和机器人操作的朋友可以把它当作一份背景参考和行动清单来读。1. 世界模型走到十字路口光会“看”已经不够了1.1 世界模型到底想预测什么世界模型并不是这两年才冒出来的新概念。它的核心是在智能体内部构造一个环境动力学的近似模型给定当前状态和当前动作预测下一步状态会变成什么样。你可以把它理解成大脑里的一个“沙盘”或者“模拟器”决策之前先在脑子里推演几步再决定要不要动手。Ha和Schmidhuber在2018年提出的经典World Models工作就是用一个小型神经网络在赛车环境里学隐空间状态让智能体在“梦境”中先做推演再规划动作。这个思路后来在强化学习领域被持续放大Dreamer系列就是典型代表。近两年大模型兴起后世界模型又和Transformer结合输入连续图像、文本、动作指令输出下一帧画面或者下一时刻的状态向量。判断一个模型是不是真正意义上的世界模型不是看它的名字而是看它有没有“预测未来状态”这个核心能力。输入历史帧和动作预测下一帧像素只是入门动作。真正难的是预测一个有结构的状态向量而不是像素本身。因为像素重建成本高、噪声大真正有用的往往是压缩后的隐状态。现代世界模型一般这样工作模型在隐空间里维护一个状态z_t用z_{t1} f_θ(z_t, a_t)做一步推演速度快、开销小还能反复roll out多条轨迹来比较优劣。1.2 纯视觉世界模型已经解决了什么截至目前基于视觉的世界模型和视觉语言动作模型已经解决了不少问题。典型的桌面抓取、语义导航、简单分拣这类任务靠视觉信息加上语言指令就能有不错的成功率。为什么因为这些任务本质上属于“语义层”问题对误差的容忍度比较高。比如“把红色杯子放到托盘里”位置差个一两厘米基本不影响成功。视觉能带来什么物体类别、大致位姿、动作语义、场景布局。这些信息对“我该做什么”非常有帮助所以在任务规划、路径规划这些偏上层决策的地方视觉世界模型已经相当能打了。但是一旦操作进入物理接触阶段语义层的优势就迅速衰减。插销头到底进去没有螺纹有没有滑掉线缆是不是卡到位了这些根本不是“看到”的问题而是“摸到”的问题。视觉再好也只能看到物体表面看不到接触面上受力的大小和方向。这就是纯视觉世界模型的结构性盲区。1.3 触觉为什么一直被冷落触觉不是没用而是太难伺候。传感器贵、标定麻烦、数据不好标注仿真里面的触觉渲染又和现实差距很大。再加上深度学习框架天生默认处理图像和文本触觉信号想进计算图你得自己造轮子定义数据格式、写编码器、设计对齐方式。这么多额外工作量导致触觉在很长一段时间里都只是机器人实验室里的小众方向。但在实际项目中这种冷落是要付出代价的。机械臂可以精确走到物体上方但一碰到物体就暴露原形因为模型对“接触之后力会怎么变化”完全没有概念。我看过太多纯视觉规划的项目前期抓取定位很漂亮接触后稍微一卡整个系统就陷入振荡或者直接放弃。这个根因正是世界模型里缺少“接触反馈”这一维。2. 接触富集操作7B参数的N0-TWAM为何盯上硬骨头2.1 接触富集任务到底长什么样接触富集操作在学术界的定义是整个操作过程中接触事件频繁发生、接触状态时刻变化的一类任务。听起来有些抽象说几个典型场景你就明白了轴孔装配、连接器插拔、螺丝拧紧、线缆对接、表面擦拭、软体捏取。这些任务的共同特征是成功与否往往就差在“一次正确的接触”上。拿工业界最常见的连接器插拔来举例。接插件的公差可能只有零点几毫米视觉系统标定得再好也挡不住末端执行器在运动过程中的微小偏移。这时候机器人需要靠触觉和力矩反馈去“探”出孔的位置而不是靠眼睛盯着看。人其实也是这样干活的黑暗中插钥匙、桌子底下摸插头、驾驶时盲操作档把全是触觉主导。视觉负责大范围定位触觉负责最终的确认。接触富集操作之所以是硬骨头是因为它同时挑战感知、控制、规划三个层面。感知上要读得懂接触信号控制上要响应得了瞬间的力变化规划上则要在“捅、探、旋、压”这些动作之间动态切换。一个环节掉链子任务就失败。2.2 为什么通用大模型会在这里翻车大语言模型和VLA模型知道很多任务的语义但它们在接触型任务上的表现往往不尽如人意原因很直接模型里没有物理接触模态。训练语料是文本和视频文本再长也不会告诉你“此刻的接触力是几牛”视频再清晰也不会标注“指尖正在打滑”。没有这个通道模型自然无法预测“下一瞬间接触状态会变成什么样”。另一个原因是动作精度。视觉输出误差放大到机械臂末端就是好几个毫米而这些误差足以让工件卡死或者硬怼上去。你让一个VLA模型预测“下一步往左移动2厘米”它说得头头是道可真正接触时零点几毫米的偏差就足以决定成败。这不是模型不聪明而是反馈模态没有形成闭环。纯强化学习路线也面临瓶颈。要在真机上试错成千上万次绝大多数团队承受不起硬件磨损和时间成本。仿真环境里学到的接触动力学迁移到真机又容易失真因为摩擦系数、接触刚度、传感器噪声都是变量。所以业界急需一个“原生支持触觉”的世界模型在内部推演时就把这些物理量考虑进去。N0-TWAM就是在往这个方向走。2.3 N0-TWAM的技术支点把触觉变成模型能推的token从目前公开的发布口径来推断N0-TWAM最核心的变化是让触觉从“后处理插件”升级成“第一公民”。我试着把它的工作概括成三个支撑点第一触觉编码器。把GelSight这类触觉传感器记录的高分辨率形变图或者六维力/力矩序列编码成和视觉、文本统一的token表示再喂进Transformer主干。这一步是基础因为只有模态统一了模型才能像读图读字一样去读触觉。第二状态空间扩展。模型预测的不再只是物体位姿或者下一帧图像还包括接触状态、受力方向、滑动标记这类结构化信息。这些输出直接告诉下游规划器现在是不是接触了接触稳不稳有没有滑脱。接触状态一旦变成可预测的变量反馈回路就建立起来了。第三世界模型的前向推演。在给定当前状态和一组候选动作序列后模型在隐空间里roll out多条轨迹算一遍预期代价再选出代价最小的轨迹去执行。这等于把传统模型预测控制中的解析模型换成了一个能读触觉、能想象接触结果的神经网络模型。按字面拆解TWAM大概率对应“触觉世界动作模型”的意思N0可以理解为“从零开始”或者“零号版本”。这些命名细节不重要重要的是这条路线的结构逻辑是自洽的视觉负责看全局触觉负责摸细节世界模型负责在脑内预演。3. 从架构到参数N0-TWAM的设计思路如何落地3.1 触觉、视觉、语言三种信号怎么进Transformer触觉信号的形态非常多至少包括四类触觉图像、六维力/力矩、振动信号、以及部分场景下的温度信号。N0-TWAM如果想做“统一token”就得把这些异构信号都映射到同一个语义空间里才能让Transformer内部的注意力机制跨模态工作。业界的常见做法是分路编码触觉图像先用小型CNN或者ViT提特征再接一层projector投影成token力/力矩这类时序信号用一维卷积或者MLP做时序压缩本体感受信息比如关节角度、末端速度作为低维向量直接投影。最后把所有token拼在一起进入共享的主干网络。这里最大的坑是模态不平衡。触觉token的数量通常远少于视觉token如果不加干预注意力机制很容易把触觉信息淹没掉。我在类似项目里踩过这个坑解决办法是训练初期把触觉支路的梯度单独放大或者额外加一个接触状态分类头逼着触觉编码器学到有区分度的表示。这个技巧在做任何触觉和视觉、语言融合的模型时都通用。3.2 7B参数具身智能的“甜点尺寸”为什么是7B不是0.5B也不是70B这个选择非常现实。第一7B参数量可以在单张A100甚至4090上用LoRA或QLoRA做领域微调不需要千卡集群。对于高校实验室和创业公司来说这是能负担得起的门槛。第二真机部署对时延极其敏感接触富集操作中如果一次推理要几百毫秒在线闭环基本没法用。7B量化之后可以在边缘计算设备上担任“低频规划状态预测”的角色高频控制交给专用策略或者底层控制器。第三也是容易被忽视的一点接触富集任务本质上是一个局部动力学问题不需要动辄千亿参数的世界知识。模型需要理解的是接触力变化、滑移状态这一类高度局部的物理规律而不是百科知识。把参数从7B加到70B在这种任务上带来的收益边际递减反而增加过拟合和部署成本。7B正好落在能力曲线的“甜点区”。这也能看出N0-TWAM的定位和VLA路线有本质区别。VLA模型追求“视觉-语言-动作”的统一映射适合语义丰富的任务N0-TWAM则是把世界模型当成一个物理推演器动作不是直接从模型里采样的而是通过推演多条轨迹之后选出来的。参数规模适中才可能在实时性和推演质量之间找到平衡点。3.3 世界模型推理公式把“手感”写进状态转移经典世界模型的推理公式很简洁给定当前状态s_t和动作a_t预测下一状态s_{t1}表达式可以写成s_{t1} f_θ(s_t, a_t)在纯视觉模型里s_t一般包括位置、速度、物体位姿等信息。但对于接触富集操作来说这个公式少了一个关键维度接触状态。N0-TWAM这类触觉世界模型我推测会把推理公式扩展为s_{t1}, c_{t1} f_θ(s_t, c_t, a_t, h_t)这里的c_t是接触状态可以是一个离散变量比如未接触、轻微接触、稳定夹持、打滑中h_t是连续的触觉观测比如触觉图像特征或者力/力矩向量。表面上看只是多了两个变量意义却完全不同。模型不仅知道“物体的位置会在哪里”还知道“手头此刻是什么感觉”。这两种信息组合起来才能支撑接触类任务的闭环。推演时如何选动作用代价函数来打分。比如J Σ_t ( ||F_t - F_ref|| λ·I(c_t slip) )第一项惩罚接触力和期望值的偏差第二项惩罚打滑状态。模型在roll out时会主动避开那些会导致打滑或者力超调的轨迹。这本质上就是一种“带触觉反馈的模型预测控制”。理解了这一层你就会明白“让世界模型长出触觉”并不是营销话术而是推理公式的结构性扩展。4. 实操视角想复现和跟进N0-TWAM从哪下手4.1 触觉数据采集和预处理模型再强数据才是地基。接触富集操作的数据集要比普通抓取数据集复杂得多至少需要同时记录机械臂末端六维力/力矩、触觉图像如果有触觉传感器、关节角度、RGB-D视觉图像以及每个时间戳对应的接触事件标签。采集流程建议用遥操作完成人类操作员通过主手控制机械臂执行插拔、拧紧、装配任务后台程序同步记录所有传感器数据。这里有一个非常大的坑时间同步。力传感器可能工作在1000Hz相机只有30Hz触觉传感器可能只有30到60Hz如果时间戳不对齐模型学到的就是错误的因果关系。不要在这个环节省事建议直接搭ROS2的同步管道或者用message_filters做近似时间对齐。另一个容易被忽视的点是数据长尾分布。整个操作过程中真正发生接触、打滑、卡阻的帧可能只占百分之几剩下的都是“空走”状态。如果你按时间顺序均匀采样训练模型大概率学到的是“什么都没发生”的惯性模式一到接触瞬间就失灵。解决办法是按接触事件做重采样把“即将接触”和“刚刚接触”的样本权重拉高。4.2 训练触觉世界模型的三个关键点我在接触富集模型的训练上踩过的坑基本可以浓缩成三个关键点。第一分阶段训练。不要一开始就让全模型端到端地学那样触觉信号梯度会被视觉和语言模态稀释。先把触觉编码器单独预训练可以用对比学习或者接触分类任务然后冻结其他参数只训练触觉支路最后再解冻全部参数用任务数据联合微调。每一阶段目标明确训练会稳定得多。第二损失设计不要只做状态预测。除了预测下一时刻状态强烈建议加一个接触事件分类头判断“当前是未接触、接触、打滑、还是分离”。这个分类头相当于给触觉编码器一个强监督信号能让它更快学到物理上有意义的表示而不是只去拟合像素级的重建。第三触觉特征要归一化。力和力矩的数级、量纲和图像特征完全不同如果不做标准化触觉损失很容易把整体训练带偏。我习惯把所有触觉特征先做z-score归一化再乘以一个小的损失权重让它在早期不干扰视觉主干后期再逐步放大影响力。4.3 从仿真到真机接触类任务要格外小心接触类任务做sim2real比纯视觉任务难一个量级。因为仿真里的接触模型、摩擦力、刚度参数天生就不准。我的建议是三层防护。第一在仿真阶段就做域随机化。把接触刚度、摩擦系数、传感器噪声全部加上随机范围让模型不依赖某个精确参数逼迫它学到更鲁棒的接触语义。第二真机阶段必须拿少量真实触觉数据做微调。别指望纯仿真模型直接上真机就能稳定那几乎不可能至少要用几百条真机演示数据把触觉编码器的分布拉回现实。第三部署时把世界模型的规划频率和底层控制频率分开。世界模型可以低频运行比如10Hz用来做当前轨迹的roll out和监控底层PID或者阻抗控制保持1kHz以上高频执行这样才能兼顾精度和实时性。5. 常见问题与避坑清单问题典型表现排查思路触觉读数跳变模型输出的动作前后抖动增加滤波把连续触觉改成“接触事件”只在状态变化时更新上下文训练后期loss震荡触觉支路和视觉支路互相干扰对触觉特征做归一化重新调整触觉分支的损失权重单任务成功率高、泛化差换一个零件或换个物体就不行在输入中加入物体位姿先验增加仿真域随机化范围推理延迟高在线roll out跟不上控制节拍使用7B量化版、开启KV cache只对未来短时域做roll out减少推演步数仿真表现好、真机崩溃sim2real迁移失败用真机触觉数据做少量微调对接触参数做不确定性建模表格之外最想提醒的一点是别把这类触觉世界模型当动作生成器来用。N0-TWAM本质上是状态预测器它的强项是推演而不是直接吐动作。正确用法是把它当作“脑内沙盘”给出一组候选动作序列模型预测每一条轨迹之后的接触状态和代价策略层再挑代价最小的去执行。如果你直接从模型输出动作等于浪费了世界模型最大的优势。还有一个小的工程经验接触事件要“事件化”。连续的高频触觉流里绝大部分帧不包含新信息模型真正需要更新记忆的往往是接触发生、接触消失、打滑开始这几个关键转折点。把这些转折点抽出来做事件驱动更新既能降低计算量又能让模型对状态突变更敏感。如果让我给正在做具身操作的朋友一个建议下一步别只盯着把模型做大每天琢磨着把参数量往上堆。停下来想想你的系统里有没有“手感”这一层反馈可能更有价值。N0-TWAM的思路拆开看不复杂难的是把触觉数据工程、编码器设计、世界模型推理公式这三件事同时做对。我个人最大的体会就是接触富集操作做不好往往不是策略网络不够聪明而是模型压根不知道接触之后会发生什么。多加一个触觉通道、一段接触状态变量可能比把参数从7B加到70B管用得多。
返回列表