feat(tracking): v0.1.2 双手轨迹回放与 GUI 预览

支持 L20 右手模型身份与严格浮动控制覆盖层,新增完整轨迹受限回放、时间拉伸及可选 GUI 显示。

验证:88 项 CPU/USD 回归、Ruff、格式与独立暂存审查通过。历史 80 倍降速回放完成 2x32000 步;整合后 GUI E2E 和完整 pre-commit 未执行,相关边界见 L20_TRACKING.md。

右手 USD、示教数据、媒体和日志未纳入提交;资产存储及许可仍待确认。保留原控制与安全阈值。
This commit is contained in:
2026-09-14 13:57:57 +08:00
parent 057f4c2cf6
commit 8e7ab5fc76
20 changed files with 2218 additions and 62 deletions
+26
View File
@@ -6,6 +6,7 @@
**当前用途:浮动腕部与全部手指参考关节的轨迹回放,后续用于学习策略。**
本文第1–9节保持左手交付约定;右手接入差异见第10节,不得直接使用左手哈希、限位或拇指联动。
本文是可独立分享的数据交付说明,与当前仓库校验器一致。它不是通用 HDF5 标准,也不是完整 DexSchema。
请先交付 **1 条短样例**,确认坐标、尺度、关节映射后再批量导出。
@@ -215,3 +216,28 @@ export PYTHONPATH="$PWD/source/dex_workbench${PYTHONPATH:+:$PYTHONPATH}"
不是 HDF5 格式要求。合法的静止或局部手指轨迹不应为了满足诊断而添加伪造动作。
仿真实现与已有验证结果另见 [`L20_TRACKING.md`](L20_TRACKING.md)。本文只约定数据交付,不要求数据方运行 Isaac Sim。
## 10. 右手扩展:显式身份,不是左手镜像
本次校验器在 `l20_tracking_v1` 中接受 `hand_side="right"`;其余shape、dtype、坐标和有效帧语义不变。
旧版本校验器仅接受left,读取右数据必须升级本次代码。一个文件不能混合左右手episode。
右手必须使用 [`右手 tracking_manifest.json`](assets/robots/dex_hand/linkerhand_g20_right/tracking_manifest.json),
该清单明确 `hand_side=right`,绑定已检查的右URDF身份。旧无side的左清单仍可读,右清单不得省略side。
左右文件对另一侧清单均拒绝;即使只篡改数据hash/root以匹配另一侧,仍会被side校验拒绝。
- `embodiment="L20"`、`root_link="hand_base_link"` 不变;**hand_side改为right**。
- 右原始转换USD依赖包 `asset_sha256`:
`d38dc5e4d473119b237b86bdd36087788f726abd9f486b1678f4e719d5513098`。
不是右prepared覆盖层哈希,不得复制到不同模型数据。
- 右当前也是21个状态关节;逐项名称与第5节列表一致,但必须仍按**右清单**排序核对,不能假设所有手型如此。
- 右拇指 `thumb_ip=1.03*thumb_mcp`,不是左手1.02;四指 `dip=.89*pip`,offset均0。
- 右 `thumb_cmc_pitch/roll/mcp` 上限分别 `.83/1.39/1.25 rad`,四指pip为`1.75 rad`。
其他值及浮点精确值按右清单 `lower_rad/upper_rad`;不使用文档舍入值放宽限位。
- 右URDF `thumb_cmc_yaw`轴为负Z,USD通过局部关节旋转表达。零位/方向必须按右模型重定向,
不能直接把左轨迹换hand_side/哈希当作右轨迹,也不能简单给全部角度取负。
- 数据样例仍应来自同版右模型。右手初次接入仅验证合成HDF5;后续一个独立绑定的专家参考
已完成80倍慢放回放,见 `L20_TRACKING.md` 第5节;不证明原速或任意专家数据可回放。
给右手数据同事发送本文时,附上同版**右清单**与右模型坐标/映射说明。模型来源、转换设置、
本地使用及发布限制见 [`右手资产说明`](assets/robots/dex_hand/linkerhand_g20_right/README.md)。