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 cm为0.852; - 最大 active-hand penetration 为
27.8 mm,仅通过当前≤3 cmdiagnostic 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 mmactive-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 明确联结。