跳转至

Kinematic Generation

最后更新:2026-07-24。

本实验负责判断 task-first KIMODO/HSI pipeline 是否产出可作为 physics teacher 输入的 canonical motion。当前是单例阶段性证据:接口与 kinematic parity 通过,但 temporal render QA 未完成,因此 case_quality_pass=false

目标与假设

假设:新的 compact pipeline 在不依赖 legacy specialized runner 和中间文件状态总线的前提下,能保留上一版 left-hand cup pick–place 的 timeline、grasp relation 和 body-motion quality。

数据与设置

项目
日期 2026-07-24
Task plan output/auto_experiments/20260705_hsi_generation_task_inputs/task_plan_left.json
Layout data/selected_SAGE10k/e2e_test_scenes/2cdc81db/layout_2cdc81db.json
Dynamic object layout 中的 cup target
Active hand left
Frames 597
Pick / place frame 98 / 568
Candidate 20260724_cup_left_hand_object_interaction_interface_parity_rerun
Reference 20260723_cup_left_hand_object_interaction_v20

比较是 domain/quality equivalence,不要求随机生成过程 bitwise 相同。

复现

PYTHONPATH=/mnt/data/PhysHSI:/mnt/data/PhysHSI/submodules/kimodo \
python tools/run_hsi_generation.py \
  --task-plan output/auto_experiments/20260705_hsi_generation_task_inputs/task_plan_left.json \
  --layout-json data/selected_SAGE10k/e2e_test_scenes/2cdc81db/layout_2cdc81db.json \
  --out-dir output/auto_experiments/<new-run>

运行环境还需要项目指定的 KIMODO/SMPL-X 依赖与模型权重;缺失时应 fail fast,不用默认 motion 代替。

结果

Interface parity

parity_report.json 的所有 general-equivalence gates 均为 true:

  • schema field count 32,candidate/reference 均为 597 frames;
  • interaction frames 与 active hand 一致;
  • pick/place hand pose inheritance、carry rigid relation、body motion quality 通过;
  • place hand–object relation error 为 0.519 mm / 0.246°
  • active-hand ratio <5 cm0.852
  • 最大 active-hand penetration 为 27.8 mm,仅通过当前 ≤3 cm diagnostic gate。

Case quality

validation.json 明确记录:

  • strict_hand_object_audit_pass=true
  • grasp_semantic_gate_pass=true
  • body_freeze_delta_pass=true
  • pick_body_motion_quality_pass=true
  • render_artifact_exists=true
  • temporal_render_qa_pass=false,source 为 pending manual review
  • 因此 case_quality_pass=false,唯一 hard-gate failure 是 temporal render QA。

结论

  • 已验证: compact public interface 能生成 schema/timeline 等价的 canonical artifact;旧 tools/kimodo/legacy/run_kimodo_hoi_pipeline.py 不是当前主入口。
  • 阶段性: 当前 motion 的局部 hand/object 与 body numeric gates 通过。
  • 不能支持: 尚不能宣称该 case 完成最终 kinematic QA,更不能宣称物理 pick–place 成功。
  • 当前推断: 27.8 mm active-hand penetration 对 physics tracker 仍可能过大,应在 grasp/refiner stage 单独处理,而不是被 parity gate 掩盖。

历史失败案例

  • 早期 object attach repair 曾出现“proximity gate 通过但 opposition 为 0”的 false positive,说明单纯距离不能定义 grasp。
  • v14/v20 迭代暴露过 root/object binding、body naturalness 和局部 repair 改写全局 trajectory 的风险。
  • 这些历史诊断保留在 Archive,不作为当前运行说明。

输出路径

output/auto_experiments/20260724_cup_left_hand_object_interaction_interface_parity_rerun/
├── motion.npz
├── pipeline_manifest.json
├── validation.json
├── parity_report.json
└── kinematic_video.mp4

待补证据

  • 完成并记录 temporal render manual review;
  • 在 physics adapter 前冻结 body-shape/coordinate/geometry contract;
  • 对多 object/active-hand/motion case 复验相同接口;
  • 把 penetration diagnostic 与后续 physics gate 明确联结。