跳转至

GRAIL Minimal

最后更新:2026-07-24。

本实验负责一个条件:GRAIL-Min-SMPLX 是否能在不改变 GRAIL 核心 observation/reward/PPO 的前提下,将 G1/SONIC embodiment 替换为 SMPL-X/PHC-X,并完成 current pick–place tracking。当前状态是 fail-closed preregistration,尚无 GPU rollout 或训练结果。

完整 v15 preregistration 和历史 hash/gate 设计归档于 2026-07-24 GRAIL preregistration;本页只维护当前决策、真实 gate 状态和下一步。

目标与假设

假设:冻结 PHC-X 能提供 153D SMPL-X action prior,GRAIL policy 只需学习 65D meta action;task role 由 motion metadata 解析为 active_handactive_support,不保留 upstream hard-coded right_hand/table

唯一实验条件

GRAIL-Min-SMPLX 保留:

  • GRAIL Isaac Lab manager runtime;
  • policy/critic observation term、顺序、future horizon 与 corruption 设置;
  • reward、termination、PPO、rollout horizon 和 motion resampling schedule;
  • two-hand primitive 与 body/hand action composition;
  • target/support object、mass 和 contact semantics。

只允许改变:

  • G1 embodiment → SMPL-X;
  • frozen SONIC controller → frozen PHC-X;
  • hard-coded entity binding → task-driven semantic role;
  • 完成上述替换所必需的 name-based permutation、reference conversion 和 action affine。

E0/E1/P0/P1/S0 只是同一条件进入训练前的顺序 gate,不是额外实验组。

Gate

Gate 证据 当前状态
E0 static/config config diff allowlist、checkpoint/RMS、USD、reference hashes 旧 artifact 因 critical source 变化已失效,需重跑
E1 replay Isaac reference replay,frame 0 与 raw trace 未运行
P0 tensor/PD parity processed target、robot target 与 PHC affine parity 未运行
P1 zero-residual rollout closed-loop transition、22-body MPJPE、limits/collision 未运行
S0 smoke 2 env / 1 iter / 24 steps 被前置 gate 阻断
T0/T1 train 同条件不同 seed 未授权启动

当前代码与测试证据

2026-07-24 12:35(Asia/Shanghai)在 .envs/sonic 复跑定向 suite:

PYTHONPATH=/mnt/data/PhysHSI:/mnt/data/PhysHSI/submodules/GRAIL/imports/SONIC:/mnt/data/PhysHSI/submodules/PHC \
/mnt/data/PhysHSI/.envs/sonic/bin/python -m pytest -q \
  tests/test_grail_motion_resampling.py \
  tests/test_grail_reference.py \
  tests/test_grail_runtime_config_contract.py \
  tests/test_grail_task_roles.py \
  tests/test_grail_pairwise_contact_collector.py \
  tests/test_grail_p0_parity.py

结果为 29 passed, 1 warningtrace_contract.py、E1 replay、P0 parity collector/runner 和 pairwise contact collector 已存在并通过 CPU/unit contract tests;这只证明实现级合同,不证明 Isaac runtime gate 或训练 outcome。

现有静态证据还包括:

  • PHC-X checkpoint/RMS/primitive-0 能在 CPU 完成 2×2026 → 2×153 finite output;
  • converted USD 曾实际加载为 52 bodies / 153 revolute joints;
  • name-set、uniqueness 与 permutation round-trip 曾通过;
  • e0/preflight.json 曾在 11:23 写出 passed=true;此后 trace_contract.py、P0/E1/collector 等 critical source 继续变化,所以该 hash-bound artifact 已按协议失效,不能继续标为 GO。

结果

当前没有可报告的 rollout、reward、completion、human/object tracking 或 contact metric;这些项全部为 Unavailable

结论

  • 已验证: 部分 reference/config/action 静态合同已有实现与测试。
  • 待验证: runtime gate、closed-loop PHC-X parity、smoke 和训练效果。
  • 不能支持: 当前不得写“GRAIL-Min preflight passed”或把它放入 teacher 排名。

待补证据

  1. 重生成 source/hash-bound E0 artifact。
  2. 依次运行 E1、P0、P1;每个 gate 保存独立 raw trace。
  3. gate 全通过后再运行 S0。
  4. S0 成功后才按预注册预算启动 T0/T1。