A Unified Annotation Framework for Cross-Sensor Tactile Manipulation Data
TLabel is the first cross-sensor tactile annotation schema with capability declarations and Compliance Level stratification. It enables heterogeneous tactile sensors β regardless of operating principle β to produce compatible 14-dimensional semantic annotations while preserving their unique strengths.
TL;DR β The Unicode for tactile data: one standard schema, every sensor.
Tactile datasets today ship as raw sensor signals without semantic annotations. Each sensor type demands its own ad-hoc processing, and results from different sensors cannot be compared or fused. TLabel addresses this by:
- Standardizing annotations at the semantic level β 14 dimensions covering spatial, mechanical, surface, dynamic, and meta perceptions
- Declaring capabilities β each sensor adapter explicitly states which dimensions it can and cannot annotate
- Stratifying compliance β Compliance Level (L1βL4) ensures every sensor participates at its appropriate information density
- Enabling cross-sensor comparison through a shared output format
pip install tlabelimport tlabel
# Load tactile data (auto-detects sensor format)
data = tlabel.load("path/to/sensor_data.pkl")
# Or try the built-in demo β no files needed
data = tlabel.demo("gelsight")
# Inspect annotation metadata
print(data.describe())
# -> {'num_frames': 500, 'sensor': 'gelsight', 'compliance_level': 'L2', ...}# Open the bilingual annotation panel (Chinese / English)
data.review()# JSON / CSV for analysis
data.export("output.json")
# FTP-1 Zarr for foundation model training
data.export_ftp1("output.zarr")
# LeRobot format
from tlabel.converters import tlabel_to_lerobot
tlabel_to_lerobot("annotations.json", "lerobot_episode/")tlabel list # List all registered adapters
tlabel info gelsight # Adapter details & compliance level
tlabel validate data.json # Schema compliance checkpip install tlabel[gelsight] # GelSight / DIGIT (.pkl)
pip install tlabel[paxini] # PaXini PXCap (.h5)
pip install tlabel[daimon] # Daimon DM-TacClaw (.parquet)
pip install tlabel[ftp1] # FTP-1 export (zarr)
pip install tlabel[all] # EverythingTLabel Schema V2 defines 14 semantic dimensions, with Compliance Levels (L1βL4) indicating annotation completeness:
| # | Dimension | Type | Required |
|---|---|---|---|
| 1 | contact |
bool | β Required |
| 2 | contact_centroid |
[float Γ 2] | β Required (when contact) |
| 3 | force_magnitude |
float | β Required (L2+) |
| 4 | slip_event |
bool | β Required |
| 5 | confidence |
float | β Required |
| 6 | compliance_level |
L1 / L2 / L3 / L4 | β Required |
| 7 | contact_region |
enum | Optional |
| 8 | force_vector |
[float Γ 3] | Optional (L3+) |
| 9 | torque_vector |
[float Γ 3] | Optional |
| 10 | slip_velocity |
[float Γ 2] | Optional |
| 11 | manipulation_phase |
enum | Optional |
| 12 | texture_class |
enum | Optional |
| 13 | object_deformation |
float | Optional |
| 14 | temperature |
float | Optional |
| Level | Name | Required Fields | Example Sensors |
|---|---|---|---|
| L1 | Basic Tactile | contact, contact_centroid, slip_event, confidence | Single-point resistive, proximity |
| L2 | Force-Aware | L1 + force_magnitude | Paxini, YCB-Slide, GelSight |
| L3 | Full-Vector | L2 + force_vector | ToucHD, calibrated DM-TAC |
| L4 | Rich-Semantic | L3 + all optional fields | BioTac, next-gen multimodal |
Capability declarations are the core innovation: each adapter declares which of the 14 semantic dimensions it can and cannot annotate. Only supported fields appear in the output. No forced alignment, no data fabrication.
| Sensor | Type | Format | Level |
|---|---|---|---|
| GelSight Mini / DIGIT | Visuo-tactile | .pkl |
L3 |
| Daimon DM-TacClaw | Multimodal | .parquet |
L3 |
| PaXini PXCap | Force array | .h5 |
L2 |
| UniVTAC | Visuo-tactile | .hdf5 |
L3 |
| TacQuad (AnyTouch) | Multi-sensor | directory | L3 |
| VTouch | Visuo-tactile | .h5 |
L3 |
| YCB-Slide | Visuo-tactile | .npy |
L3 |
| Sensor | Type | Connection | Level |
|---|---|---|---|
| PaXini GEN3 | Force array | SDK | L2 |
| Daimon DM-Tac | Visuo-tactile | USB / .avi |
L3 |
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Layer 1: Schema β
β 14 semantic dimensions + Compliance Level L1-L4β
βββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Layer 2: Adapters β
β DataAdapterBase β SensorAdapterBase β
β (7 built-in + community-extensible) β
βββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Layer 3: Downstream β
β Feature derivation Β· Augmentation Β· Export β
β PredictEngine Β· FTP-1 Β· LeRobot Β· RLDS Β· ROS2 β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
- DataAdapterBase β subclass to add file-based sensor support (~30 min)
- SensorAdapterBase β subclass to add real-time hardware support
- Both share the unified export pipeline
| Format | Purpose | Usage |
|---|---|---|
| JSON / CSV | General analysis | data.export("out.json") |
| FTP-1 Zarr | Foundation model training | data.export_ftp1("out.zarr") |
| LeRobot | LeRobot framework | tlabel_to_lerobot(src, dst) |
| RLDS | RLDS/TFDS pipeline | converters.rlds module |
| ROS2 | Robot runtime | Stub (coming soon) |
| Metric | Result |
|---|---|
| Schema | 14 semantic dimensions + Compliance Level (L1βL4) |
| Schema version | v2.1.0 |
| Hard errors across 750K+ observations | 0 |
| Cross-scenario generalization accuracy | +7.93% (p=0.029) |
| Slip-risk detection F1 | +10.35% (p<0.001) |
| Sensors validated | Daimon-Infinity (GelSight) + PaXini PXCap (6D Hall-effect) + DIGIT (visuo-tactile) |
| Document | Description |
|---|---|
| TLabel Format Spec | Complete annotation schema specification |
| Annotation Spec | Annotation methodology and guidelines |
| Design Document | Core design decisions and architecture |
| δΈζζζ‘£ | Chinese version of this README |
TLabel is designed to be extensible. Add your sensor in ~30 minutes:
- Fork contrib/adapter-template/
- Subclass
DataAdapterBaseorSensorAdapterBase - Submit a PR or publish as a standalone package
See CONTRIBUTING.md for details.
TLabel: A Unified Annotation Framework for Cross-Sensor Tactile Manipulation Data
Xi Luo, Sheng Wu (Niuxu Tech)
LaTeX source available in paper/.
TLabel has been validated on three sensors with fundamentally different physics:
| Sensor | Type | Episodes | Tasks | Hard Errors | Compliance Level |
|---|---|---|---|---|---|
| Daimon-Infinity | Vision-based GelSight | 94 | 6 | 0 | L2 |
| PaXini PXCap | 6D Hall-effect array | 15 | 7 | 0 | L2 |
| DIGIT | Visuo-tactile | 12 | 4 | 0 | L2 |
This project is licensed under the MIT License β see LICENSE for details.
The TLabel Format specification is free to implement by anyone. We encourage the community to build adapters for additional sensors.
TLabel builds on insights from the tactile sensing community, including Open X-Embodiment, LeRobot, and OpenTouch.
TouchLabel AI β Tactile Data Annotation Infrastructure
GitHub Β·
PyPI Β·
Discord
Niuxu Tech Β· Hangzhou, China