Scheduled Commit
Browse files
docs/TREX_LEROBOT_V2_FORMAT.md
CHANGED
|
@@ -94,3 +94,22 @@ chunk 规则:LeRobot 标准,`chunks_size=1000`,episode_index // 1000 决
|
|
| 94 |
采集端交付本格式后,跑一遍 track 提取 + 重建即得
|
| 95 |
`TrexTrackForceShardedDataset` 可直接训练的完整数据集
|
| 96 |
(force_only / joint / deform 全部变体通用)。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 94 |
采集端交付本格式后,跑一遍 track 提取 + 重建即得
|
| 95 |
`TrexTrackForceShardedDataset` 可直接训练的完整数据集
|
| 96 |
(force_only / joint / deform 全部变体通用)。
|
| 97 |
+
|
| 98 |
+
## 7. 为 joint force-action refiner(full model)微调采集 teleop 数据的补充要求
|
| 99 |
+
|
| 100 |
+
格式不变(§1–§5),但下列几点是 joint 模型专属的硬要求 / 强建议:
|
| 101 |
+
|
| 102 |
+
| 项 | 要求 | 原因 |
|
| 103 |
+
|---|---|---|
|
| 104 |
+
| `observation.tactile_force` 必须**连续、原始、逐帧** | 每个 30 Hz 视频帧行都写实际传感器值;不做阈值化、去抖、量化、平滑 | 模型把未来 F6 当**连续去噪目标**(τ_f: 1→0),并从原始历史窗学接触动态;任何离散化都直接毁掉监督信号 |
|
| 105 |
+
| 力传感器原生速率 ≥ 视频帧率 | 若传感器快于 30 Hz,行内存该帧时刻的最近样本;建议另存 sidecar `force_raw_{episode}.npz`(原生率 + 自身 timestamp) | loader 按 timestamp 最近邻取 5 Hz 刷新槽;sidecar 便于日后提高触觉率 |
|
| 106 |
+
| `action.eef62_absolute` = **指令目标**,`observation.state_eef62` = **测量值** | teleop 里 action 来自 Manus 重定向 + tracker IK 的下发目标,不是回读的关节 | joint refiner 精修的是"要执行的后缀",指令与测量混淆会把控制延迟学进动作里 |
|
| 107 |
+
| 力与动作时间对齐 | 力样本时间戳 = 该动作被执行时刻的传感器读数(不是下发时刻) | 未来力槽 s > o 的监督值必须是"执行了 action[o:] 之后测到的力" |
|
| 108 |
+
| episode 长度 ≥ 6 s(建议 8–15 s) | 因果窗口需要 3.2 s 动作 + 视频对齐余量,太短的 episode 有效 anchor 极少 | trex_small_force 的 5.3 s episode 每集只有 ~40 个 anchor |
|
| 109 |
+
| 语言标注每集一条 | `annotation.task` 描述具体操作与物体 | cross-attn 文本条件 |
|
| 110 |
+
| **可选**:deform 触觉视频 | 只有训练 deform 变体才需要;joint 模型本身不用 | 记录成本低,建议保留原始流 |
|
| 111 |
+
|
| 112 |
+
**采集端不需要产出**:track(后处理提取)、VQ 码(模型内部计算)、force 历史窗 / 未来槽(loader 按 timestamp 切)、delta-base 动作、任何归一化。
|
| 113 |
+
|
| 114 |
+
**微调建议**:用 `scripts/train/trex_fullmodel_full_training_wan22.sh`,并加
|
| 115 |
+
`action_head_cfg.config.force_future_loss_weight=0.5`(小规模消融验证:λ_f=0.5 手指速度误差 −46%、位置无偏差;λ_f=1.0 会引入手部姿态偏差)。
|