TLabel 设计思路:为什么触觉数据必须统一标注标准?
当GelSight、DIGIT、BioTac、PaXini这些传感器同时出现在一个实验室里,它们输出的数据却互不认识——这不是工程bug,是行业级的基础设施缺失。
01 一个被忽视的事实:触觉数据没有"通用语言"
2026年,具身智能赛道最火的词是VLA(Vision-Language-Action)、是世界模型、是端到端策略。但很少有人认真讨论过一个前提问题:模型训练用的触觉数据,格式是统一的吗?
答案是不统一,而且非常不统一。
举个例子:同样是"机器人抓取一个塑料瓶"这个动作:
- GelSight 输出的是凝胶形变的图像序列——640×480像素的灰度图
- PaXini 输出的是电容阵列的力矩阵——8×8或16×16的数值网格
- BioTac 输出的是多模态信号——阻抗、温度、三轴力,各自独立采样
- DIGIT 输出的是视触觉图像——但分辨率、坐标系和GelSight完全不同
这四个传感器都在测量同一件事:手指接触物体时发生了什么。但它们的数据格式完全不同,处理代码完全不同,标注方式完全不同。
一个实验室如果同时用两种传感器,就需要写两套处理代码、维护两套标注流程、训练两套模型。想比较两个传感器的效果?先花两周做数据对齐。
这就是触觉数据的现状:硬件百花齐放,数据各自为政。
02 为什么不能直接统一原始信号?
面对数据碎片化,最直觉的想法是:把所有传感器的原始输出统一到一种格式不就行了?
新智具身(NeoteAI)最近发布的NeoForce就是这么做的——把任意触觉信号映射为三轴力场(2个切向剪切 + 1个法向压力),用神经网络做物理表征层的统一。这是一个很好的方案,但它回答的是另一个问题。
物理信号层的统一,回答的是"传感器感受到了什么"——力的大小、方向、分布。这很重要,但只对了一半。
语义标注层的统一,回答的是"发生了什么、意味着什么"——这是接触还是滑移?这是抓取还是放下?纹理是光滑还是粗糙?力是在增大还是释放?
这两层不是替代关系,而是互补关系:
plaintext
传感器原始信号 → 物理表征(NeoForce类方案)→ 语义标注(TLabel)→ 模型训练
物理表征告诉你"法向力1.2N,切向力0.3N";语义标注告诉你"正在发生滑移,置信度0.92,处于grasp阶段"。模型需要的是后者——它不关心传感器怎么算出力的,它关心接触状态是什么。
TLabel选择做语义标注层的标准化,不替代物理表征层,而是在它之上叠加一层通用语义。
03 14维Schema:不是拍脑袋定的数字
TLabel Schema V2定义了14个语义维度。这个数字是怎么来的?
不是从学术论文里推导出来的,是从实际标注需求反推出来的。我们梳理了 tactile manipulation 领域最常见的标注需求,发现绝大多数研究者和工程师在做数据分析时,关心的就是这几类问题:
表格
| 问题 | 对应维度 |
|---|---|
| 碰没碰到? | contact |
| 碰在哪了? | contact_centroid、contact_region |
| 用了多大劲? | force_magnitude、force_vector、torque_vector |
| 滑没滑? | slip_event、slip_velocity |
| 在做什么动作? | manipulation_phase |
| 摸起来什么感觉? | texture_class、object_deformation、temperature |
| 这个标注靠谱吗? | confidence、compliance_level |
14个维度,覆盖了从空间感知、力学感知、表面感知到动态感知和元信息的完整链路。不多不少——少了不够用,多了传感器填不出来。
关键设计决策:Capability Declaration(能力声明)
这是TLabel最核心的机制。我们不要求所有传感器都填满14个维度——那是不可能的。BioTac能测温度,GelSight测不了;PaXini能测法向力,但给不出精确的三轴力向量。
所以每个传感器适配器在输出数据时,先声明自己能标注什么、不能标注什么:
json
{
"capabilities": {
"contact": true,
"force_vector": false,
"temperature": false,
"slip_event": true
}
}
能标注的字段填值,不能标注的字段填null。绝不编造数据。
这个机制让一个49元的单点压力传感器和一个4900元的BioTac,都能用同一套格式输出——只是信息密度不同。
04 Compliance Level:让低端传感器也能"入网"
能力声明解决了"诚不诚实"的问题,但还有一个问题:下游模型怎么知道这批数据的信息量够不够用?
这就是Compliance Level(合规等级)的作用。TLabel定义了四个等级:
表格
| 等级 | 含义 | 必填字段 | 典型传感器 |
|---|---|---|---|
| L1 | 基础触觉 | contact, centroid, slip, confidence | 单点电阻式、接近觉传感器 |
| L2 | 力感知 | L1 + force_magnitude | PaXini, YCB-Slide, GelSight |
| L3 | 完整力向量 | L2 + force_vector [Fx,Fy,Fz] | ToucHD, 标定的DM-TAC |
| L4 | 富语义 | L3 + 全部可选字段 | BioTac, 下一代多模态传感器 |
等级是累积的:L3自动满足L2和L1的所有要求。
等级是物理决定的:一个只能测法向力的传感器,正确标注就是L2,不是"不合规"。
等级是自动设置的:适配器根据传感器物理能力自动设定,不需要人工干预。
这意味着什么?意味着一个做低成本灵巧手的团队,用最便宜的力传感器(L1/L2),也能产出格式合规的数据。等将来换了好传感器,历史数据和新数据可以在同一套格式下共存。
数据不会因为传感器升级而报废。
05 三层架构:为什么要把Schema和Adapter分开
v0.17版本做了一个重要的架构决策:把Schema层和Adapter层彻底分离。
plaintext
Layer 1: Schema → 14维语义标准 + Compliance Level L1-L4
Layer 2: Adapters → DataAdapterBase / SensorAdapterBase
Layer 3: Downstream → 特征派生 · 数据增强 · 格式导出
为什么要分这么清楚?因为标准应该是稳定的,而适配器应该是可以随意扩展的。
TLabel定义的14维Schema是一种"语义协议"——就像UTF-8定义了字符编码规则,但不会限制你能编码哪些语言。Schema V2确定之后,不应该因为某个新传感器出现就去改Schema——而应该是写一个新的Adapter去适配。
目前TLabel已经内置了9个适配器:
- 数据集适配器(7个) :GelSight/DIGIT、DM-TacClaw、PaXini、UniVTAC、TacQuad、VTouch、YCB-Slide
- 实时传感器适配器(2个) :PaXini GEN3、DM-Tac
添加一个新传感器只需要做三件事:
- 继承
DataAdapterBase或SensorAdapterBase - 实现
extract_schema()方法——把原始数据映射到14维Schema - 声明compliance_level
整个流程大约30分钟。
这就是把标准做成基础设施的好处:核心层不需要频繁改动,生态层可以无限扩展。
06 从22维到14维:做减法比做加法难
用过v0.16的人可能会注意到:TLabel从v0.16到v0.17,语义维度从22个减到了14个。
这不是删减功能,是重新分类。
v0.16的设计思路是"把所有可能的触觉信息都塞进Schema"——结果是一些维度在实际使用中几乎填不出来(比如whole_hand_coordination,大部分传感器根本拿不到这个信息),而另一些真正需要的维度又定义得不够清晰。
v0.17的做法是:
- 砍掉传感器物理上填不出来的维度(如whole_hand_coordination、force_direction)
- 合并语义重复的维度(force_direction → force_vector)
- 新增实际需要的维度(confidence、compliance_level、force_magnitude、torque_vector、temperature)
- 把可选维度彻底标记为Optional,不强制要求
最终14维,每一维都有明确的物理含义、数据类型和填充条件。
做标准最难的不是定义多少规则,而是克制住定义更多规则的冲动。
07 和现有生态的关系
TLabel不打算替代任何东西。它的位置很明确:触觉数据从"传感器原始输出"到"模型可训练数据"之间的标注中间层。
表格
| 现有标准 | 它做什么 | TLabel怎么配合 |
|---|---|---|
| LeRobot | 机器人数据管理框架 | TLabel标注可以附加到LeRobot episode |
| RLDS/Open X-Embodiment | 任务级数据格式 | TLabel提供逐帧触觉细节 |
| FTP-1 | 基础模型训练格式 | TLabel可直接导出为FTP-1 Zarr |
| NeoForce | 物理信号层统一 | TLabel做语义层统一,两者叠加 |
TLabel已经实现了到LeRobot、FTP-1、JSON/CSV的导出,RLDS导出在开发中。
08 一些数据
截至2026年7月:
- GitHub: 34 stars,230 commits,21 releases,最新v0.17.2
- PyPI: 月下载3500+次
- 生态收录: Awesome-Touch、TACO、Forge等上游项目
- 已验证传感器: GelSight、PaXini PXCap、DIGIT三种物理原理完全不同的传感器
- 硬错误: 75万+帧数据中0个Schema验证错误
- 跨场景泛化准确率: +7.93%(p=0.029)
- 滑移风险检测F1: +10.35%(p<0.001)
这些数字不大,但说明一件事:Schema设计是可行的,而且在实际数据上跑得通。
09 下一步
TLabel目前还在非常早期的阶段。接下来要做的事:
- 更多传感器适配器——尤其是Lumi-Tac等国产视触觉传感器
- 触觉数据可视化——让标注结果直观可见
- 数据增强工具——基于语义标注做有意义的增强,而不是随机噪声
- 社区建设——让更多做触觉的人参与进来,一起完善Schema
标准从来不是一个人定的,也不是一个团队定的。它是在足够多的人用了之后,自然形成的共识。TLabel现在做的,是把这个共识的起点搭出来。
项目地址:github.com/liesliy/tlabel
安装:pip install tlabel
文档:TLabel Format Specification v2.1
作者系牛宿科技创始人,专注具身智能触觉数据基础设施。欢迎交流。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)