Raw HOI Mocap 到可执行轨迹:InterMimic / PhysHOI / SkillMimic 实验报告
状态:实验进行中。本文先固定审计结论、比较协议和已完成校准;正式 scratch 与 shared-sequence 数值将在同一文档持续回填。
1. 目标
本实验暂停 PHC-X action residual 路线,直接比较三种 from-scratch HOI tracker 如何把 raw human-object mocap 变成可物理执行的 rollout:
- 在官方代码、官方 raw 单序列和原生 skeleton/object 上分别训练 InterMimic、PhysHOI、SkillMimic;
- 用 deterministic rollout 测量 human、object、contact、lift/hold 和完整率;
- 把三种方法适配到同一个项目 pre-contact pick clip
[0,219)、相同153DSMPL-X/SAGE physics contract;[68,219)保留为 post-contact reset control; - 选择 shared pick 上最好的方法,再扩展到 full HOI
[0,597); - 在 winner 上比较 full-body direct policy 与 hand/arm-focused adaptation。
原生实验回答“该方法的官方训练闭环是否成立”;只有 shared-sequence 实验能回答“哪一种最适合本项目”。
2. 原生方法审计
| 项目 | InterMimic | PhysHOI | SkillMimic |
|---|---|---|---|
| teacher input single | InterAct-corrected and simulation-packed OMOMO_new/sub2_woodchair_000.pt,[269,591] |
packaged BallPlay/walkpick.pt,[66,331] |
packaged BallPlay-M/pick_40/001_007pickle_pick_000.pt,[281,337] |
| action | direct 153D SMPL-X PD |
direct 153D SMPL-X PD |
direct 156D humanoid PD |
| actor obs | 3198D |
1198D |
902D |
| actor reference | t+1,t+16 完整 HOI、surface relation、contact |
current state + raw t+1 full HOI |
current state + 64D skill condition;无 dense actor reference |
| object actor encoding | reference-simulation pose/velocity error + joint-surface relation | actual object state + next-frame raw object state | actual object state;task由 skill one-hot 表示 |
| reward | rb * ro * rig * rcg |
rb * ro * rig * rcg |
rb * ro * rig * rcg * smoothness |
| object rotation reward | 弱,weight 0.1 |
发布实现关闭 | 发布实现关闭 |
| init | Hybrid reference-state init | Random reference-state init | 60-frame RRSI |
| termination | IET:human/object/interaction/contact catastrophic failure | fall/episode end | fall/clip end |
| explicit physical reference refinement | PSI multi-slot physical buffer | 无 | 无 |
2.0 InterAct offline correction is upstream of InterMimic
“InterMimic 从 raw mocap 训练”必须拆成两层。发布的 OMOMO_new/*.pt 不是未经处理的原始 OMOMO,而是 InterAct pipeline 的 teacher input:先做离线几何修正,再转成 InterMimic 591D tensor,最后才进入 PPO。InterAct 发布代码给出的顺序是:
- full-body HOI correction:联合优化 human root/body/hand 与 object translation/rotation;loss 包含 human-object penetration/contact distance、foot/ground contact、object/body reference regularization、velocity/acceleration smoothness和 hand prior;
- wrist correction:先只优化左右 wrist,再优化 collar/shoulder/elbow/wrist;显式使用 palm-facing、finger-distance balance、shallow hand penetration、reference deviation和 hand-joint velocity/acceleration smoothness;
- hand-pose correction:按 pre-contact → contact → post-contact temporal weights优化 finger pose;使用掌侧 hand vertices减少为了贴近物体而造成的穿插,并联合 contact attraction、penetration、joint-limit/prior、initialization和 temporal smoothness;
interact2mimic.pysimulation packing:生成 SMPL-X MJCF/object URDF,把姿态重算到 simulator skeleton,并从 mesh distance、object是否在地面/静止/自由落体以及 SMPL-X vertex-to-joint assignment构造逐 body 三态 contact labels{-1,0,1};随后写入591Dreference;- InterMimic PPO:在上述 corrected kinematic target上学习 dynamic rollout;PSI 只维护可用于 reset 的实际物理 state slots,并不替代前四步的 kinematic correction。
官方 converter 的 contact 语义也比当前项目 adapter更细。它以约 2 cm 几何阈值和 object dynamics判定 object contact;对每个 body,用 skinning vertex assignment标正接触,并在该 body 全部 vertices 距物体 >10 cm 时标为 -1 forbidden contact。当前项目 adapter只要任一 MANO hand vertex距杯面 <5 cm,就把该手 16 个 wrist/finger bodies全部设为 1,其余为 0,没有 -1。InterMimic 的 hand reward会把正 hand label先压成 any-contact,所以正标签稀疏度不是当前 frame-145 no-lift 的充分解释;但 forbidden/noninteraction contact、release timing和 actor contact-difference observation并不等价。
因此 native woodchair成功证明的是:InterAct offline correction + official packing + InterMimic PPO 闭环成立;它不能单独证明 PPO 能把任意未经 wrist/hand correction 的生成轨迹直接修成稳定 grasp。项目 [0,219) strict run 刻意保留当前 direct packing以测量这道 gap;若其失败,下一条主因果实验不应只继续加 PPO epochs,而应先比较 current Kimodo reference 与 InterAct-style corrected wrist/hand reference,再在完全相同的原版 InterMimic teacher上训练。
2.1 InterMimic
InterMimic 的 actor 每步拼接两个 future horizon。每个 horizon 不只是 human pose 和 object root,还包含 current/reference object error、1024-point object surface 到 human joints 的 interaction representation,以及 reference/actual contact。
Human tracking 不是全身等权:human position reward 使用 exp(-5 * reference interaction distance) 对靠近 object 的关节加权,ankle/toe 仍强制保留稳定权重。这是其同时兼顾 interaction fidelity 与 locomotion/balance 的核心,而不是 hand-only action mask。
PSI 的真实行为是:episode 存活超过约 30 帧,并且由 segment coverage 计算的 adjust_reward > 0.5 后,把实际执行的 root/dof/object segment 写入额外 physical-state slot。这里的 slot 分数不是 PPO task reward 或单独的 contact-promotion score;它主要反映该 rollout segment 离目标 rollout window 末端还有多远。后续用 ref_reward 选择 raw 或 corrected slot作为 episode reset state。必须特别澄清:发布代码的 actor future observation 和 tracking reward 仍读取 raw hoi_data,PSI 不会直接改写成一条新的 dense 591D mocap reference。它是 progressive physical state initialization pool,依赖 policy 先产生局部可行段,不会在 random policy 第一步直接生成完整 physical trajectory。
本次单序列将 rolloutLength 从官方 300 改为 128。原因是 sequence 只有 269 帧;若保持 300,PSI update 条件永远不会触发。这是启用发布机制所需的最小实验配置修改,不改变 actor、reward、PPO 或 action。
2.2 PhysHOI
PhysHOI 从 raw 331D tensor 提取 root、153D dof、52-body positions、object pose/velocity 和 contact。原生 dataFramesScale=1.2 将 25 Hz reference 线性重采样到控制频率。Actor 显式读取下一帧完整 HOI reference,因此是 full-reference direct tracker,而不是只有 reward 看 reference。
Reward 同样为 body、object、interaction graph、contact graph 四组乘积。发布代码把 object orientation error 直接置零,因此其目标是 human/object position、relation 与 contact 可执行性,而不是严格 6D object trajectory reproduction。原生训练使用 Random reference-state init,没有 PSI buffer。
2.3 SkillMimic
SkillMimic 原生 humanoid 有 156D action 和 53 bodies。Low-level actor 读取 current human/object state 与 64D skill condition,不读取 next/future dense reference;但训练 reward 仍逐帧使用 demonstration 的 human/object/interaction/contact reference。因此它是 skill-conditioned imitation policy,不是 reference-free physics optimizer。
原生训练以最长 60-frame RRSI clips 从 281-frame pick sequence 随机取段。发布代码只允许 deterministic state init 从 frame 2 或之后开始;正式评估因此从 source frame 2 运行剩余 279-frame reference,避免把末尾 padding 当成 motion。Project adaptation 在 shared task 中可以显式从 clip frame 0 开始,并把 156D/53-body contract 改到 shared 153D/52-body SMPL-X;这属于必要 skeleton adaptation。
3. 公平比较协议
3.1 Native reproduction
- policy 全部随机初始化,不加载发布 checkpoint;
- 保留每种方法自己的 observation、reward、init、termination 和 physical-refinement 机制;
- GPU1,seed 42,优先 1024 parallel envs;
- 同时记录 PPO environment steps、wall time、peak memory、reward 和 episode length;
- deterministic rollout 保存逐帧 simulated/reference human、object pose、object contact force 和 action。
Native 数据、skeleton、object 和 episode init 不同,所以原生 reward、epoch、fps 不直接跨方法排序。
3.2 Shared project pick
三种 adaptation 统一:
- reference:
left/motion.npz的[0,219),219 frames,包含约 64 帧真实 pre-contact approach;旧[68,219)仅作为 post-contact reset control; - action/asset:
153DSMPL-X PD,同一 SAGE dynamic object 和 scene; - physics、control frequency、seed、parallel envs、PPO sample budget;
- deterministic start eval 和统一 metrics。
只保留三条方法差异:
- InterMimic:
t+1,t+16+ surface/contact relations + PSI/IET; - PhysHOI:full raw
t+1HOI actor reference + Random init,无 PSI; - SkillMimic:current state + skill condition actor,60-frame RRSI,reference 只进 reward。
Object rotation reference 是弱指标,不作 hard termination。核心成功定义为完整运行、形成 reference-required contact、lift、hold、无错误 drop,同时保持 human/arm/hand fidelity 和无 catastrophic fall/launch/penetration。
项目 pick 的 contact 语义必须区分两套信号。任务/阶段计划把 source frame 98(clip-local 30)记作 interaction marker,但 canonical geometry 显示 [68,219) 内左手 MANO 顶点到杯子 mesh 的最近距离全程只有约 0.01--0.17 cm,右手约 28--79 cm;因此 InterMimic 的 geometry-derived contact label 正确地成为“左手 151/151、右手 0/151”。这不是 converter 把 pre-contact 错标为 contact,而是 raw Kimodo reference 已把物体绑定在左手上的数据事实。物体实际 lift >2 cm 从 local frame 48 开始、最大 lift 40.94 cm 在 frame 99。故当前 strict pick run 测的是“从已接触/预抓状态学习 lift 与 hold”,不能把 local frame 30 宣称为几何接触建立时刻;后续若要评估 reach-to-grasp,必须使用真正包含手物分离前缀的 reference,而不是只修改 contact label。
Strict project pick 保留官方 4096 env / rolloutLength=300 / horizon=32 / high-fidelity physics。因为 clip 只有 151 帧,合法 start-time support 退化为 frame 0,PSI slot 不会更新;这是预期的 frame-0 single overfit,而不是配置错误。rolloutLength=300 约束 reference-state initialization/PSI 窗口,PPO 仍按 32-step horizon 更新,不要求 reference 真有 300 帧。
4. 指标
| Metric | 定义 |
|---|---|
| Completion | deterministic rollout 运行帧数 / reference 帧数 |
| Human MPJPE | simulated body points 到 reference 的 mean Euclidean error |
| Arm/hand MPJPE | shoulders/elbows/wrists/finger bodies 的子集误差 |
| DOF RMSE | direct PD dof 与 reference dof 的 RMSE |
| Object position | mean/RMSE/max Euclidean error |
| Object rotation | quaternion geodesic mean/RMSE,只报告、不作主 gate |
| Contact P/R/F1 | |object contact force xy| > 0.1 对 reference contact label |
| Lift/Hold/Drop | reference-active interval 内高度、连续接触与释放状态 |
| Action | abs mean/max、rate、saturation |
| Efficiency | simulation steps、wall time、fps、peak GPU memory |
5. 已完成校准
5.1 InterMimic 发布 checkpoint
发布的 sub2.pth 在同一 native woodchair sequence 上 deterministic evaluation:
- 268/268 steps;
- success 100%;
- human pose error 约
7.79–8.08 cm; - object surface error 约
5.74–6.17 cm; - episode reward 约
150–154。
这证明本地 Isaac Gym、SMPL-X、object data 和发布 runtime 可用,也说明有效 physical teacher 不要求逐帧零误差。
5.2 InterMimic raw/new/retarget reference 差异
对 sub2_woodchair_000:
OMOMO -> OMOMO_new:dof 不变,body position RMSE10.78 cm,root/object position 仅约0.8 mmshift;human contact labels 在43.5%frames 发生变化;OMOMO_new -> OMOMO_retarget:root position RMSE6.37 cm、root rotation mean11.67°、dof RMSE0.314 rad、body position RMSE7.23 cm、object position RMSE3.79 cm、object rotation mean7.10°。
因此“refine”不等于严格复现 raw mocap;它允许显著 pose/object 调整来换取物理可执行性和正确 interaction。
5.3 Scratch smoke
| Method | 真实 scratch smoke | 结果 |
|---|---|---|
| InterMimic | 128 env,5 warm-up epochs | reward 1.12;PSI slot0=269 frames,slot1/2 尚未填充 |
| PhysHOI | 128 env,2 epochs | reward 0.43 -> 0.35,约 900–1000 fps |
| SkillMimic | 128 env,2 epochs | reward 0.44 -> 1.42,约 1175 fps |
Smoke 只验证随机初始化和训练代码,不作为收敛结论。
6. 正式结果
6.1 Native scratch
| Method | Epoch / steps | Wall time | Final train reward | Episode length | Deterministic completion | Human | Obj. pos | Obj. rot | Contact F1 | Lift/hold |
|---|---|---|---|---|---|---|---|---|---|---|
InterMimic, 1024 env / rolloutLength=128 |
200 / 6.55M | 10.70 at epoch 200 |
~43 late-train mean |
88/268, failure |
MPJPE 19.28 cm |
mean 5.13 cm |
mean 5.53° |
0.932 |
no full lift/hold | |
InterMimic strict, 4096 env / rolloutLength=300 |
500 / 65.01M |
~2 h 29 min |
102.12 |
263.23/268 train mean |
268/268, success 100% |
MPJPE 14.54 cm |
mean 7.27 cm |
mean 13.46° |
0.979 |
full pick/lift/place/release |
| PhysHOI | 200 / 6.55M | 1.68 at epoch 200 |
random-start episodes | 42/~79, failure |
MPJPE 26.95 cm |
mean 5.10 cm |
disabled | 0 before contact stage |
no contact/lift | |
| SkillMimic | 200 / 6.55M | 4.83 at epoch 200 |
60-frame RRSI | 116/279, failure |
key-body MPJPE 63.26 cm |
mean 0.83 cm before object motion |
mean 0.05° |
0 before contact stage |
no contact/lift |
三条结果都是真实 scratch,而不是发布 checkpoint。它们只证明 6.55M-sample 小预算不足以完成 native single overfit,不能据此判定官方方法本身失败。特别是 PhysHOI/SkillMimic 的 object error 很小发生在 object 尚未运动的前段,不能解释为 manipulation 成功。
6.1.1 Official-aligned InterMimic single budget audit(已通过)
为隔离“小预算/配置 adaptation”与方法本身,新增 strict single:除 motion directory 只保留 OMOMO_new/sub2_woodchair_000.pt、max_epochs=5000 和编号 checkpoint instrumentation 外,训练配置与官方 high-fidelity train_teacher_new.sh 对齐:
4096 env、episodeLength=300、rolloutLength=300;- Hybrid init
0.1、physicalBufferSize=3; - 官方 observation/reward、4 substeps、8 position iterations、network/PPO/minibatch/seed;
- 每 epoch
4096 x 32 = 131072transitions;5000 epochs 上限为655.36Msamples。
若官方 100k-epoch、27-motion 训练近似均匀采样,每条 motion 平均约获得 4096 x 32 x 100000 / 27 = 485.45M transitions。因此 strict single 的 5000-epoch 上限约为官方 per-motion 平均 sample budget 的 1.35x;但它没有多轨迹带来的 locomotion/contact/lift 辅助 curriculum,样本数相当不保证优化难度相当。
另一个关键代码事实是:woodchair_000 只有 269 帧,小于官方 rolloutLength=300。本地 27 条 sub2 motion 中有 25 条小于 300,只有 woodchair_007=304、woodchair_008=309 大于 300。发布代码对此有两层行为:
cal_cdf()截取到max(1, motion_length-rolloutLength),所以短轨迹只剩 time 0;其 Hybrid initialization 实际退化为 Start,而不是任意 raw-reference frame random start;_update_reference()对全短 batch 直接返回,并再次逐 motion 排除motion_length < rolloutLength,所以短轨迹的 learned PSI slots 不会更新。两条长轨迹也只允许非常靠前的 start range(分别约 0--4、0--9)。
因此该官方 OMOMO_new 配置中的 PSI 对绝大多数轨迹实际近乎休眠;短轨迹主要依靠从 frame 0 的 full-reference PPO,以及 27-motion shared policy 的技能迁移来学习。strict single 测的是“4096-env、frame-0 full rollout 能否 overfit”,不是 progressive PSI curriculum。因而后续必须同时报告:
- strict
rolloutLength=300是否仅靠 frame-0 full-reference PPO 收敛; - 若不收敛,独立的
rolloutLength<=269PSI-enabled 对照,而不能把两者混为同一结果。
运行中 milestone(2026-07-17 epoch 200):seed 8383,累计约 25.69M transitions,train reward 34.48,mean episode length 90.25/268。reference stage audit 显示 frame 47 为左肘首次接触、frame 67 为右腕/右拇指首次接触、frame 74--79 开始 lift、frame 81 左手进入接触、frame 130 达到最大高度;frame 85/87/90 的 reference lift 已分别约为 29.3/37.3/50.3 cm。训练先后跨过右手接触和初始 lift,在约 88--90 帧形成首个平台。相较早期 1024 env / 6.55M 实验约 43 帧的 late-train mean,官方规模在 epoch 200 已把可执行前缀约翻倍,但仍未完成 single overfit。
这个平台给出一个待 trace 验证的 hand/contact 假设:发布代码对 reference-required 的左、右手接触分别累计连续 mismatch,超过 10 帧才 IET;左手 reference contact 从 frame 81 开始,所以约 88--91 帧的失败位置与“未能稳定建立/维持左手接触”高度一致。其他 IET 候选是 human/object surface mean error 超过 0.5 m 或 interaction-graph relative error 超阈值。训练 reward/length 不能区分这些原因,首个 checkpoint 的 deterministic trace 必须同时导出左右手 contact mismatch counter、human/object reset 和 IG reset,才能下结论。
继续训练后该平台被自然突破:epoch 207--214 的 mean length 从 92.93 连续升至 95.52,epoch 237 越过 100,epoch 248 达到 103.06/268(约 31.98M transitions,reward 38.94)。reference frame 100 的物体 lift 已约 87.0 cm,所以它不再只是接触或低高度碰撞式 lift,而是已经进入双手高举阶段。epoch 270 首次越过 frame 110,epoch 299 首次达到 120.02;reference frame 110/120 的 lift 分别约为 100.7/103.8 cm。epoch 327--333 中 6/7 个 mean-length 点稳定在 130.15--130.83,训练 rollout 已覆盖 frame 130 的约 106.5 cm 最大高度。后续新增前缀主要对应物体下降、放置和最终 release。这一曲线支持短项目 clip 先做 strict frame-0 overfit;但 training mean 仍不是 deterministic success。
下降/放置阶段随后快速收敛:epoch 355 mean length 156.59,epoch 365 达到 185.27,此时物体已从最高点回落到接近支撑面;epoch 373--377 从 212.63 连续增至 221.40,跨过约 frame 213 的 reference contact 结束点。因此训练 rollout 已覆盖完整 pick--lift--high hold--place--release transition,剩余约 47 帧主要是 release 后人体与物体稳定。仍需 numbered checkpoint 的 deterministic rollout 才能确认单一 policy mean 也能完整执行,而非仅训练分布中的部分 stochastic episodes。
epoch 500 checkpoint 的 deterministic policy-mean evaluation 最终完整执行 268/268,官方 success rate 100%,episode reward 120.19。统一 trace 指标为 human body MPJPE 14.54 cm、human position RMSE 17.41 cm、object position mean/RMSE/max 7.27/8.35/21.87 cm、object rotation mean 13.46°、object contact P/R/F1 0.960/1.000/0.979。模拟物体最大高度 1.408 m,低于 raw reference 的 1.508 m 约 10 cm,但完整完成 pick--lift--place--release;这正是“物理可执行 refinement 不等于逐帧复制 raw mocap”的实证。末帧 human/object/IG reset 均为 false,左右手 contact mismatch counter 均为 0。训练期 stochastic mean length 仍只有 263.23/268,但 deterministic rollout 完整通过,验证了不能用含探索噪声的训练均值替代 policy-mean gate。
6.2 Shared project pick
| Method | Steps to pass | Completion | Human MPJPE | Arm/hand MPJPE | Obj. pos | Contact F1 | Lift | Hold | Drop |
|---|---|---|---|---|---|---|---|---|---|
| InterMimic adaptation, 200 epochs | not passed | 100/151 valid, terminate at 101 |
19.88 cm |
23.19 cm |
mean 22.65 cm |
1.0, but not sufficient |
2.05 cm vs ref 40.94 cm |
no | yes/failure |
InterMimic strict [68,219), stopped after epoch 1240 |
not passed | best saved checkpoint 101/151 valid-prefix boundary(epoch 1140 terminate at 102) |
21.43 cm |
25.52 cm |
mean 28.33 cm |
terminal mismatch false | 0.70 cm vs同期 ref 40.94 cm |
no | yes/failure |
InterMimic pre-contact [0,219), official-aligned |
training from scratch | epoch 280 screen: terminate at 145 | 12.52 cm |
15.13 cm |
mean 6.20 cm |
binary contact active but insufficient | -0.22 cm vs ref 38.35 cm |
no | failure |
| PhysHOI adaptation | paused at epoch 181 by user request | not evaluated | |||||||
| SkillMimic adaptation | paused before formal run |
6.2.1 Strict project-pick frame-0 convergence audit
为避免含 sigma=0.1 探索噪声的 train mean 掩盖 policy mean,epoch 500 后每 100 epochs 保存并做 1-env deterministic evaluation。Isaac Gym GPU PhysX 跨设备并非 bitwise deterministic;下表全部统一在 GPU 0 重评,不能与早期 GPU 1 的单次终止帧混用。Lift 只统计首次 termination 前的 physics-valid 帧,排除 player 为诊断继续 step 的无效后缀。
| Epoch | Approx. samples | First termination frame | Terminal cause | Human MPJPE | Object pos mean | Valid actual lift | Same-prefix ref lift |
|---|---|---|---|---|---|---|---|
| 500 | 65.54M |
40 | human tracking | 19.19 cm |
9.92 cm |
0.61 cm |
0.12 cm |
| 600 | 78.64M |
80 | human tracking | 23.46 cm |
20.06 cm |
2.21 cm |
38.35 cm |
| 700 | 91.75M |
70 | object tracking | 17.32 cm |
18.32 cm |
4.73 cm |
36.70 cm |
| 800 | 104.86M |
81 | object tracking | 19.52 cm |
25.67 cm |
5.14 cm |
38.35 cm |
| 900 | 117.96M |
31 | human tracking | 20.62 cm |
21.27 cm |
2.89 cm |
0.12 cm |
| 1000 | 131.07M |
43 | human tracking | 23.95 cm |
26.26 cm |
6.07 cm |
0.12 cm |
| 1100 | 144.18M |
34 | human tracking | 20.10 cm |
6.33 cm |
1.88 cm |
0.12 cm |
| 1120 | 146.80M |
98 | object tracking | 21.24 cm |
30.54 cm |
0.62 cm |
40.90 cm |
| 1140 | 149.42M |
102 | object tracking | 21.43 cm |
28.33 cm |
0.70 cm |
40.94 cm |
| 1160 | 152.04M |
97 | object tracking | 19.15 cm |
25.92 cm |
0.53 cm |
40.90 cm |
| 1180 | 154.66M |
96 | object tracking | 20.37 cm |
29.60 cm |
1.38 cm |
40.47 cm |
| 1200 | 157.29M |
84 | object tracking | 18.10 cm |
25.40 cm |
2.30 cm |
38.35 cm |
因此 strict frame-0 初始化本身有效:training stochastic mean 从约 58 帧逐步扩展,epoch 1182 附近达到局部最高 81.5/151;deterministic best 也从 epoch 800 的 termination frame 81 推进到 epoch 1140 的 frame 102。但截至 epoch 1200 尚未 single-case overfit,且 actor mean 非单调。主要失败模式在两者间振荡:一是人体全身 key-body mean error 超过官方 0.5 m IET;二是 1120--1200 密集 checkpoints 已把人体稳定到 84--102 帧,却选择让杯子留在支撑面,实际 lift 只有 0.5--2.3 cm,远落后于同期 38.4--40.9 cm reference,最终触发 object point-cloud IET。epoch 700/900/1000 还出现 reference lift 前过早抬杯,说明策略在搜索 grasp/lift 时序,而不是单纯缺少 frame-randomization。contact mismatch 在所有 terminal frame 均为 false,所以“reference contact 全程为真”没有直接触发 termination,也不能证明抓持成功。
项目 reference 的首步物理一致性明显弱于已通过的官方 woodchair。项目不同 deterministic checkpoints 在 reset 后第一个 physics step 会产生约 200--365 N 物体接触力,杯子的单步位移为 1.4--14.7 cm;其中 epoch 700/800/1000/1100 的首步 object-reference 误差为 11.2/11.6/14.8/13.7 cm。相比之下,官方 woodchair 成功 policy 前两步的 object-reference 误差仅为 0.44/0.93 cm。项目 epoch 500/600/900 能把首步位移压到 1.4--3.8 cm,因此这不是一个固定坐标转换错误,而是 clip-local frame 0 已处于左手–杯子–支撑面接触状态时,首步全身 PD target 对接触冲量高度敏感。评估 trace 直接读到项目杯子的 Isaac Gym 刚体质量为 0.15 kg(官方密度 1000 kg/m³);而 woodchair 网格的体积估计约 4.69 L,同密度下质量约为数 kg。因此同量级接触力对轻杯的加速度大数十倍,这也解释了为什么官方 sigma=0.1 的 153D full-body 探索在杯子接触上更容易产生冲量。官方 woodchair 另外有约 47 帧无手接触前缀,右手和左手接触分别到约 frame 67 和 81 才建立。这些都是当前项目学习难度高于官方 single 的直接证据;它不否定 frame-0 overfit,但若严格长预算仍不通过,“从真正分离的手物状态开始的 lead-in”应作为明确的 reference-preprocessing ablation,而不应把失败只归因于 PPO epoch 不够。
全序列几何重算进一步给出了可复现的 lead-in 定义:左手的 5 cm 接触阈值到 source frame 64 才首次达到;frame 56--66 的手–杯最小距离从 30.22 cm 连续降到 0.10 cm,frame 67/68 均已只有约 0.04 cm。因此当前 [68,219) 仅在几何接触开始 4 帧后 reset,并没有真正的 pre-contact rollout。若 strict 长预算失败,下一个主要 ablation 仍应固定从局部 frame 0 开始,只把 clip 扩为 [0,219),使策略在 64 帧 approach 中逐步建立接触,而不是引入 random start。
符号距离审计进一步证明 frame 68 不只是“很近”:778 个 canonical 左手顶点中有 32 个已在杯子网格内部,最大穿入约 2.29 cm。frame 100/130 则没有手部顶点在杯内,最近顶点仅位于表面外约 0.065/0.091 cm。因此 post-contact control 的 reset 是可量化的几何穿插初始化,这与其首步大冲量一致;pre-contact rollout 不是仅仅增加简单帧,而是避免了不物理的 reset state。
epoch 1220 的 GPU 1 机理筛查(不进入跨 GPU 正式表)进一步验证了 no-lift 局部最优:termination frame 99,实际/reference lift 为 1.60/40.92 cm,但 multiplicative reward 因子前缀均值仍有 rb=0.494、ro=0.742、rig=0.836、rcg=0.534。也就是说,不抬杯时 object 和 interaction-graph 奖励并未立即塌缩;policy 可以通过稳定人体、维持一般接触并延迟 0.5 m object IET 获得局部回报。这不是说要立即改 reward;先保留 pre-contact rollout,检验是否能通过渐进接触跨过该局部最优。
训练监控同时暴露出工程约束:GPU 1 在 epoch 800 后的重新建场中发生一次 PhysX illegal memory access,随后又出现约 156 MB allocator failure;换到空闲 GPU 0 后相同 checkpoint/config 正常续训。该故障不归因于 policy,但后续正式长跑应固定 GPU 0,并将 checkpoint evaluation 固定在同一设备。
6.2.2 Pre-contact [0,219) frame-0 overfit
根据上述证据,[68,219) 续训在 epoch 1240 后停止;已有 checkpoints、trace 和 metrics 完整保留,它的正式定位是“post-contact reset control”。新的项目 pick 主实验改为 source [0,219),从 scratch 训练,仍使用官方 4096 env / rolloutLength=300 / horizon=32 / Hybrid init / high-fidelity physics / reward / observation / PPO。由于 219 帧仍小于 300,所有 episode 仍从 local frame 0 开始,PSI 仍不写入;唯一实验变量是保留 source frame 0--63 的真实 pre-contact approach。通过条件改为完整 deterministic 219/219、接触在 frame 64 附近逐步建立、完成 lift/hold,并且无 human/object/IG/contact IET。
epoch 20 的 GPU 1 早期机理筛查已验证窗口修正生效:reset 后首步杯子位移仅 0.264 cm、接触力 1.28 N,而 post-contact control 常见 11--15 cm / 200--365 N。未收敛 policy 已运行到 source frame 74;terminal 时 human/object/IG reset 均为 false,唯一原因是 reference 在 frame 64 开始要求左手接触后,policy 连续 11 帧未建立接触,触发官方 contact-mismatch IET。这把学习瓶颈从错误的“reset 冲量”转成正确的“approach 后建立 grasp”,与官方 woodchair 先学 locomotion/approach、再跨过手接触阶段的收敛模式一致。该 GPU 1 数字只作机理证据;正式 checkpoint 排名仍固定 GPU 0。
epoch 60 的下一次 deterministic 筛查已推进到 source frame 144/219。左手在 frame 64--66 短暂 mismatch 后,从 frame 67 开始建立并维持接触到 frame 133;随后 reference 手臂/物体进入抬升,策略手臂继续运动但杯子仍留在支撑面,frame 134 起丢失接触,累计 11 帧后 IET。该前缀 actual/reference lift 约为 -0.22/38.35 cm,human/object/IG reset 仍全为 false。因而当前收敛阶段可严格描述为 approach 已学会 -> grasp/contact 已学会 -> load-bearing lift 尚未学会,不再是起始冲量问题。
epoch 80--500 的 deterministic termination长期停在frame 145且actual lift约-0.22 cm,说明policy已形成稳定的“接触但不承载”平台;但epoch 500约65M transitions仍远低于官方训练上限,不能直接把平台归因为finger observation不足。为区分训练预算和representation瓶颈,strict run从同seed 9885 的epoch-500 checkpoint做有上限续训:保持4096 env / rolloutLength=300 / horizon=32 / 3198D observation / 153D action、reward、IET、physics和init不变,保存并评估epoch 600/700/800/900/1000。若termination超过160或actual lift超过2 cm,预算可延长到1500--2000;若epoch 800--1000仍停在145且lift接近0,则停止strict并从头训练interaction_fingertips对照。该顺序不允许直接无监控运行到epoch 5000。
bounded resume 的正式 deterministic milestone统一在GPU 0评估。epoch 600仍在frame 145终止,actual/reference lift为-0.220/38.354 cm,terminal仍是object/kinematic tracking reset;相较epoch 500,human body mean error从10.87 cm降至10.50 cm,left arm/hand mean error从14.45 cm变为14.54 cm。required-contact区间内左手接触body count mean由1.46微增到1.51、max由3增到4,但actual lift完全不变。该结果说明继续训练改善了少量人体和接触覆盖,却尚未跨过承载局部最优;按预注册规则仍继续到epoch 800--1000,而不是在600提前切换representation。
| Bounded epoch | Termination frame | Actual / ref lift | Required left contact bodies mean / max | Human / left-arm-hand mean error | Decision |
|---|---|---|---|---|---|
| 500 | 145 | -0.220 / 38.354 cm |
1.46 / 3 |
10.87 / 14.45 cm |
resume strict |
| 600 | 145 | -0.220 / 38.354 cm |
1.51 / 4 |
10.50 / 14.54 cm |
no breakthrough; continue to 800--1000 |
| 700 | 145 | -0.220 / 38.354 cm |
1.40 / 2 |
10.94 / 15.71 cm |
no breakthrough; regression after epoch 645--650 reward collapse |
| 800 | 145 | -0.220 / 38.354 cm |
2.05 / 4 |
10.04 / 13.97 cm |
contact/human improved but no lift; first 800--1000 plateau point |
| 900 | 145 | -0.220 / 38.354 cm |
1.65 / 4 |
9.98 / 14.11 cm |
no lift; second consecutive 800--1000 plateau point |
| 1000 | 145 | -0.220 / 38.354 cm |
1.49 / 3 |
10.02 / 14.07 cm |
plateau confirmed; stop strict and switch to fingertip ablation |
epoch 645--650 的 stochastic mean reward曾从约55快速降至30.6,随后到epoch 700前恢复至约53--54;但GPU 0 deterministic epoch-700 policy mean相对600仍表现为接触覆盖和human/left-hand tracking退化,termination与lift完全不变。因此该波动不是单纯被训练均值平滑掉的无害噪声。epoch-600 checkpoint保留为bounded-resume当前最佳稳定点;strict训练仍按预注册规则继续到800--1000,800是第一个允许触发“持续平台”停止判断的milestone。
epoch 800时stochastic mean reward已恢复到约56.1,GPU 0 deterministic human和left-arm-hand mean error分别改善到10.04/13.97 cm,required-contact左手body count mean也首次超过2;但termination仍逐帧相同地发生在145,actual lift仍精确为-0.220 cm。这说明更密集的接触仍未变成承载抓取。800记为800--1000连续平台判断的第一个点;仍需900和1000确认,且当前不满足termination >160或actual lift >2 cm的1500--2000扩展条件。
epoch 900时stochastic mean reward约为57.45,GPU 0 deterministic human和left-arm-hand mean error进一步保持在9.98/14.11 cm,required-contact左手body count mean/max为1.65/4,接触区间任一左手body接触率为82.72%。然而termination仍在frame 145,actual lift仍逐位相同为-0.220 cm,terminal仍首先触发object/kinematic tracking reset。900因此是第二个连续平台点:继续优化human/contact coverage没有产生load-bearing grasp;仍等待epoch 1000完成预注册的三点平台判定。
epoch 1000训练正常结束并写出完整checkpoint;末次stochastic mean reward为57.81。GPU 0 deterministic eval仍在frame 145终止,actual/reference lift仍为-0.220/38.354 cm,required-contact左手body count mean/max为1.49/3,human和left-arm-hand mean error为10.02/14.07 cm,任一左手body接触率仍为82.72%。因此800/900/1000构成三个连续且逐帧一致的平台点;没有满足termination >160或actual lift >2 cm的扩展条件。按预注册规则,official-key-body strict run在epoch 1000停止,不延长到1500--2000;下一实验切换为同seed 9885、同reference/PPO/physics/reward/init/IET/full-action的interaction_fingertips单因素对照。
GPU 1 早期筛查的当前阶段性汇总如下;它用于定位收敛阶段,不代替最终 GPU 0 排名:
| Epoch | Deterministic termination | Contact/grasp | Actual / same-prefix ref lift | Human MPJPE | Terminal cause |
|---|---|---|---|---|---|
| 20 | 74 | 未建立;frame 64 起 mismatch | -0.22 / 0.01 cm |
37.09 cm |
contact mismatch 11 frames |
| 60 | 144 | frame 67--133 稳定 | -0.22 / 38.35 cm |
24.72 cm |
contact loss 11 frames |
| 80 | 145 | 接触不再为 terminal 原因 | -0.22 / 38.35 cm |
19.91 cm |
object tracking |
| 100 | 145 | 保持接触,但不承载 | -0.22 / 38.35 cm |
17.24 cm |
object tracking |
| 120 | 145 | 保持接触,但不承载 | -0.22 / 38.35 cm |
16.10 cm |
object tracking |
| 140 | 145 | 保持接触,但不承载 | -0.22 / 38.35 cm |
15.63 cm |
object tracking |
| 160 | 145 | 保持接触,但不承载 | -0.22 / 38.35 cm |
14.97 cm |
object tracking |
| 180 | 145 | 保持接触,但不承载 | -0.22 / 38.35 cm |
14.49 cm |
object tracking |
| 200 | 145 | 保持接触,但不承载 | -0.22 / 38.35 cm |
13.90 cm |
object tracking |
| 220 | 145 | 平均约 1.05 个左手接触体 |
-0.22 / 38.35 cm |
13.52 cm |
object tracking |
| 240 | 145 | 平均 0.90、最多 2 个左手接触体 |
-0.22 / 38.35 cm |
13.04 cm |
object tracking |
| 260 | 145 | 平均 1.21、最多 3 个左手接触体 |
-0.22 / 38.35 cm |
12.74 cm |
object tracking |
| 280 | 145 | 平均 0.86、最多 3 个左手接触体 |
-0.22 / 38.35 cm |
12.52 cm |
object tracking |
epoch 120 前缀内 lower-body / torso-head / left-arm-hand 平均误差分别为 8.25 / 8.59 / 21.33 cm;到 epoch 200,human / left-arm-hand / lower-body 误差继续降为 13.90 / 17.62 / 7.44 cm,但 termination 仍固定在 frame 145,杯子仍无任何正向 lift。因而 100--200 epochs 的 reward 提升主要来自人体/接触前缀精度,误差的确已集中到交互侧手臂与不承载抬升,而不是下肢 locomotion 或躯干姿态全面失败。但当前仍继续官方 full 153D action 到预定 500-epoch gate;只有该设置明确停滞后,才会将 hand/arm-focused action 作为单因素对照。
刚体接触覆盖率解释了为什么“有 contact”仍然不能承载。项目 epoch 200 在 source frame 64--144 内,左手 16 个 wrist/finger bodies 平均只有 1.05 个接触体,最大仅 3,81 帧中只有 63 帧存在任一手部接触。已通过的官方 woodchair policy 在 lift 段 frame 81--130 的左/右手平均接触体数为 5.60/4.16,最大为 9/8。因此项目 policy 当前学到的是单指触碰,而不是具有 force closure 的多点抓持;这比仅看 binary contact F1 更能预测是否可 lift。若 500-epoch full-action gate 仍失败,后续 grasp adaptation 必须报告每手 active contact-body count/coverage,而不能只用“任一接触成立”作成功信号。
代码审计给出了该局部最优的更具体来源。官方 InterMimic keyBodies 只有 21 个非手指 body:actor 的 future position/velocity error、reference interaction-graph error,以及 body-position/IG reward 都只追踪到 wrist,不包含任何 finger segment;future rotation error还显式移除了两侧手指。相比之下,PhysHOI/SkillMimic 的发布 keyBodies 明确包含两手十个 distal fingertips。项目 reference 本身并非缺少包夹几何:source frame 80--140 每帧约有 14--15/16 个左 wrist/finger body center 距离杯面小于 5 cm,其中 7--9 个小于 2 cm;但 epoch 240 rollout 在 source frame 64--144 的左手指平均位置误差约为 20--27 cm,进入 lift 段 source 120--144 后进一步升至 37.3 cm,而 shoulder/elbow 在更早的接触段只有约 5--6 cm。因此瓶颈不是全身 locomotion,也不是 raw grasp 完全不可用,而是官方 InterMimic 对细小单手物体缺少 future fingertip tracking signal。
contact label 也做了反证审计。官方 woodchair 的正 hand labels 通常每手每帧只有 4 个 body,而项目 converter 在 active 段把左手 16 个 body 全标正;但发布 compute_cg_reward() 会先把 reference hand contact 压缩成 any,再用同一个 hand-level flag 比较全部 16 个 actual contacts。因此正标签的稀疏度不会改变 active-hand reward target,不能解释当前失败;项目缺少官方 -1 forbidden-contact 时段会影响非交互/释放约束,但不是 frame 145 无 lift 的直接原因。
若 official-key-body strict run 在 epoch 800--1000 的 bounded gate 仍停滞,下一个单因素对照定为 interaction_fingertips:保持 full 153D action、PPO、physics、reward 公式、initialization、IET 和 reference 不变,仅把 reference-active interaction hand 的五个 distal fingertips 加入 keyBodies。每个新增 key body 在 t+1,t+16 两个 horizon 中增加 position error、reference position、velocity error和 reference IG error共 24D,本例 observation 从 3198D 变为 3318D。这不是 hand-only action mask,而是把 PhysHOI/SkillMimic 已使用的 fingertip key-body signal最小化移植到 InterMimic teacher。
该对照曾在 GPU 1 启动。第一次 seed 由官方 -1 随机解析为 710,在 epoch 15 主动停止,仅保留为不计入结果的启动 pilot;随后用 strict run 的实际 seed 9885 从 scratch 重启,并验证环境 contract 为 3318D obs / 153D action。按用户要求,正式同-seed run 在 epoch 33 中断,保留 epoch 20 checkpoint但不作结果排名;GPU 1 已完全释放。若未来恢复,正式比较仍应共享 reference、seed、4096 env、network family、full action、PPO/physics/reward/init/IET,唯一结构变量是五个 left fingertips 带来的 120D/horizon-pair observation/reward key-body signal。
strict epoch-1000 gate确认失败后,interaction_fingertips正式对照已在GPU 1以全新输出目录从scratch启动:seed 9885、4096 env、rolloutLength=300、horizon 32、clip [0,219)、full 153D action和其余环境/优化配置均与strict相同,唯一结构差异为3318D observation中的五个左手distal fingertips。该run先采用bounded 500 epochs、每100 epochs保存与deterministic评估;epoch 100 checkpoint完整写出时训练mean reward为23.88。GPU 0安全窗口中的deterministic eval在frame 74因contact mismatch终止:reference从frame 64要求左手接触,actual连续11帧没有任何左手body接触;actual lift为-0.220 cm,human/left-arm-hand mean error为17.32/10.85 cm。其object/human/IG tracking reset若独立计算分别到frame 145/173/183才触发,因此100-epoch短前缀不是tracking崩溃,而是新增fingertip任务尚未学会approach后的接触。该点明显弱于strict同阶段已达到的frame-145平台,但不足以否定representation,继续到epoch 200--500观察是否学习曲线只是更慢。
该4096-env fingertip run在epoch 163遇到CUDA OOM:3318D版本常驻约22.52 GiB,compute_ig_reward申请1.22 GiB临时张量时GPU仅余688.75 MiB,同时PyTorch报告3.85 GiB reserved-but-unallocated,故属于新增key-body张量使4096-env配置贴近24GB上限后的allocator fragmentation,而不是policy/physics失败。epoch 101--163没有新checkpoint;正式恢复点仍为epoch 100。仅增加PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128,garbage_collection_threshold:0.8的第一恢复尝试又触发PhysX GPU narrowphase illegal access,说明单靠allocator参数不足。
为避免降低env数引入PPO batch混杂,最终采用数学等价的interaction-graph分块:compute_ig_reward不再一次性构造完整[4096,keyBodies,objectPoints,3]临时张量,而按512个env计算同一组逐env reward/reset reduction再拼接。随机张量回归测试中旧/新reward最大绝对差为0且reset逐项完全相同;4096-env恢复后初始显存从约23.5 GiB降至19.8 GiB,稳定缓存后约22.35 GiB,训练已无故障越过原epoch-163失败点并到达epoch 164。因此该修改只修复内存峰值,不改变observation、reward、IET、PPO、physics或env数量。
fingertip epoch 200 checkpoint完整写出时训练mean reward为34.91。GPU 0 deterministic termination从epoch 100的frame 74推进到113;required-contact区间的左手接触body count mean/max从0/0提高到0.245/2,任一左手body接触率为22.45%,human/left-arm-hand mean error为18.47/8.73 cm。actual lift仍为-0.220 cm,terminal仍由contact mismatch触发;若独立计算,object/human/IG tracking reset分别到frame 145/196/203才出现。该结果尚未优于strict的frame-145 load-bearing平台,但证明新增fingertip任务在100--200 epochs间正从“完全不接触”向部分接触推进,因此继续到epoch 300--500,而不是在200提前判负。
fingertip epoch 300时训练mean reward为39.92,GPU 0 deterministic termination进一步推进到frame 145,追平strict平台。contact mismatch counter最大仅8,已不再触发terminal;首次terminal转为object tracking reset。required-contact左手body count mean/max提高到0.59/4,任一接触率为39.51%;human/left-arm-hand mean error为17.61/10.29 cm。新增key bodies因而显著改善了交互侧手臂/手的局部跟踪并跨过contact IET,但全身误差仍高于strict,接触body均值仍低于strict约1.5--2.0,actual/reference lift仍逐位相同为-0.220/38.354 cm。到300为止它只是用更准确的手部运动重新到达同一个“不承载”平台,仍需400/500判断更长训练能否把局部手指精度转化为多点承载。
fingertip epoch 400时训练mean reward为43.49,deterministic仍在frame 145由object tracking reset终止,actual/reference lift仍为-0.220/38.354 cm。required-contact左手body count mean/max继续提高到0.77/4,任一接触率为45.68%,contact mismatch counter最大降到6;human/left-arm-hand mean error改善到15.23/9.53 cm。因此300--400的额外训练确实提高了手部局部精度与接触覆盖,但没有改变承载结果;继续完成预定epoch 500最终gate,若termination/lift仍逐帧相同,则判定“仅增加distal-fingertip future tracking signal不足以产生force-closure grasp”。
fingertip epoch 500 checkpoint完整写出时训练mean reward为46.11,但deterministic actor mean非单调回退到frame 85并由contact mismatch终止;required-contact左手body count mean/max仅0.095/1、任一接触率9.52%,actual lift仍为-0.220 cm。该短前缀的human/left-arm-hand mean error虽降到10.13/6.18 cm,由于rollout比300/400短60帧,不能直接解释为全clip tracking更优。它更说明高future-fingertip tracking精度没有自动转化为物理接触,actor mean甚至会为位置拟合牺牲接触。bounded对照到此停止,不因训练mean reward继续上升而延长。
| Fingertip epoch | Termination frame | Actual / ref lift | Required left contact bodies mean / max | Human / left-arm-hand mean error | Terminal / interpretation |
|---|---|---|---|---|---|
| 100 | 74 | -0.220 / 0.006 cm |
0.00 / 0 |
17.32 / 10.85 cm |
contact mismatch; no contact learned |
| 200 | 113 | -0.220 / 0.125 cm |
0.24 / 2 |
18.47 / 8.73 cm |
contact mismatch; partial contact |
| 300 | 145 | -0.220 / 38.354 cm |
0.59 / 4 |
17.61 / 10.29 cm |
object tracking; reaches strict plateau |
| 400 | 145 | -0.220 / 38.354 cm |
0.77 / 4 |
15.23 / 9.53 cm |
best fingertip contact/tracking tradeoff, still no lift |
| 500 | 85 | -0.220 / 0.086 cm |
0.095 / 1 |
10.13 / 6.18 cm |
contact mismatch regression; actor mean non-monotonic |
因此该single-case实验已经区分出两个假设。第一,official-key-body strict从500续训到1000仍逐帧停在145,失败不能再简单归因于训练预算不足。第二,加入PhysHOI/SkillMimic式distal-fingertip key-body supervision能改善手部局部tracking并暂时提高接触覆盖,却没有产生load-bearing grasp,说明“缺少fingertip observation/reward”也不是唯一瓶颈。下一步不应继续无上限训练这两条run;应把实验变量移到物理抓取目标本身,例如显式多点接触数量/持续性、接触法向与相对滑移、hand-object relative pose或先做reference grasp/contact geometry refinement,并继续保留human tracking与actual lift作为独立指标。
6.3 Winner [0,597) full HOI
待 shared pick 选定 winner 后填写。
7. Hand/arm-only 分析协议
三种官方方法原生都输出全身 action。InterMimic 通过 interaction-distance reward 自动强调 hands/arms,同时继续约束 ankle/toe 和全身 rotation;它并不是 action-space hand mask。PhysHOI/SkillMimic 也依赖 full-body balance 和 interaction graph。
因此第一轮使用 full action。只有 full-body shared pick 成功后,再做单因素对照:
- full
153Ddirect policy; - policy 仍观察全身,但非 interaction joints 使用 reference PD target,仅让 hand/arm action 由 policy 输出;
- full action + noninteraction-body stronger tracking weight。
比较是否减少搜索空间、是否保持 contact/lift,以及 carry 时 torso/root/balance 是否因此变差。不能仅因 raw lower-body 已较准就预设手臂局部控制一定足够。
8. 当前结论
- InterMimic、PhysHOI、SkillMimic 都是可从 raw demonstration 训练的 policy family;三者必须实际训练,不能只做 reward 静态对照。
- InterMimic 唯一显式维护 learned physical reference pool;PhysHOI 和 SkillMimic 是 policy rollout 本身吸收并修正 reference inconsistency。
- Object rotation 在 PhysHOI/SkillMimic 发布 reward 中关闭,支持本项目弱化不可靠 object orientation reference,但不能忽略 position/contact/lift/hold。
- 200-epoch shared InterMimic 的 contact F1 为 1 但 lift 只有
2.05 cm,证明 contact force 不能单独作为成功条件;必须联合 completion、lift、hold/drop。 - Official-aligned native InterMimic single 已用
65.01Mtransitions 在 epoch 500 deterministic268/268通过,证明 4096-env frame-0 full-reference PPO 在官方 woodchair reference 上可以从 scratch 收敛且不依赖 PSI。 - 相同 strict 方法用于项目
[68,219)后,训练保留至 epoch 1240 并停止;统一 GPU 0 deterministic best 为 epoch 1140 的 termination frame 102,实际 lift 仅0.70 cm,而同期 reference 已抬升40.94 cm。它现在被定义为 post-contact reset control,不再继续消耗预算。 - 项目杯子实际刚体质量只有
0.15 kg,clip-local frame 0 又已经是手–杯–支撑面接触状态;首步200--365 N级接触冲量可导致1.4--14.7 cm单步位移。这是比单纯“预算不够”更具体的难点,也解释了为什么后期 policy mean 会倾向稳定人体并把杯子留在台面。 - 新的项目 pick 主实验已按 source
[0,219)从 scratch 启动:仍是 frame-0 overfit,但保留 64 帧 pre-contact approach;除 reference window 外,InterMimic observation/reward/PPO/physics/init 不变。现在尚不能宣布 shared-project winner;新 pick 和 full HOI 尚未完成。
9. 可复现入口
- InterMimic native runner:
tools/run_intermimic_native_single.py - PhysHOI/SkillMimic native runner:
tools/run_native_hoi_teacher_single.py - deterministic trace summary:
tools/summarize_native_hoi_trace.py - PSI reset-state pool summary:
tools/summarize_intermimic_physical_buffer.py - InterMimic project adapter:
tools/run_intermimic_baseline.py