HSI/HOI Physics Teacher Model 基线调研与架构选择方案
日期:2026-07-11
1. 执行结论
我们的下一阶段目标应定义为:
reference HSI/HOI trajectory
+ physical object/scene state
-> reference-conditioned physics teacher
-> physically executable human/object rollout
-> refined expert trajectory and action dataset
当前不能预先确定 teacher 使用 action residual、latent action 还是 direct policy,也不能预先确定 observation 必须同时包含 object、contact 和 scene。下面这些研究提供的是不同、相互独立的控制范式:
- PHC-X 提供已有的 SMPL-X whole-body tracking 与手部 action space。
- HOI-FHLI 提供已开源的 direct SMPL-X human/object physics tracker,用最小的单帧 dense target 和 relation reward 设计作为从头训练基线。
- ResMimic 验证了 frozen general motion tracker + residual policy 的训练范式。
- OmniGrasp 提供 object trajectory observation、pre-grasp/contact 和 object tracking reward。
- MimicManipulator 提供 full-reference HOI tracker、object BPS、future goals 和 phased contact reward。
- ContactMimic 说明 reference keypoints 不能替代显式 contact command,contact 必须同时作为 policy condition 和训练目标。
- WristMimic 说明接触阶段不应盲目追踪每个 finger reference;wrist placement、object tracking 和真实接触结果更重要。
- InterMimic 提供 imperfect reference refinement、contact promotion/penalty、PSI 和 interaction termination。
- RePHO 提供以 pretrained InterMimic 为初始化的 per-sequence physics refinement: adaptive sampling、forward/backward dual training 和 kinematic-reference self-update。对 PhysHSI 而言应复用其 generated-motion→physical-rollout 后端, 不使用视频重建前端。
- GRAIL/SONIC 已实际实现
base latent + 0.1 * residual、object future delta 和 contact-gated grasp;其 object tracking reward 有代码实现,但当前pnp_table配置未启用。 - SUGAR 提供从 kinematic prior 到 physics refiner,再到 teacher/student policy 的整体数据闭环。
- InterPrior 提供最终 state-based motor prior 的直接模板:full-reference expert → masked variational distillation → RL post-training;dynamic pick–place推理时 可只给object future snapshot,不给dense HOI reference。
- TokenHSI、UniHSI和VLM-RMD分别提供variable task token、Chain-of-Contacts和 relative-movement goal/reward表示;它们与InterPrior的motor-prior训练recipe 互补,属于最终student的goal-interface选择。
- UniHSI、TokenHSI 和 VLM-RMD 提供 contact/task/relation 的条件表达,属于 task/scene family,不与 full-reference teacher 混为同一 baseline。
第一轮应按原始算法结构分别实现:
- Frozen PHC-X tracking,当前结果。
- OmniGrasp 原始 object-conditioned latent policy。
- HOI-FHLI direct current-frame human/object tracker。
- ResMimic-style PHC-X action residual,不加入其他方法组件。
- InterMimic-style from-scratch full-reference policy。
- WristMimic-style wrist-guided、finger-reference-free policy。
- 后续再单独评价 ContactMimic、UniHSI 和 TokenHSI 的 contact/task/scene control。
结论的确定性边界:
- Physics rollout、坐标、dynamic object 和统一 evaluation contract 可以先确定。
- Policy parameterization、observation、reward 组合和 pretrained prior 尚未确定,必须通过原样 baseline 比较选择。
- PPO learning rate、并行环境数、每项 reward coefficient 和 curriculum 时长必须通过单轨迹 overfit 实验决定,不能假装存在无需实验的唯一正确值。
- 之前的
frozen PHC-X + residual + object + contact + scene只能记作未验证候选Hybrid-H0,不能提前定义为 Ours。
2. 当前 case 与问题定义
第一条训练 case:
canonical reference:
output/auto_experiments/20260711_hsi_generation_world_pose_fix/left/motion.npz
PHC-X rollout:
output/auto_experiments/20260711_world_pose_fix_tracking/left/phcx_full
该序列共 597 帧,包含 SMPL-X human motion、cup 6D pose trajectory、interaction/support object IDs 和 scene layout。
当前 PHC-X baseline 的验证结果:
| 指标 | 当前值 |
|---|---|
| Human body mean tracking error | 4.21 cm |
| Human body max tracking error | 34.73 cm |
| Cup frame-0 world position error | 0 m |
| Cup initial linear/angular velocity | 0 |
| Cup trajectory mean position error | 2.22 m |
| Cup trajectory max position error | 4.15 m |
| Cup final position error | 3.75 m |
| Cup mean rotation error | 98.5 deg |
这说明坐标、初始化和 human tracking 已经跑通,但 PHC-X policy 不观察 cup,也没有通过手部接触控制 cup。teacher 训练要解决的是 object/contact-aware physics control,而不是再次修 scene transform。
2.1 Kimodo shape asset、humanoid XML 与 reference FK 必须同源
本项目canonical motion的SMPL-X人体不是抽象的“neutral average body”。Kimodo在skinning时读取smplx22/beta.npy,把它作用到SMPLX_NEUTRAL.npz全部shape directions得到shaped v_template,用joint regressor得到55个SMPL-X rest joints,并将其中22个body joints对齐到smplx22/joints.p定义的Kimodo skeleton。因此正确的simulator adaptation是:
Kimodo beta.npy + SMPLX_NEUTRAL.npz + joints.p
│
├─ shaped v_template + rest joints + parents
├─ canonical/reference FK and hand_trans
└─ framework-specific humanoid XML
├─ PHC/OmniGrasp/ResMimic: non-upright PHC convention
└─ InterMimic/PhysHOI/SkillMimic: upright MJCF convention
这里hand_trans不是另一套human target;它是OmniGrasp pre-grasp reward使用的32个wrist/finger link world positions,由reference pose和人体rest-joint offsets做FK得到。若human reference按Kimodo shape计算、physics actor却是beta=0,即使pose axis-angle完全相同,肩宽、臂长、指节位置、脚底高度和collision capsules仍不相同;policy会同时收到互相矛盾的human tracking、pre-grasp与contact几何目标。类似地,用InterMimic官方omomo.xml的body offsets去pack/执行Kimodo motion也会引入同类形状误差。
只关闭二次full_fix并不能解决问题。当前case实测:beta=0人体在no_fix下mesh最低点为+7.951 cm,等价于悬空;Kimodo beta下最低点为+0.040 cm。反过来,只对human root再次应用约6.7 cm的full_fix而不同步object pose和hand_trans,会直接制造同量级的Z向human-object reference错位。正确协议是Kimodo shape + no_fix,而不是beta-zero + no-fix,也不是human-only full-fix。
公共实现位于utils/tracking_adapters/common/body_shape.py。它直接读取Kimodo资产,以兼容Isaac Gym的Python 3.8进程;数值上已经与Kimodo官方SMPLXSkin核对:shaped v_template最大差0、rest joints最大差2.38e-7 m、parents完全一致。reference必须携带body_shape_source/body_shape_hash/beta/v_template,simulation boundary不仅校验字段自洽,还逐项要求canonical Kimodo hash、beta和v_template一致;PHC类task用apply_reference_body_shape()构建physics XML,InterMimic类converter用write_reference_humanoid_xml()生成upright XML并再从该XML读取offsets打包reference。相同shape不要求两个框架XML字节相同,因为upright/root state convention不同。
shape-aligned cup静态审计已通过:reference hand target重新计算误差为0,frame65/98/116最近hand-cup surface距离分别为1.095/0.129/0.136 cm,cup-support clearance为0.399 cm。这说明此前约6.7 cm冲突不是Kimodo motion固有错误,而是shape/height adapter不一致。
实验解释必须据此重置:此前项目OmniGrasp、Strict OmniGrasp、ResMimic和InterMimic/PhysHOI/SkillMimic adapted runs均存在beta-zero或固定官方XML混用,checkpoint不得resume,也不能用于architecture ranking。它们可保留为PPO、reward/contact和runtime plumbing诊断。native官方复现的motion与官方asset内部一致,所以不因这一项目adaptation问题失效;旧PHC-X human-only结果也需在进入统一比较表前用Kimodo-shaped converter重跑。
端到端runtime也已验证:Strict OmniGrasp在Isaac Gym Python 3.8中用reference shaped v_template创建52-body/153-DoF asset,其runtime XML body offsets与公共builder max error为0;修正reset trace的live-view快照问题后,deterministic frame 0的52-body position、root position和153D DOF position相对MotionLib reference均为逐元素0误差;InterMimic用upright shape-aligned XML成功建立3198D/153D环境并完成1-env训练smoke。两次smoke共享shape hash178022fa66b9e6238b99dfe6d04fd24cf7490ac96f6c2f2112ac6e68db1b7a16。
3. 相关方法的准确定位
3.1 方法对比
| 方法 | 主要输入 | 核心目标 | 对当前 teacher 的作用 | 当前实验位置 | 核心代码开源 |
|---|---|---|---|---|---|
| PHC-X | Human state + dense human reference | SMPL-X motion tracking | Frozen human backbone | 已跑通,但不懂 object | 是,PHC-X code/checkpoint |
| HOI-FHLI physics tracker | Current human/object state + current dense human/object target | Direct physical HOI tracking | 最小 direct SMPL-X HOI teacher | 第一轮 B2 | 是,training/inference code 已开源 |
| OmniGrasp | Object geometry/state + future object trajectory + contact | Grasp object and follow trajectory | Object observation/reward baseline | 第一轮 B1,但不保证保留完整 human reference | 是,训练/推理、GRAB conversion 和 object-data loader 已开源 |
| MimicManipulator | Dense human/object future reference + BPS + relation/contact | Precise physical reconstruction of HOI demonstrations | 最接近 full-reference teacher | 论文实现未完整进入 ProtoMotions release | 部分:完整 teacher pipeline 未发布 |
| MaskedManipulator | Sparse masked future body/object goals | Generative long-horizon loco-manipulation | Teacher 训练后的 student 阶段 | 不应作为第一步 | 部分:完整 manipulation pipeline 未发布 |
| ContactMimic | Keypoint trajectory + explicit part-level contact commands | Contact-controllable HOI tracking | 检验 explicit contact input 的价值 | Contact controllability baseline | 否,截至 2026-07-11 未发现代码发布 |
| WristMimic | Body/wrist reference + object/contact outcomes | Finger-agnostic physical manipulation | Grasp supervision 的直接依据 | 第一轮 B5 | 否,截至 2026-07-11 未发现代码发布 |
| InterMimic | Human/object reference + object geometry + contact | Refine imperfect HOI references | Teacher reward、PSI、IET | 第一轮 B4 | 是,训练与评估代码已开源 |
| RePHO | Noisy kinematic HOI + pretrained InterMimic + simulator | Per-sequence policy/reference双向自更新 | 单条KIMODO motion物理refiner | 第一轮新增主候选 | 是,release已拉入submodules/RePHO |
| ResMimic | Frozen GMT action + object-aware residual observation | Efficient loco-manipulation adaptation | Action-residual family | 第一轮 B3 | 是,训练与评估代码已开源 |
| GRAIL/SONIC | Robot/object future + BPS/contact + base latent | Object-aware residual tracking | Residual/latent 实现参考 | G1 embodiment,不能直接替代 PHC-X | 是,GRAIL/GEAR-SONIC code 已开源 |
| CHORD | Human/robot contact wrench support + object/human reference | Long-horizon contact-rich manipulation | Functional contact reward 与 noisy-reference fallback | 论文机制候选;截至 2026-07-21 code soon | 否,项目页仅发布论文/视频 |
| SUGAR | Kinematic HOI prior + privileged physics state | Refine, distill, then generate | 完整 teacher/data 闭环 | 后续完整数据闭环 | 是,代码已开源 |
| PhysHOI | Human/object reference + contact graph | Generic dynamic HOI imitation | Contact graph baseline | 适合 reward ablation | 是,训练/推理代码与示例数据已开源 |
| SkillMimic | Current human/object state + skill condition | Learn reusable interaction skills from demonstrations | Skill-conditioned/contact-graph 对照 | 后续 multi-skill ablation | 是,训练、层级控制与示例数据已开源 |
| InterPrior | Current human/object/contact state + masked sparse goal | 从full-reference expert蒸馏并RL post-train的generative controller | 最终object-goal-only state-based student | teacher选型之后的终极policy | 论文/项目页已发布;本地未接入官方训练代码 |
| UniHSI | Chain-of-Contacts + point cloud/height map | Unified static HSI execution | Contact/scene condition baseline | Task/scene family | 是,完整 controller code 已开源 |
| TokenHSI | Proprioception token + variable task tokens | Multi-skill composition/adaptation | 多 action/multi-object 扩展 | Task/scene family | 是,完整代码与 checkpoint 已开源 |
| VLM-RMD | Root/object targets + human-object relative dynamics | Automated goal/reward design | 通用 relation condition | 后续 task-level teacher | 否,官方标注 Code & Dataset Coming Soon |
| Modular controller blending | Human-only tracker + HOI tracker actions | Compose dynamic locomotion and long contact | Residual policy 的替代 baseline | 后续多技能扩展 | 否,截至 2026-07-11 未发现官方代码 |
“核心代码开源”指能够实现论文主要训练/评估流程的代码,而不是只有项目页、视频或模型结构片段。部分 表示公开仓库存在,但缺少本文需要的完整训练 pipeline 或数据处理链。
3.2 OmniGrasp
官方论文与代码:
- OmniGrasp paper
- 本地代码:
submodules/Omnigrasp - 核心环境:
submodules/Omnigrasp/phc/env/tasks/humanoid_omnigrasp.py
OmniGrasp 的目标不是逐帧复现一条完整 human HOI motion,而是让 humanoid 抓住给定 object,并使 object 跟随目标 trajectory。其 policy condition 包含:
- current humanoid proprioception;
- current object position/orientation;current velocity 通过 future velocity delta 参与;
- multi-future object trajectory;
- hand/finger to object relative position;
- contact sensor state;
- object identity/shape code。
其 object trajectory 不是以 absolute future pose 直接输入。对每个 future sample tau,compute_grab_observations 使用相对当前 simulated object 的 15D error:
delta object position 3
delta object rotation 6 relative quaternion -> tan-norm 6D
delta linear velocity 3
delta angular velocity 3
per-future sample 15
position/velocity 均转到 current humanoid root-heading frame;rotation 先计算 future reference 与 current simulated object 的 relative rotation,再做 heading-frame change of basis。官方训练设置 K=20,因此 future trajectory block 为 300D。除此之外,actor 还读取 current object root-relative position/rotation 9D、10 个 fingertips 到 object 的向量 30D、contact-force sensors 3F 和 object code 1D。这里的 current simulated velocity 出现在每个 future velocity delta 中,不另算独立 6D current-velocity block。
PULSE-X/PHC latent 是 OmniGrasp 的 action/motion-prior parameterization,不是 object-conditioned observation 本身。
本地两个 checkpoint 角色不同:pulse_x_omnigrasp/Humanoid.pth 是输出 153D low-level humanoid action 的 PULSE-X VAE prior/decoder;omnigrasp_neurips_grab/Humanoid.pth 是输出 48D latent action 的已训练 OmniGrasp task policy。直接 inference 需要两者;per-reference overfit 可以只保留 frozen PULSE-X prior,重新训练 task policy。GRAB-style PKL 只是两种路径共用的 reference/object 数据格式。
其 object reward 包含 position、rotation、linear velocity、angular velocity tracking,并用有效接触 gate。pre-grasp 阶段用 reference hand pose 引导接近 object。
对 PhysHSI 的价值:
- 它是最直接的 SMPL-X + dexterous hand + dynamic object 可训练 baseline。
- 它证明 object future delta 和 contact-gated object tracking 可以在 SMPL-X humanoid 上工作。
- 它不应成为唯一 teacher,因为只追 object trajectory 可能生成与 canonical human reference 不同的 body strategy。
3.3 MimicManipulator 与 MaskedManipulator
官方论文:MaskedManipulator
两者是清晰的两阶段关系:
MimicManipulator:
dense human/object reference -> full-reference physics tracker
MaskedManipulator:
sparse masked goals -> distill MimicManipulator actions
MimicManipulator observation 包含:
- humanoid proprioception;
- object pose/velocity/contact;
- 每个 body part 到 object surface 的向量;
- object BPS shape representation;
- normalized future human/object pose at
K={1, 30}。
其 reward 使用 multiplicative exponential structure,覆盖:
- human translation/rotation tracking;
- object translation/rotation tracking;
- energy/jitter;
- human-object interaction/penetration;
- approach、maintain contact、release 三阶段 contact guidance。
这比 OmniGrasp 更接近我们的 teacher 定义。MaskedManipulator 则应放在 teacher 成功之后,用 teacher rollout/action 做 DAgger distillation,并逐步 mask dense reference。
目前 ProtoMotions 官方 issue 明确说明 MaskedManipulator 的完整 observation/reward pipeline 尚未全部进入公开 release。因此第一版不能假设可以直接从 ProtoMotions import 一个现成 MaskedManipulator trainer。
3.4 ContactMimic 与 WristMimic
这两项工作发表于 2026-07,提出两条需要独立验证的 grasp supervision 假设:
- ContactMimic 同时跟踪 keypoint trajectory 与 part-level binary contact command。其核心结论是:同一组近似 keypoints 可以对应接触或不接触,只有位置跟踪不能保证 sit、push、wipe 或 grasp 的物理语义。它还使用 contact-following reward 和 trajectory augmentation,打破“靠动作外形猜 contact”的捷径。
- WristMimic 将 contact-free body/wrist tracking 与 contact-rich finger control 分开。body 和 wrist 继续追踪 kinematic reference;fingers 不被不可靠的人手逐关节姿态锁死,而由 object tracking 与 contact outcome 学出抓取动作。
因此需要分别验证两条假设,而不是立即写入统一 teacher:
- ContactMimic-style actor 输入一个 binary reference contact-label map;
1/0分别要求产生/抑制接触,不额外构造desired和undesired两个通道。 - WristMimic-style policy 在整个序列都不提供 finger pose target;body/wrist 追踪 reference,finger 由 object/contact outcome 学习。Pre-grasp finger prior 若要测试,必须作为额外 ablation,不能写成 WristMimic 原始设计。
若第一条假设成立,part-object contact command 才进一步扩展到 sit、push、pull、kick、lean 和 support contact。
3.5 InterMimic
官方论文与代码:
- InterMimic paper
- InterMimic repository
- 本地 observation 实现:
submodules/InterMimic/isaacgym/src/intermimic/env/tasks/intermimic.py
InterMimic 的 teacher 阶段就是 reference HOI physics refinement。它最值得复用的是:
- human pose/rotation tracking;
- object pose/rotation tracking;
- joint-to-object surface relation;
- contact promotion、contact penalty 和 neutral region;
- hand-specific contact recovery;
- human/object acceleration 和 contact impulse regularization;
- Physical State Initialization, PSI;
- Interaction Early Termination, IET。
InterMimic 的 object reference encoding 与 OmniGrasp 不同。发布的 SMPL-X teacher MLP 不使用 K=20 dense window,而在每个 control step 拼接 tau in {t+1, t+16} 两个 future observation;数据为 30 Hz,对应约 0.033 s 和 0.533 s。每个 horizon 的 direct object block 为 21D:
current simulated object linear velocity, root-heading local 3
current simulated object angular velocity, root-heading local 3
reference-simulation position error 3
reference-simulation relative rotation, tan-norm 6D 6
reference-simulation linear-velocity error 3
reference-simulation angular-velocity error 3
per-horizon direct object block 21
代码虽然计算了 current/ref object 的 root-relative pose,但没有把二者作为额外 absolute pose block 拼入 actor;current object pose 主要通过 reference-simulation pose error 和 interaction geometry 表达。其 rotation error 方向也不同于 OmniGrasp:发布代码使用 inverse(R_ref) * R_sim,随后做 heading-frame change of basis;OmniGrasp 使用 R_ref * inverse(R_sim)。
每个 horizon 还单独拼入 current joint-to-object surface encoding 3J_all,以及 key-body reference/current interaction-encoding error 3J_key。若最近表面向量为 d,实际编码为:
actor 读取所有 body 的 g(d_sim) 和 key bodies 的 g(d_ref)-g(d_sim),不是 raw surface vectors。官方 SMPL-X 配置 J_all=52、J_key=21,所以 relation block 是 156+63=219D/horizon;reference/actual contact 则位于 human observation block。不能把这套 21D + relation 简写成 OmniGrasp 的 15D future object。
其 reward 将各项 cost 放入一个 exponential product:
IET 额外检查 object reference deviation、joint-object relation deviation,以及 required contact 连续丢失。这些规则非常适合我们的 single-trajectory overfit。
InterMimic 是 full policy from scratch,训练成本可能高于 frozen-PHC-X residual,但其精度和稳定性必须实测。它是独立 control family,不只是 reward 参考。
3.6 HOI-FHLI physics tracker
官方论文与代码:
- HOI-FHLI paper
- 本地代码:
submodules/hoifhli_release/physics_tracking
HOI-FHLI 公开的 physics tracker 是从头训练的 direct PPO position-control policy。它将所有 human/object rigid links 转到当前 root-heading frame,actor 输入为:
current human/object state = position 3 + quaternion 4 + linear velocity 3 + angular velocity 3
current reference target = position 3 + quaternion 4
actor observation = 20 * number_of_human_and_object_links
发布的 humanoid 有 62 个 links。单 object 时共 63 links,observation 为 1260D;官方 seq_1 四 object 示例共 66 links,observation 为 1320D。多 object 示例会 mask 非当前 object 的 reference target,但当前 physics state 仍在 observation 中。
Reward 跟踪 human/object position 和 orientation,hand/finger relation、object-frame body relation 与 acceleration smoothness,并对 object deviation 和 grasp relation failure 做 early termination。它不输入 BPS、height map、显式 contact label 或 pretrained motion prior。
3.7 ResMimic
官方论文与代码:
- ResMimic paper
- 本地代码:
submodules/ResMimic
本地实现明确执行:
base_actions = frozen_base_policy(base_obs)
final_actions = residual_policy(full_obs) + base_actions
并使用 near-zero final layer、object point-cloud tracking reward、contact reward 和 virtual object controller curriculum。
这与当前需求最一致。区别只是 ResMimic 面向 G1,而我们将 base policy 换成 PHC-X/SMPL-X,并保留 153-DoF hand action。
3.8 GRAIL/SONIC
本地代码:
submodules/GRAIL/docs/source/tracking.mdsubmodules/GRAIL/imports/SONIC/gear_sonic/config/exp/manager/universal_token/hoi/pnp_table.yamlsubmodules/GRAIL/imports/SONIC/gear_sonic/envs/manager_env/mdp/observations.pysubmodules/GRAIL/imports/SONIC/gear_sonic/envs/manager_env/mdp/rewards.py
GRAIL/SONIC 已实现:
- frozen manipulation base model;
pre_quantizationlatent residual;- residual scale
0.1; - current object and support state;
- future object position/orientation delta;
- future body reference;
- hand-object transform;
- fingertip force;
- object shape/BPS;
- contact-label-gated grasp reward;
- thumb/finger opposition reward;
- OmniGrasp-style object tracking reward implementation;
- residual and full-latent rate penalties。
这些代码证明 residual + object future + contact 的组合不是猜测;但具体 pnp_table.yaml 将 OmniGrasp-style object tracking reward 权重设为 0.0,因此只能说实现存在,不能宣称该配置同时验证了该 reward。其 embodiment 和 pretrained base 是 G1/SONIC,不是 PHC-X/SMPL-X。我们应该对齐算法结构和 ablation,而不是让新 pipeline runtime import GRAIL。
3.8.1 GRAIL 的 target-attributed contact
GRAIL 最值得当前项目借鉴的并不是“只要手上有 contact force 就认为抓到物体”,而是通过 Isaac Lab filtered contact sensor 显式区分接触对象:
| Sensor / reward | 过滤的 actor pair | 作用 |
|---|---|---|
object_to_hand_contact_sensor |
Object → configured fingertip links | 判断每根目标手指是否真正接触目标物体;用于 grasp coverage 和 object-tracking gate |
table_to_hand_contact_sensor |
Table → configured hand links | 单独识别并惩罚手压桌面;不得计入 object grasp |
object_tracking_reward 的实现为:
reward_grasp 则读取同一个 Object→Finger force_matrix_w,逐 finger link 以约 0.1 N 阈值计数,并可由 reference contact label 门控。GRAIL 还提供 finger-direction/opposition、reference contact-center 和独立的 hand-table contact penalty。关键点是这些项使用 pair-filtered force_matrix_w,而不是某个 hand body 对所有碰撞体的 aggregate net_forces_w;因此 finger 压到桌面不会伪装成 finger-object contact。
必须保留配置层面的限定:GRAIL 的四个 release config 并不采用同一 object reward 设置。
| GRAIL release config | object_tracking_reward.weight |
说明 |
|---|---|---|
pnp_table |
0.0 |
不给 dense object-tracking 正奖励;依赖 human/body tracking、reference-label-gated multi-finger grasp、finger direction/contact center,以及 object_pos_deviation > 0.1 m 的 early termination 和 termination penalty 形成硬约束 |
pnp_ground |
20 |
启用 contact-gated object position/orientation tracking;resolved config 中 w_ov=w_oav=0 |
advanced_manip_table |
20 |
启用 contact-gated object position/orientation tracking,同时保留独立 hand-table penalty;继承项中 w_ov=w_oav=0 |
advanced_manip_ground |
20 |
启用 contact-gated object position/orientation tracking;继承项中 w_ov=w_oav=0 |
因此,pnp_table=0 不表示搬运物体时没有 object-reference 约束:object future/delta 仍是 policy observation,物体偏离 reference 10 cm 会直接终止 episode;policy 必须建立目标物体接触并随 human reference 搬运,才能持续获得 human/grasp reward。它只是把 object trajectory 从 dense positive reward 改成了 survival/termination constraint。代码和 release config 没有说明为什么该 sweep 选择这种权重,不能把具体原因写成事实。对需要更准确物体轨迹的 advanced manipulation,GRAIL 确实重新开启了该 reward。
对本项目而言,GRAIL 支持两个彼此独立的结论:第一,目标接触和 support 接触必须分别归因;第二,是否启用 dense object tracking 应按 reference 可靠性做 ablation,而不是与 contact sensor 的选择绑定。我们应该借鉴结构,不照搬某一个 release config 的全部权重。
3.9 SUGAR
官方论文与代码:
- SUGAR paper
- 本地代码:
submodules/SUGAR
SUGAR 的三层结构是:
kinematic prior
-> privileged physics refiner
-> refined demonstrations
-> command tracker
-> closed-loop tracker rollouts
-> state-based command generator
SUGAR 的 object observation 必须按阶段区分,不能用一个统一公式概括:
- Privileged physics refiner 的 actor/critic 都读取 actual object state 和 future object reference。actual object state 在 current robot anchor frame 中表示为 position
3D、rotation-matrix first two columns6D、linear velocity3D、angular velocity3D,共15D。future reference 默认K=8、frame offsets 为{0,...,7};对发布的50 Hz数据覆盖当前帧至约0.14 s:future position3D和 orientation6D转到 current simulated object frame;future linear/angular velocity6D则转到 current robot anchor frame,但不减 current simulated velocity。因此它虽然也是15D/sample,语义并不等于 OmniGrasp 的完整 reference-simulation delta。object-related block 共15 + 8×15 = 135D。 - Distilled command tracker 的 actor 不读取上述 future object block,只读取 actual object pose
9D,再结合 reference joint position、root velocity、contact label 和 proprioceptive history;完整 actual object velocity/future reference 留在 privileged critic/teacher observation。 - Deployment inference tracker 读取 actual object pose
9D和 generator 输出的36Dcommand。generator 自身以 actual object pose9D、robot state,以及配置启用时的 target object pose9D为条件;因此“inference 不读 motion reference”不等于“不读 object state/goal”。
对应代码分别位于:
submodules/SUGAR/source/sugar_rl/sugar_rl/tasks/locomanip/robots/g129dof/train_refiner/base_refiner_env_cfg.py;submodules/SUGAR/source/sugar_rl/sugar_rl/tasks/locomanip/robots/g129dof/train_tracker/base_tracker_env_cfg.py;submodules/SUGAR/source/sugar_rl/sugar_rl/tasks/locomanip/robots/g129dof/inference/base_inference_env_cfg.py;submodules/SUGAR/source/sugar_rl/sugar_rl/tasks/locomanip/mdp/observations.py。
它适合定义我们最终的数据闭环,但第一条 overfit 只需要 refiner。SUGAR 的 progressive state pool 与 InterMimic PSI 可在训练中后期使用。command tracker/generator 不应在 teacher 尚未成功时提前实现。
3.10 UniHSI、TokenHSI 与 VLM-RMD
UniHSI 用 Chain-of-Contacts 统一表达 body joint 到 scene/object part 的 contact/non-contact 目标,并加入 local height map。它适合 static HSI 和 task planning,但 contact point goal 对动态 object 的 temporal dynamics 表达不足。
TokenHSI 将 proprioception 和不同 task observation 分别编码成 token,再通过 mask 组合技能。其 foundational object observation 使用 target、object position/6D rotation/velocity 和 bbox corners;terrain/long-horizon adaptation 再加入 height map tokenizer,并没有使用 BPS。它适合后续多 action、多 object 和 optional condition,但 single-trajectory teacher 首版使用 MLP 更容易验证。
VLM-RMD 将 human-object interaction 表达为 body part 与 object part 的 relative position/velocity trend,并自动构造 root target、object target 和 relation reward。它对 push、pull、open、sit 等不依赖 grasp 的 interaction 很有价值。对于已有 dense reference 的 teacher,RMD 应由 reference/contact 自动导出,不需要在 RL loop 内调用 VLM。
3.11 CHORD:Contact Wrench Guidance from Human Demonstration
官方资料:
CHORD 不是 grasp-keyframe generator,也不是直接求解单帧手型的 differentiable force-closure optimizer;它是在 Isaac Lab 中训练 long-horizon dexterous manipulation policy 的 RL framework。其关键贡献是把 human demonstration 与 robot rollout 的接触都转换成 object-centric feasible wrench geometry,比较“这些接触能让物体怎样运动”,而不是只比较 contact position。
对 object part k,CHORD 在 object frame 中使用 contact position p_i 与 surface normal n_i,把 Coulomb friction cone 离散成 d 条单位 edge forces。每条 edge force 形成 primitive wrench:
它不直接逐列比较 human/robot W,而是在预采样的 6D unit directions B 上计算 support function:
full CWS reward 让 robot support sigma_r,k 落在 human support [(1-beta)sigma_h,k, (1+beta)sigma_h,k] 的相对容差带内,并额外惩罚 reference 不存在但 rollout 出现的 unintended contact,以及 reference 存在但 rollout 缺失的 missed contact。这个定义同时编码 contact normal、moment arm、可施力方向和诱导 torque,因此比 contact-point distance 更接近 functional interaction;它也能表达 push、slide、lever 等不满足 force closure 的阶段。
CHORD 还定义 reduced force-closure reward:不再匹配 noisy human wrench,而是统计 robot contact 对各个 wrench-space basis direction 是否具有超过 epsilon 的正 support。论文将其用于第三视角 whole-body reconstruction 等 finger/contact 不可靠的 reference;作者明确报告在极高 contact noise 下,force-closure guidance 可能优于错误的 full CWS matching,但会降低 dexterity,因为它偏向稳定 grasp 而非忠实复现 reference interaction。
训练配方不能只归因于一个 reward。CHORD 同时使用:
r_task + r_imit + r_contact;- virtual object controller(VOC)curriculum;
- reference-trajectory arbitrary-state reset,并在 reset 后保持 VOC 全开
20steps; - 从 human wrench matrix 采样 task-aligned disturbance;
- retargeted motion prior 上的 residual action。
双手 robot-hand policy 的 residual scale 为 wrist position 0.05 m、wrist orientation 0.15 rad、finger joints 0.15 rad。whole-body extension 则在 pretrained whole-body controller 上加入 joint-position residual,non-finger/finger scales 分别为 0.5/0.15;whole-body actor 增加 future anchor/end-effector/joint reference,却删除 contact observation。因而 CHORD 证明了“wrench reward 可以指导 residual whole-body manipulation”,但不能把其成功简化为“在任意 PPO 上新增一个 loss 即可”。
论文证据包括:
box grab:CWS0.702+-0.257,position-only0.334+-0.141,no-contact0.384+-0.206;mixer use:CWS0.894+-0.023,position-only0.624+-0.166,no-contact0.423+-0.273;- 12 个 hand-only-to-whole-body tasks:CWS overall
0.925+-0.104,position-only0.217+-0.333; - 1,831 runs 上 normalized CWS 与 completion ratio 的 Pearson correlation 约
0.80,各 dataset 为0.76--0.89。
这些结果均来自其完整 RL/VOC/reset recipe,reward 对照保持其他非 contact terms 相同;它们支持“contact position 不足”,但不是本项目 SMPL-X 环境中的直接复现。CHORD 的 success 也较宽松:object position/rotation deviation 超过 15 cm/40 deg 才终止,completion ratio 大于 0.7 才计 task success。这与“reference 是功能指导、不是逐帧 ground truth”的立场一致。
CHORD benchmark 的 source contact preprocessing 也不能直接照搬为本项目 exact geometry 标准:其 HOT3D contact 可由 fingertip-object distance <2 cm 检出并桥接最多 15 帧;retargeted sequence 的 hand-object penetration gate 为 2 cm,高度 concave object 还会跳过 convex-hull penetration check。我们仍需保留 actual triangle mesh、毫米级 penetration 与 target-attributed contact audit。
对本项目的直接启发分两层:
- 单帧 grasp keyframe:借用 friction-cone primitive wrench、anti-gravity required wrench 和 canonical force/torque support 作只读 functional gate,并在校准后才考虑 differentiable refinement loss。CHORD full CWS 不适用于没有可靠 temporal contact reference 的独立 keyframe。
- 完整 HOI physics teacher:把 binary
finger touched object或 contact-position reward升级为 object-centric wrench-support reward。若 KIMODO/third-person finger contact可靠,可比较 rollout 与 reference CWS;若 reference finger/contact noisy,则优先 reduced force-closure support,不应强迫 policy 匹配错误接触位置。
计算 W 的 simulation contact 必须来自目标 object 的 contact position/normal 或语义等价的 pair-attributed query。当前 Isaac Gym 的 aggregate body force + target proximity 只能作为近似 attribution,不能声称已经等价实现 CHORD。正式对照还必须保持 VOC/reset/curriculum固定,才能隔离 binary contact、position-only、reduced FC 和 full CWS 的差异。
截至 2026-07-21,NVIDIA 项目页仍标注 Code soon。因此 CHORD 当前属于论文公式驱动的机制候选,不得登记为已经本地复现的开源 baseline。
3.12 其他相关 baseline 的位置
- PhysHOI 和 SkillMimic 的 contact graph 适合做 relation/contact reward ablation,但当前 cup teacher 已有更直接的 OmniGrasp、InterMimic 和 ContactMimic 依据。
- InsActor、TokenHSI 和 VLM-RMD 主要解决 instruction/task control 或技能组合,不是 dense-reference physics refinement 的首选 teacher。
- 2026 年的 modular-controller 方法通过混合 human-only 与 HOI imitation controllers 获得动态长时交互。它可作为 residual/direct policy 之外的结构性替代,但需要先训练多个 experts,因此不进入第一轮 B0-B5。
4. 候选 Observation 组件
以下表格只比较 actor observation;critic privileged state、reward-only labels 和 simulator internal state 不计入 actor input。
4.1 维度记号
| 记号 | 含义 | 本文已确认的取值 |
|---|---|---|
D_self |
方法自己的 humanoid proprioception | 方法相关 |
N |
Actuated joints/DoFs 数量 | ContactMimic G1: 29 |
J |
Human keypoints/body links 数量 | UniHSI: 15; WristMimic/InterMimic SMPL-X body nodes: 52 |
J_cf |
有 kinematic target 的 contact-free joints | WristMimic: 21 |
J_ig |
Interaction-graph body nodes | WristMimic: 52 |
K |
Future reference samples 数量 | OmniGrasp official train: 20; WristMimic: 论文未披露固定值 |
C |
Binary contact labels 数量 | WristMimic: 23; ContactMimic: 按 robot-body/object-part pair 数决定 |
F |
Contact-force sensor links 数量 | OmniGrasp official train: 30 |
P |
BPS/fixed surface shape feature 维度 | 随 BPS 采样配置变化,未给定统一值 |
L |
Square local height-map 边长 | UniHSI: 9 (81 dims); GRAIL terrain-aware: 11 (121 dims); ProtoMotions SMPL terrain tracker / original MaskedMimic: 16 (256 dims); TokenHSI terrain adaptation: 32 (1024 dims) |
T |
Enabled task tokens 数量 | TokenHSI: 按当前启用的 task heads 决定 |
常用几何块:
object pose = position 3 + rotation 6D 6 = 9
object velocity = linear 3 + angular 3 = 6
current dynamic object = 9 + 6 = 15
future object per sample = 15
body-to-object vectors = 3J
binary contact map = C
vector contact forces = 3F
local height map = L²
4.2 Actor 输入组件对比
✓ 表示原方法默认输入;Opt. 表示配置可选;Task 表示仅相应 task token 启用;– 表示不输入。
| Method | Self state | Human ref. | Current object | Object ref. | Geometry | Human-object relation | Contact target | Actual contact | Local scene | Base action as input |
|---|---|---|---|---|---|---|---|---|---|---|
| PHC-X | ✓ | Dense | – | – | – | – | – | – | – | – |
| HOI-FHLI tracker | Current human links | Current dense pose | Current rigid state | Current dense pose | – | Implicit in link states | – | – | – | – |
| ProtoMotions SMPL terrain tracker | ✓ | Dense | – | – | – | – | – | – | 16×16 height map |
– |
| MaskedMimic (original) | ✓ | Masked future | – | – | – | – | – | – | 16×16 projected height map |
– |
| ResMimic | ✓ | Base tracker | Current pose 7D |
– | – | – | – | – | – | – |
| OmniGrasp | ✓ | – by default | ✓ | Dense future | Object code/BPS | Fingertip-object | – | Force sensors | – | – |
| InterMimic | ✓ | Sparse future t+1,t+16 |
Via delta/relation | Sparse future t+1,t+16 |
Surface geometry | Encoded joint-object surface relation | Reference contact | ✓ | – | – |
| WristMimic | ✓ | Body/wrist future | ✓ | Dense future | Surface geometry | 3J_ig graph |
23 labels | 52 body contacts | – | – |
| MimicManipulator | ✓ | Dense future | ✓ | Dense future | BPS | Body-surface vectors | Reference contact | ✓ | – | – |
| ContactMimic | ✓ | Current keypoints | – | – | – | – | One binary map | – | – | – |
| UniHSI | ✓ | – | Target object | – | Target points | Joint-target vectors | CoC contact | – | L² height map |
– |
| TokenHSI | ✓ token | Task | Task | Task | Task BPS | Task | Task | – | Terrain adaptation: 32×32 height map |
– |
| GRAIL/SONIC | ✓ | Future body | ✓ | Future delta | BPS | Hand-object transform | Contact labels | Fingertip force | 11×11 height map + support/object state |
– |
重要结论:PHC-X、ResMimic、OmniGrasp、InterMimic、WristMimic、ContactMimic、UniHSI 和 TokenHSI 的原始 actor 都没有把 a_base 作为显式 observation。residual observes a_base 是独立候选 ablation,不应默认加入 B3;GRAIL/SONIC 的 base-latent path 另行按其配置核对。
高度图必须按具体 policy config 判定。ProtoMotions 的普通 SMPL tracker 没有将 terrain 列入 actor in_keys,SMPL terrain-tracker checkpoint 则明确输入 16×16 terrain observation。原始 MaskedMimic 论文和官方模型卡也明确使用 16×16 projected surrounding heightmap;但当前仓库中该 checkpoint 的 resolved YAML 未将 terrain 列入 actor in_keys,因此实际加载时必须以 checkpoint 捆绑的 model config 为准,不能只根据 environment 是否生成 terrain observation 判定。
MimicManipulator/MaskedManipulator 不同于 MaskedMimic:其论文列出的 actor 输入是 humanoid proprioception、object/table pose、body-to-object relation 和 object/table BPS,没有 square local height map。ResMimic 的通用 legged-robot 基类支持 measured heights,但 humanoid config 明确设置 measure_heights=false。PHC-X、OmniGrasp、InterMimic、WristMimic、ContactMimic 和 SUGAR 的当前 baseline actor 也没有 square local height-map 输入。
4.3 Actor Observation 维度公式
| Method | Actor observation 维度 | 已确认配置/说明 |
|---|---|---|
| PHC-X | D_self^PHCX + D_human_ref^PHCX |
由当前 checkpoint config 决定;无 previous action,has_shape_obs=false |
| HOI-FHLI tracker | 20M |
M 为 human + object rigid-link 数;单 object M=63 时 1260D,官方四 object demo M=66 时 1320D |
| ProtoMotions SMPL terrain tracker | D_Proto + 256 |
Actor 额外输入 16×16 root-relative terrain heights;普通 SMPL tracker 没有这 256 维 |
| MaskedMimic (original) | D_MM + 256 |
16×16 character-aligned projected surrounding height map |
| ResMimic | Base: D_base; residual: D_base + 7 |
发布的 G1 HOI actor 在 human tracking observation 上增加 current object position/quaternion 7D;object point cloud 用于 reward,不是 actor geometry input |
| OmniGrasp | D_self + 15K + 9 + 30 + 3F + 1 |
30 为 10 fingertips 到 object 的向量;+1 为 fixed-latent object index |
| OmniGrasp official train | D_self + 430 |
Training command K=20,official hand contact sensors F=30,has_im_obs=false |
| ContactMimic | 64 + 3J + C |
G1 有 N=29 actuated DoFs,因此 joint pos/vel 与 base state 共 2×29+6=64;论文未公布 keypoint 和 semantic contact-pair 的固定全局数量 |
| WristMimic | D_prop + K(9J_cf + 9 + 3J_ig + C) |
Paper: J_cf=21, J_ig=52, C=23,所以 future goal 为 377K |
| WristMimic paper tensors | 1003 + 377K |
按论文 state 张量推导 D_prop=15 + 15×51 + 15 + 52 + 3×52 = 1003;待代码发布后核对实现细节 |
| InterMimic official SMPL-X teacher | 2 × [D_human(tau) + 21 + 3J_all + 3J_key] = 3198 |
tau={t+1,t+16},J_all=52、J_key=21;direct object block 21D/horizon,relation block 219D/horizon,contact 在 D_human(tau) 内 |
| MimicManipulator | D_self + 15 + K(D_human_ref + 15) + 3J + P + C |
BPS/contact/future horizons 由实验配置决定 |
| UniHSI | D_self + 15 + 8J + L² |
当前代码 J=15, L=9,task observation = 216 |
| TokenHSI | D_self + Σ_t D_task[t] + T |
每个 task obs 独立编码为 token;ground-to-terrain adaptation 增加 32×32=1024 维 height-map task observation |
| GRAIL terrain-aware | D_GRAIL + 121 raw height values |
height_map_z_flat 为 11×11=121 维,再由 Conv2D projector 编码为 128 维 feature |
TokenHSI 当前基础 task dimensions:
| TokenHSI task | Raw task observation dim |
|---|---|
| Trajectory | 2K |
| Sit | 3 + 3 + 6 + 2 + 8×3 = 38 |
| Carry | 3 + 3 + 6 + 3 + 3 + 8×3 = 42 |
| Climb/object | 3 + 8×3 = 27 |
| Ground-to-terrain height map | 32×32 = 1024 |
这些是进入各 task encoder 之前的 raw dimensions;transformer 内部 token width 是 network hyperparameter,不等于 raw observation dim。
4.4 设计原则
本节是 observation 候选库,不是已经确定的统一输入。每个 baseline 首先严格使用其原始 observation;只有 baseline 结果说明某项信息必要时,才将它加入后续候选模型。
- 保留各 baseline 已发布的坐标 contract。PhysHSI
strict_b3的 actual object pose 保持 tracker-local7D;新增的 future position/orientation/velocity delta 转到 current root-heading frame,不能静默改变 strict input。 - Actor 只读取可用于 policy control 的 compact state,不读取 mesh 文件、manifest 或 absolute world coordinates。
- Object geometry 使用 BPS 或固定数量 surface points,不把 raw mesh vertices 拼进 observation。
- Reference 使用 future delta,而不是只给 absolute target。
- 若 baseline 使用 contact condition,它来自 reference contact timeline,不从 action name 猜。
- Scene condition 只表达局部碰撞和当前 interaction/support objects,不编码整个房间的所有 mesh。
- Dynamic object、static support 和无 object case 使用显式 masks,不依赖 dummy object fallback。
4.5 Human/base observation
PHC-X 原有 observation 保持不变:
- root height/orientation/velocity;
- joint position/velocity;
- rigid body state;
- future human reference deltas。
当前 env_im_x_pnn + smplx_humanoid checkpoint 没有 previous-action observation,且 has_shape_obs=false;不能把未启用字段写成既有输入。ResMimic 原始 residual policy 也不要求显式读取 a_base,所以 a_base 是否进入 observation 必须作为单独 ablation,而不是默认设计。
4.6 Object-conditioned observation
不同方法的 object encoding 不能只用“是否输入 object reference”概括。下表只记录 actor observation;critic-only privileged state 和 reward-only relation 单独标明。
| Encoding | Current simulated object | Object reference / goal | Sampling | Geometry、relation、contact 与说明 |
|---|---|---|---|---|
| ResMimic original | position 3 + quaternion 4 = 7D |
actor 不输入;reference 用于 reward/reset | current only | object point cloud 仅用于 reward,不进入 actor |
| OmniGrasp | current root-relative pose 9D;current velocity进入 delta |
reference-simulation position/rotation/linear-velocity/angular-velocity delta 15D/sample |
official K=20 dense trajectory |
另有 fingertip-object vectors、actual contact-force sensors 和 object code;默认不追踪完整 human reference |
| InterMimic | current linear/angular velocity 6D/horizon;pose 由 error/relation 表达 |
pose/velocity error 15D/horizon |
t+1,t+16 two-horizon teacher |
另有 encoded joint-surface relation 219D/horizon 和 reference/actual contact;不是 raw current pose 7D |
| SUGAR privileged refiner | robot-anchor-frame actual pose 9D + velocity 6D = 15D |
pose 9D/sample in current object frame + raw reference velocity 6D/sample in robot-anchor frame |
K=8, offsets {0,...,7} |
15D/sample 不是 OmniGrasp velocity delta;object-related total 15+8×15=135D |
| SUGAR distilled tracker | robot-anchor-frame actual pose 9D |
object future 不进入 actor;由 current motion command 提供 joint/root/contact target | current command | actual object velocity/future reference 只在 privileged critic/teacher group |
| SUGAR generator/inference | tracker actor 读取 actual pose 9D;generator 也读取 actual pose 9D |
generator 可读取 target object pose 9D,输出 36D tracker command |
chunked generated command | 不读取 dense motion reference;仍然是 object-state/goal conditioned |
| PhysHOI | root-heading-frame actual position 3 + rotation 6D + linear/angular velocity 6D = 15D |
actor 额外拼接 t+1 完整 raw HOI reference;其中 object 为 position 3 + quaternion 4 + velocity 6 = 13D |
one-step future | contact graph 主要进入 reward;actor 没有独立 contact-graph encoding,也不使用 reference-simulation delta |
| SkillMimic low-level policy | root-heading-frame actual object state 15D |
不输入 dense object reference;输入 task-dependent one-hot skill condition | current only | demonstration/contact graph 主要通过 reward 学入 policy;高层策略可再加 task goal |
PhysHSI strict_b3 |
tracker-local position 3 + xyzw quaternion 4 = 7D |
actor 不输入;reference 仅用于 reward/reset/termination/metrics | current only | 不输入 a_base、future、geometry/contact |
PhysHSI object_future |
保留 strict_b3 的 actual pose 7D |
OmniGrasp-style relative future 15D/sample |
default K=20 |
首轮不额外加入 InterMimic relation/contact block |
因此 frozen PHC-X 为 2026D、action 为 153D 时:
strict_b3 actor observation = 2026 + 7 = 2033
object_future actor observation = 2026 + 7 + 20×15 = 2333
两个 B3 版本共享同一 frozen PHC-X base、action composition、physics、reward、reset 与 metrics,只改变 residual actor 是否读取 object future。这样 strict_b3 -> object_future 才是可解释的 observation ablation,而不是同时引入 InterMimic 的 relation/contact/reward。
这里的设计边界是:control family 采用 ResMimic 的 frozen tracker + action residual;object observation 是独立设计轴,可以参考 OmniGrasp、InterMimic、SUGAR、PhysHOI 和 SkillMimic。借用其它方法的 object condition 后,应命名为 ResMimic-PHCX architecture with adapted object conditioning,不能再称为原始 ResMimic observation 的严格复现。
每个 active object token 至少包含:
object mask
object role: dynamic / support / articulated
current object position in root frame 3
current object orientation 6D
current linear/angular velocity 6
future reference position deltas at K 3 * |K|
future reference orientation deltas at K 6 * |K|
future reference linear/angular velocity 6 * |K|
object BPS or fixed surface encoding
通用候选可测试 K={1, 4, 8, 16} at 30 Hz;它覆盖 immediate control 与约 0.5 s anticipation。但具体 baseline 必须保留自己的 sampling:OmniGrasp-style B3 object_future 默认采用 K=20 和 15 Hz trajectory-sample spacing,InterMimic-style 对照采用 30 Hz 数据上的 t+1,t+16。不能把 K 当作跨方法统一时间网格。
Object future condition 必须相对 current simulated object 定义,而不是相对 reference current frame:
delta_position = root_heading_inverse * (p_ref_future - p_sim_current)
delta_rotation = rotation_6d(change_basis_heading(R_ref_future * R_sim_current^-1))
delta_linear_velocity = root_heading_inverse * (v_ref_future - v_sim_current)
delta_angular_velocity = root_heading_inverse * (omega_ref_future - omega_sim_current)
rotation 不能直接做 quaternion 或 6D component subtraction。上述定义能告诉 policy 当前 physics rollout 已经偏离多少;GRAIL/SONIC 与 OmniGrasp 都采用“future target relative to current simulated state”的思想。
4.7 Human-object relation/contact observation
对 active hands/fingers/body parts,输入:
- current body point 到 object surface/contact point 的 vector;
- reference body point 到 object surface/contact point 的 vector;
- current/reference relative velocity;
- desired contact mask;
- undesired contact mask;
- actual binary contact/force;
- reference contact center;
- active hand mask;
- contact confidence;
- normalized time-to-contact/time-since-release。
不需要把 pick/carry/place 作为 hard-coded phase。approach、contact、carry 和 release 可由 contact schedule、object support relation 和 relative motion 自然导出。
直接使用 reference human-object 与 object-support contact masks,不再构造额外的 control_source 或 phase state。这样可以自然表达 human/support 同时接触、handoff、push/kick 后惯性运动和 articulated interaction。
4.8 Scene-conditioned observation
对 scene-conditioned 候选,actor 可先测试以下 compact input,而不是直接读取完整 scene point cloud:
- active support pose、surface normal 和 support extent;
- root/body/object 到最近 obstacle proxy 的 signed distance;
- root-aligned local height map;
- interaction corridor 中少量 obstacle tokens;
- current object 到 support 的 relative pose/velocity;
- support contact mask。
Critic 可以读取更完整的 privileged scene state,例如所有 physics actor poses、contact forces、penetration depth 和 dense local SDF samples。
4.9 Variable objects/actions
为了后续支持 HSI、HOI 和多 object,不需要为每个 action 写专用 network。使用:
[human token]
[dynamic object tokens + mask]
[support tokens + mask]
[local obstacle tokens + mask]
[contact/relation tokens + mask]
如果入选方案需要这些 variable inputs,单 cup overfit 可先用 concatenate + MLP;扩展到 variable object count 时再比较 shared token encoder 或 transformer。
5. 候选 Reward 组件
5.1 总体结构
Reward 结构也不能先混合。InterMimic/WristMimic 使用 multiplicative exponential tracking,ContactMimic 使用 tracking、contact-aware 与 regularization 的加法,OmniGrasp 和 ResMimic 又有各自 object/contact shaping。第一轮 baseline 保留原公式;下面只列可比较的候选组件。
若选择 InterMimic/WristMimic-style grouped exponential reward,可在 log space 表示为:
这与各 group reward 相乘等价。纯 additive reward 容易让 policy 用 human tracking 的高分掩盖 grasp 失败;MimicManipulator 和 InterMimic 的 exponential 结构支持这一选择。不要对 log R 做 hard lower clamp,否则初期大误差区域会失去梯度;应对异常大的单项 error 使用 smooth robust cost,并通过 curriculum 逐步收紧 active groups。
训练日志必须同时记录每个 raw term,不能只记录总 reward。
5.2 Human tracking
对 full-reference/PHC-X tracking family 的候选规则:
- 保留 PHC-X 已有 whole-body imitation 目标。
- interaction body parts 可按 reference joint-to-object distance 自适应加权,参考 InterMimic embodiment-aware reward。
full finger tracking与WristMimic-style no finger target必须作为两个独立 baseline/ablation,不能预先删除 finger reference。- human tracking 与 object tracking 分开报告,不能用 body mean error 宣称 grasp 成功。
5.3 Object tracking
参考 OmniGrasp/GRAIL:
E_obj_pos = ||p_obj - p_obj_ref||
E_obj_rot = geodesic(q_obj, q_obj_ref)
E_obj_lin_vel = ||v_obj - v_obj_ref||
E_obj_ang_vel = ||w_obj - w_obj_ref||
Dense object tracking 与 OmniGrasp-style contact-gated object tracking 是两个候选 reward 结构,应分别实测。后者不能未经验证扩展到 support contact、双重接触、handoff 或 push/kick 后的惯性运动。
5.4 Grasp/contact reward
Grasp 成功不能只由 hand-object distance 定义。令 c_ref[j] 是 link j 的目标 contact command,c_sim[j] 是 physics contact,基础项为:
E_contact_miss = mean_j(c_ref[j] * (1 - c_sim[j]))
E_bad_contact = mean_j((1 - c_ref[j]) * c_sim[j])
E_slip = mean_active ||v_hand_contact - v_object_surface||
E_impulse = robust_penalty(contact_impulse / (object_mass * gravity))
候选 contact terms 如下;第一轮各 baseline 仍使用原始 reward,后续再按单因素实验选择:
- Scheduled contact:reference contact active 时,目标 hand links 必须按显式 part-level contact command 产生 object contact。
- Anti-contact:reference contact inactive 时,非目标 fingers/body contact 受到惩罚。
- Contact coverage:reference 指定的独立 hand links 得到足够覆盖;不使用对所有 object 固定的 finger 数量阈值。
- Opposition:仅在 reference topology 表示 pinch/power grasp 时启用,不用于 palm support、push 或 handle sliding。
- Relative velocity:跟随 reference surface-relative velocity;只有 reference 是稳定 grasp 时目标才接近 zero。
- Relative transform:跟随 reference
T_hand_object(t);仅在 reference 关系静止时才要求固定,不妨碍 handoff、sliding 或 in-hand rotation。 - Force regularization:按
object_mass * gravity归一化,避免单次巨大 impulse 或夹持力爆炸。 - Release timing:reference release 后接触应及时解除。
5.4.1 CHORD-style object-centric wrench support
当 target mesh/contact normal 可靠时,可把每个 object-contact point 的 Coulomb friction cone 离散成 primitive wrenches,并用 support function 定义三种强度递增的通用信号:
anti-gravity residual: 能否产生抵消重力的 required wrench
reduced FC support: 对多少个 canonical 6D directions 有正 support
full CWS matching: rollout support 是否匹配 reference support manifold
三者不能混为一个 force_closure 标量:anti-gravity 只回答 lift,reduced FC 偏向稳定抓握,full CWS 才能保留 push/slide/lever/handover 的 demonstration intent。当前 KIMODO finger reference 存在重建噪声,第一轮 physics reward ablation 应优先测试 reduced FC;full CWS 只有在 reference contact positions/normals 通过 exact audit 后才启用。
CHORD 的 support reward不是直接读取 simulator contact-force magnitude,而是由 contact position、surface normal、moment arm和摩擦锥构造 feasible wrench directions;仍需 target-attributed contact 才能排除手压 support/nightstand 的假接触。单帧 keyframe 中可以把 anti-gravity/canonical support 作为 candidate gate;完整 teacher 中才使用逐帧 reference CWS。
InterMimic 的 promotion/penalty/neutral 三层 contact label 很重要。reference 接触距离存在噪声时,中间 neutral band 不奖励也不惩罚,可避免 policy 被错误 contact label 强迫成突变动作。
当 object surface points/normals 可靠时,可加入 MimicManipulator-style surface-normal alignment;没有可靠 normal 时不要从 bbox 猜。
Contact label reward 应分别报告 true-positive、true-negative 和 false-positive,按类别平衡,避免大量 non-contact links 让 accuracy 虚高。若实验选择 explicit contact controllability,再测试 ContactMimic-style contact-label augmentation:保持相近 keypoints,同时扰动 contact command 或 timing,检验 policy 是否只从姿态外形猜接触。
只要某个 reward、gate 或 metric 声称 c_sim[j] 表示“hand/finger 真实接触了目标 object”,它就必须采用 GRAIL-style actor-pair attribution或语义等价的pairwise contact query,而不是 hand link 的 aggregate contact force:
c_object[j] = 1{||F(Object ↔ finger_j)|| > tau_object}
c_support[j] = 1{||F(Support ↔ hand_j)|| > tau_support}
c_object 才能开启 grasp/object terms,c_support 只能进入 support-contact 诊断或 penalty。若 Isaac Gym 路径暂时无法提供 pair-filtered force matrix,可以使用“body force + target-surface proximity + force/normal alignment”作为明确标注的近似,但不得把它写成与 GRAIL filtered sensor 等价,也不得再用未归因的 finger net_contact_force 直接开启 object gate。
当前项目的 Isaac Gym 近似实现进一步固定为 target-only 公共 API:输入仅为配置选中 link 的 aggregate body force 和“最近 target mesh surface point→link”向量,输出逐 link attribution 与聚合 gate;它没有 support、reference label 或 fallback-distance 输入。HOI 数据目前只给 left/right active-hand label,因此 task 层从 hand_bodies 自动展开对应 L_*/R_* 的全部 wrist/finger links;公共归因函数本身不知道左右手。这个分层避免把当前左手杯子 case、nightstand support 或特定 fingertip 列表硬编码进算法。
这不等于规定所有 object tracking 都必须 contact-gated。Ungated dense tracking、reference-contact-label gate、soft contact probability 和只用object deviation termination都是合法对照;但一旦选择physics-contact gate,gate本身必须能区分Object↔Finger与Support↔Hand。Isaac Lab filtered sensor只是GRAIL采用的具体实现,不是唯一允许的API。
5.5 Support/place reward
对 support object:
- pickup 前允许并要求 cup-support 接触;
- lift/carry 时 penalize unintended support contact;
- place 时奖励 object target pose、support contact、低 object velocity;
- place 后要求 hand release 且 object 在短 hold window 内保持稳定;
- penalize object/support penetration 和 high impact。
这些条件从 reference object/support/contact timeline 得到,不写成 if action == place。
5.6 Scene/physics regularization
joint limit
torque/power
action magnitude
action rate
residual magnitude
residual rate
human/object acceleration
foot slip
undesired body-scene contact
penetration depth
peak contact impulse
Residual-specific regularization:
仅当 residual family 入选时测试这两项,并通过 ablation 判断它们是否保留 PHC-X locomotion。
5.7 Early termination
可比较的 early-termination 条件包括:
- humanoid fall/root height failure;
- body reference deviation 超阈值;
- object pose deviation 超阈值;
- required contact 连续丢失 N 帧;
- object 从 support/hand 异常弹飞;
- severe penetration 或异常 contact impulse;
- NaN/non-finite state。
IET 阈值必须比 success threshold 宽,避免正常探索过早结束。
6. Policy 架构分类与 Baseline 原型
6.1 两个独立选择轴
需要先分开选择:
Action/control parameterization:direct PD action、pretrained latent action、action residual 或 latent residual。Conditioning target:dense human/object reference、object trajectory、contact command 或 task/scene goal。
当前没有证据说明某一种 action parameterization 必须绑定某一组 observation。第一轮实验不做跨方法混合。
6.2 ResMimic:Frozen tracker + action residual
ResMimic 原始结构是:
原始实现不要求 residual policy 显式读取 a_base,也没有规定 tanh + scale。在 PhysHSI 中,algorithm-preserving baseline 只把 GMT checkpoint/embodiment 换成 PHC-X:
a_base = frozen_phcx(human_tracking_observation)
delta_a ~ pi_residual(human_and_object_observation)
a = a_base + delta_a
这一 baseline 不加入 WristMimic finger decoupling、ContactMimic contact command、UniHSI scene condition 或我们自定义的 action scaling。
6.3 OmniGrasp:Object-conditioned latent policy
OmniGrasp 使用 PULSE-X 的 VAE latent prior。对当前官方 HumanoidOmniGraspZ VAE 路径,task actor输出 48D latent correction,代码先与 state-only prior mean 相加,再投影并交给 pretrained decoder:
delta_z ~ pi_task(
humanoid_state,
object_state,
future_object_trajectory,
fingertip_object_relation,
contact_state,
object_code
)
z_exec = project(prior_mu(humanoid_state) + delta_z)
a = PULSE_X_decoder(humanoid_state, z_exec)
因此它是明确的 latent-prior correction,但不是 ResMimic 式的最终 action a_base + delta_a。这里的 prior_mu + delta_z 来自 use_vae_prior=True 的实际执行分支;若启用 reference-encoder base,则会改成 z_ref + delta_z,二者不能混写。
代码还保留可选 res_hand hand-action residual;但官方 env_x_grab_z.yaml 设置 res_hand: False,当前 HumanoidOmniGraspZ 分支也将该 residual 乘以 0。所以第一轮 B1 应按官方 latent-prior 路径运行,不能把未启用的 hand residual 写成默认 OmniGrasp。
它主要优化 object trajectory 与 grasp,不要求逐帧复现完整 human reference。它回答 object-centric latent-prior controller 的上限,以及 object success 与 human-reference fidelity 的取舍。
当前B1-FR不是把human reference送入PULSE-X encoder。2026-07-18对官方PULSE commit 1665985、OmniGrasp commit f7740cd和本地pulse_x_omnigrasp/Humanoid.pth完成源码/数值审计:PULSE-X输入是778D pelvis-heading-local self observation与1248D obs-v6 imitation observation拼成的2026D,使用checkpoint RMS执行clamp((x-mean)/sqrt(var+1e-5),-5,5);decoder的self block也使用同一归一化。VAE test取z_mu,use_vae_sphere_posterior=False时不会做unit-sphere projection。adapter曾漏掉RMS clamp,现已修复。
修正后该序列上的PULSE posterior encoder -> decoder仍会累计发散:closed-loop在frame 27/40/51分别超过5/10/20cm,frame60/90为49.08/132.56cm。但逐帧把root与153D DOF恢复到reference的teacher-forced对照中,输入root/DOF误差为零,219帧单步human body mean/p95/max为2.59/3.71/4.23cm;对齐输入的RMS clip比例仅0.031%。这排除了world-space reference、错误normalizer或encoder/decoder checkpoint错配。真正的contract差异是:PULSE posterior通过teacher-action reconstruction、posterior-to-state-prior KL和AR(1) latent项训练,不承担多步闭环tracking;官方downstream代码执行prior_mu(self_obs)+task_delta_z,reference-posterior执行段只是注释。因而B1-FR保留state-only prior/decoder,将canonicalized PHC imitation observation直接交给新PPO actor:
actor_obs = self[778] + OmniGrasp object block[429]
+ PHC obs-v6 human_ref[1248] + object_code[1] = 2456D
delta_z = pi_fullref(actor_obs)
z_exec = frozen prior_mu(self) + delta_z
action = frozen PULSE-X decoder(self, z_exec)
这里列的是实际tensor顺序:human block插在原版OmniGrasp连续object fields之后、末尾object-code index之前;前2455维由新policy normalizer处理,最后1维继续只用于BPS/object-code embedding lookup。
human reference的1248D并不是raw world-space pose;它复用PHC训练时的compute_imitation_observations_v6,以当前human root position和heading canonicalize future/reference body position、rotation、velocity和angular velocity。这样避免PULSE encoder reconstruction error,但代价是delta_z不再是“只修grasp”的小residual:新actor必须共同学习human tracking和HOI control。因此需要先做human-only architecture/capacity warm-up,再切full HOI reward。warm-up使用52-body unweighted position×rotation指数乘积,不能复用InterMimic为HOI设计的21-key-body/object-proximity weighting;后者在早期实测会弱化远侧arm、wrist和finger监督,epoch 20全身mean error反而达到25.1cm。直接训练整个[0,219)又会使frame 80后的指数reward接近零,因此正式warm-up保持frame-0 reset并逐段扩展,不使用random start;2026-07-18重新审计后,最短prefix只需包含真实contact frame 65,即[0,66),不再把stable grasp frame 98误当contact onset。
B1-FR的object encoding仍是OmniGrasp-style 429D block;改变的是reward,不是observation。旧的OmniGrasp reward + additive human reward允许高分human velocity项掩盖手物分离,实测在reference hand-object约3.3cm时actual仍约46cm。正式实现改为InterMimic式分组指数乘积:
R = (R_body_pos * R_body_rot)
* (R_obj_pos * R_obj_rot * R_obj_linvel * R_obj_angvel)
* R_interaction_graph
* R_contact
其中human position使用21个InterMimic key bodies、rotation使用全部52个SMPL-X bodies;interaction graph在真实SAGE object mesh的128个surface samples上比较21-body reference/actual relation;contact只接受指定交互手,要求force >1N且到surface <4cm。reference contact逐帧来自MotionLib contact_info,而不是first_contact之后永久为真。object rotation系数仅0.1,angular velocity系数为0,并且rotation不进入pass gate;这与“Kimodo object rotation是近似reference、重点保证contact/lift/relation”的任务定义一致。
2026-07-18 smoke显示这一adaptation的数值契约成立:所有10个reward component均finite且位于[0,1],32-env rollout可完整运行219帧;1024-env纯PPO在GPU1完成checkpoint。SAGE room inventory含93个objects,但正式physics_only训练环境只创建14个选定physics objects加room floor共15个scene actors,再加humanoid为16个total actors。scene_scope=full还会复制wall/door shell并达到31个scene actors,已从正式训练配置移除;inventory、scene actor与total actor数量必须分开报告。
single-reference并行环境在同一时刻看到相同reference phase,只由PPO action noise形成状态差异,所以不能原样继承multi-motion OmniGrasp每batch的更新强度。固定其它contract后,learning_rate=2e-5, mini_epochs=6使[0,99)deterministic human mean error从epoch 1的12.43cm恶化到epoch 15/35的16.75/18.03cm,reward sum也未超过epoch 1。正式single-case配置降低为learning_rate=5e-6, mini_epochs=2;这是optimizer adaptation,不改变policy、observation、reward或action definition。
pre-fix checkpoint曾显示input normalizer严重漂移:low-update epoch 1与21之间,2455D running-mean norm从20.54增长到123.36,running-variance norm从11.40增长到57854.02,最大单维variance漂移7768.95。后续审计找到更上游的原因:去AMP后的pure PPO没有重写RNN collector,落回rl_games.play_steps_rnn();它假设env auto-reset,而OmniGrasp要求agent调用env_reset(done_indices)。所以第一次98-step episode之后,绝大多数所谓训练样本其实是未reset的sequence末帧重复。pure-PPO RNN reset/GAE collector已经补齐;随后采用的“epoch 1校准、epoch 2永久冻结”也不是官方PULSE用法,只是当时隔离reset污染的临时措施。
frozen-normalizer v5的epoch 1/21 running mean、variance和count确实逐元素相同,deterministic human mean/p95也曾由16.22/41.37cm变为13.33/33.45cm;但这两点只证明normalizer freeze plumbing和有限有效updates能工作。16-env × 8-epoch因果对照显示:修复前即使关闭early termination仍永久eps_len=1/reward=0;修复后early termination开、关都可跨越多个sequence boundary并持续eps_len=98、reward约30.5--31.3。这明确区分了runner reset bug与policy/reward问题。进一步与官方PULSE commit 1665985对齐后,high-level task policy应有自己的online RunningMeanStd:每epoch冻结一份快照供网络计算,live统计仍在PPO minibatch上累计并在下一epoch刷新;frozen PULSE checkpoint的low-level RMS只服务prior/decoder,不能拿来替代2455D actor RMS。正式pure-PPO adapter现复现这一统计更新机制,仍不恢复AMP buffer/discriminator。
RNN reset修复后的v7在100个真实epochs内best human mean/p95为epoch41的12.11/26.25cm;best逐body误差包含head24.2cm、neck/R-shoulder约17cm、pelvis9.4cm,并非只有finger。v8 human-only prefix恢复PULSE/PHC原始的0.5 position + 0.3 rotation + 0.1 linear velocity + 0.1 angular velocity52-body reward,epoch 1/21/41为16.32/41.43、13.17/31.98、12.85/27.27cm。这些是有效达到的结果,但后续checkpoint审计发现v7从epoch1到100的2455D RMS count一直为65537:首个1024×32×2样本之后统计即永久冻结,frame32之后及后续prefix状态没有进入校准;v8继承同一设置。因此现有曲线不能区分reward、normalization与48D latent control capacity,尤其不能据此宣称architecture gate失败。需要从fresh policy用official-aligned online RMS重跑human prefix,旧v7/v8 checkpoint只保留为历史下界。
同一个RNN reset缺陷也影响此前的B3 ResMimic-style实验,因为B3 pure PPO注册到相同的OmniGraspPPOAgent。因此旧R0“训不出grasp/carry”不能用于判断clip(a_phcx+delta_a)是否错误:绝大多数更新并未来自完整approach/contact/lift rollout。最小重验应保留frozen PHC-X、2455D actor observation、153D direct residual和最终clip,只修复collector并将Phase 1从几何敏感的[68,219)改为frame-0 [0,219);若该有效训练仍稳定出现residual增长或saturation,再把R1的scale/mask作为单因素ablation。
这个最小重验随后完成了1024-env、300-epoch正式训练。zero-residual rollout约在frame 65发生168N物体冲量并开始滑落,在0.5m阈值下约frame 79会终止;当时adapter却把手指闭合结束的frame 98写成reference contact,因此frame 65--97被错误地当作pregrasp。policy在epoch 100首次到达frame 99,epoch 160到达reference lift后的frame 125,epoch 300 best为frame 128、瞬时lift1.769cm和required-contact ratio10%。human mean/p95仍为5.355/10.292cm,residual RMS/max为0.0375/0.366;所有deterministic checkpoints的action saturation都是0。该结果仍证明direct residual能够产生学习且最终clip不是当时的瓶颈,但不能用于判断正确OmniGrasp contact semantics下能否形成持续承载接触;必须以contact 65、stable grasp 98、lift 116和contact后remove support重验。
代码审计仍确认原版OmniGrasp在reference contact前执行task_reward = pregrasp_reward,contact后执行task_reward = object_tracking * actual_contact_filter + contact_bonus;但旧曲线不能再用来证明两者之间缺少梯度,因为frame65--97本应已经处于contact阶段,却被错误标签留在pregrasp。下一项最小实验不是reward adaptation,而是corrected-reference R0 control:保持PHC-X base、2455D observation、153D residual、action addition、clip和原reward不变,只修正contact/stable-grasp/lift/release语义并在contact后remove support。只有该control仍失败,才测试contact-conditioned dense transition reward,之后再考虑R1 scale/mask。
corrected-reference R0 随后以1024 env训练到Phase-1上限600 epochs,仍未通过[0,219)。30次deterministic eval的best frame/contact/lift分别为epoch 120的79/219、epoch 380的38.46%和epoch 160的0.759cm;epoch 600为78/219、contact 23.08%、lift 0.619cm。全部checkpoint无action saturation,human tracking也没有先发生catastrophic failure。best-contact trace在frame65--69形成短暂手杯接触,support于trace frame68移除,frame70即丢失接触并自由下落。因此原版OmniGrasp语义虽然修正了旧实验的reward错相位,却仍未让PHC-X 153D direct residual学成load-bearing grasp;这为下一步只改reward的R0-RW提供了干净因果依据,而不是直接跳到residual scale/mask。
后续R0-v2/C98进一步区分了“首次几何靠近”和“可撤支撑的稳定抓握”:frame65只保留为geometric-contact诊断,OmniGrasp的operational contact_info、reward切换和table removal统一延后到stable-grasp frame98,距reference lift frame116为18帧。该run将human imitation降为0.1,object position/rotation/linear-velocity/angular-velocity/contact权重设为0.4/0.05/0.05/0/0.5;同时关闭按最终全身action计算的power/slippage penalty,因为它们会惩罚frozen PHC-X base,而不是只约束residual。1024-env pure PPO训练到600 epochs仍停在111/219:best lift仅1.423cm,final human mean/p95为9.143/24.410cm,residual RMS/max增至0.0678/0.4204且仍无action saturation。最终trace只在frame99--100发生实际手杯接触,frame101撤支撑后杯子立即自由落体并在frame110达到55.1cm误差。该对照说明C98修正了不合理的早撤支撑,但binary contact filter/bonus即使占object reward的0.5,仍没有编码force closure、接触持续时间与承载保持;reward spike对应“碰到杯子”,不是“抓住杯子”。因此后续若保留direct residual,合理的单因素reward ablation应针对contact persistence或load-bearing grasp,而不是继续增大同一个binary contact权重。
6.4 InterMimic:Direct full-reference policy
InterMimic 从头训练 direct policy:
a ~ pi(
simulated_human_state,
simulated_object_state,
future_human_reference,
future_object_reference,
joint_object_relations,
reference_contacts
)
发布的 teacher actor 将 t+1、t+16 两个完整 observation 拼接。其 direct object reference 部分是 21D/horizon = current simulated velocity 6D + reference-simulation pose/velocity error 15D,并额外包含 219D/horizon 的 encoded joint-to-object surface relation。其 object rotation error 使用 inverse(R_ref) * R_sim,也不是 OmniGrasp 的 R_ref * inverse(R_sim);它不是 actual pose 7D + K×15D 的 ResMimic-PHCX hybrid。
它没有 frozen PHC-X、base action 或 residual。它用于测量 full-reference teacher 从头训练的精度、稳定性和计算成本。
6.5 WristMimic:Direct wrist-guided policy
WristMimic 同样从头训练 direct policy:
a ~ pi(
current_human_and_object_state,
actual_contacts,
interaction_graph,
future_body_reference_without_fingers,
future_wrist_reference,
future_object_reference,
future_contact_reference
)
Body/wrist 使用 kinematic reference,finger 不使用 pose target。Finger action 由 object tracking、contact 和 interaction dynamics 学习。它用于单独验证“去掉 finger reference、优先 wrist”是否比完整 SMPL-X pose tracking 更适合 grasp。
6.6 HOI-FHLI:Direct current-frame HOI tracker
HOI-FHLI 从头训练 direct position-control policy,不使用 pretrained prior、residual action 或 future horizon。它用 object/body relation reward 保持抓取,适合测量“单帧 dense target + 简单 relation reward”能否完成我们的 full-sequence physics refinement。
6.7 MimicManipulator:Direct teacher + masked student
MimicManipulator teacher 属于 direct full-reference policy:
MaskedManipulator 才是后续 sparse masked-goal student。两者都不是 PHC-X residual baseline。
6.8 ContactMimic:Direct keypoint/contact policy
ContactMimic 是:
它没有 object future trajectory、dexterous fingers 或 residual。它用于 contact controllability,而不是完整 dynamic grasp teacher。
6.9 UniHSI 与 TokenHSI:Task/scene-conditioned policy
UniHSI:
TokenHSI:
self_token = encode(humanoid_state)
task_tokens = encode(enabled_task_observations)
a = transformer(self_token, masked_task_tokens)
它们主要测试 task/scene execution、统一技能和 composition,不是 dense-reference refinement policy,也没有 action residual。
6.10 VLM-RMD:Goal/reward generation
VLM-RMD 主要定义 relation goals 和 reward,不决定底层 policy 使用 direct、latent 还是 residual。它应放在 task-level condition/reward 实验,而不是 teacher architecture 主比较中。
6.11 第一轮待比较方案
B0 PHC-X Frozen
B1 OmniGrasp: object-conditioned PULSE-X latent
B2 HOI-FHLI: direct current-frame human/object tracking
B3 ResMimic-PHCX: plain action residual
B4 InterMimic-style: direct full-reference
B5 WristMimic-style: direct, no finger reference
只有比较 B0-B5 后,才能决定 residual 是否读取 a_base、是否采用 action/latent residual、是否保留 finger reference,以及 contact/scene 是否进入 actor observation。
之前提出的公式统一记为未验证候选,不再作为既定设计:
Hybrid-H0 = frozen PHC-X
+ action residual
+ object/contact/scene observation
+ wrist-guided finger objective
6.12 共同 Physics Contract
无论选择哪个 policy family,rollout 都必须满足:
- policy 只输出 humanoid control action;
- manipulated object 是真实 dynamic rigid body,不播放 reference pose;
- support 使用 task/layout 定义的 static 或 fixed-base physics actor;
- reference 只作为 observation、reward 和 reset target;
- scene、human、object 使用同一个 tracker-local transform;
- evaluation 关闭 virtual controller 和其他 assistance;
- trace 显式转回 canonical world frame。
这部分可以先确定,因为它不依赖 direct、latent 或 residual 架构。
7. 独立实验计划
完整 baseline protocol、architecture selection、主结果表、ContactMimic controllability 和 ablation 已拆分到:
本文只保留方法调研、候选 observation/reward 和 policy family 分类,避免与实验执行文档重复。
8. 推荐实现边界
保持 PhysHSI 的 general + simple 代码原则:
tools/train_refiner.py
argparse + call train(...)
src/refiner/train.py
training orchestration
src/refiner/observation.py
baseline-specific observation functions
src/refiner/rewards.py
baseline-specific reward terms
src/refiner/policy.py
direct, latent, or residual policy selected by experiment
utils/tracking_adapters/phcx/teacher_env.py
shared PHC/IsaacGym physics contract
约束:
- 不恢复
src/refiner/legacy/的 offline residual proxy。 - 不通过 manifest 或临时
.npz在训练 stage 间传状态。 - 不修改 canonical HSI motion 作为训练副作用。
- 不让新 pipeline runtime import OmniGrasp、GRAIL、SUGAR 或 ResMimic。
- 从这些仓库复用设计与公式,必要时移植很小的 tensor kernel,并保留 attribution。
- 不先搭统一大框架;每个 baseline 先用小而明确的 observation、policy 和 reward path,确认后再合并真实共享部分。
- final outputs 只保存 checkpoint、训练 metrics、rollout trace 和 canonical refined rollout。
- object geometry 仍由
layout_json + object_id在 simulator boundary 加载。
9. 主要风险
-
Reference grasp 本身不精确。 Teacher 可以小幅偏离 reference 来获得真实接触,因此 interaction reward 不能被逐关节 hand pose 完全压制。
-
不同 action parameterization 的搜索难度不同。 Action residual、PULSE-X latent 和 direct 153D SMPL-X control 必须分别实测,不能只凭维度判断优劣。
-
Cup 太轻,接触容易产生高角速度。 需要 contact impulse/object acceleration regularization,但不能把 object 改成 kinematic。
-
单轨迹 overfit 可能记忆 absolute time。 所有空间输入使用 root-local delta;成功后加入 random start、timing perturbation 和 object variation。
-
Full scene physics 成本高。 Simulator 保持 interaction/support 高精度 collision、其他 obstacle proxy;actor 只读取 local scene features。
-
Reward hacking。 Object tracking 不能单独定义 success;contact correctness 必须同时满足,virtual controller 必须衰减为 0,最终 success 必须基于真实 physics rollout。
10. 调研结论
- PhysHSI主线是KIMODO生成kinematic HOI/HSI,经physics refiner得到teacher trajectories,再训练无dense-reference的state-based student;视频重建不是 本项目入口。
- adapted baseline的embodiment contract已经确定:canonical Kimodo shape、reference FK和physics XML必须共享shape hash,且不得二次只平移human;这是所有policy comparison之前的硬门槛。
- 当前只能确定共同 physics/evaluation contract,不能确定 direct、latent 或 residual policy。
- Observation 和 reward 章节是候选组件库,不是统一模型接口。
- ResMimic、OmniGrasp、InterMimic 和 WristMimic 应先按各自原始范式比较,不能提前拼成 Hybrid-H0。
- RePHO-style是per-reference refiner主候选,不因其原论文从视频重建初始化就被 排除;项目adapter直接消费KIMODO canonical motion。
- InterPrior不应与第一轮full-reference refiner混成同一ranking。其最重要作用是 定义最终motor prior:训练期从expert和teacher trajectories学习,dynamic pick–place部署期可只消费current state + object goal state。
- 通用HSI/HOI student不应被锁死为object-only goal。TokenHSI、UniHSI和VLM-RMD 分别构成task-token、contact-chain和relation/reward三条目标表示baseline; 共同硬边界是部署时不读取dense HOI reference。
- ContactMimic、UniHSI 和 TokenHSI 分别回答 contact controllability 与 task/scene composition,不等同于 full-reference teacher。
- CHORD 提供了从 binary/position contact 升级到 functional contact 的最直接证据;对可靠 reference 使用 CWS matching,对 noisy KIMODO fingers 使用 reduced force-closure support,并把单帧 wrench gate与完整序列 reward 严格分开。
- CHORD 的论文结果依赖 VOC、random reference reset、task-aligned disturbance 与 residual prior;截至 2026-07-21 代码尚未发布,因此只能预注册 paper-derived ablation,不能宣称 official reproduction。
Ours只能由实验支持的 control family 和单因素 ablation 共同定义。
具体实验顺序、主表和 decision gates 统一维护在 独立实验计划。
11. 主要资料
- OmniGrasp
- HOI-FHLI
- MaskedMimic
- MaskedManipulator
- InterMimic
- RePHO
- InterPrior
- ContactMimic
- WristMimic
- ResMimic
- PhysHOI
- UniHSI
- TokenHSI
- VLM-RMD
- SkillMimic
- InsActor
- Dynamic Full-body Motion Agent with Object Interaction
- CHORD
- SUGAR
- GRAIL
- GEAR-SONIC
- ProtoMotions
submodules/Omnigraspsubmodules/ResMimicsubmodules/GRAILsubmodules/SUGARsubmodules/PhysHOIsubmodules/SkillMimicclean_baseline/UniHSIclean_baseline/TokenHSIdocs/sugar_inspired_physhsi_framework_plan_20260611.mddocs/protomotions_hsi_hoi_tracker_issue_survey_20260710.mddocs/affordance_field_unified_hsi_proposal.md