跳转至

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。

第一轮应按原始算法结构分别实现:

  1. Frozen PHC-X tracking,当前结果。
  2. OmniGrasp 原始 object-conditioned latent policy。
  3. HOI-FHLI direct current-frame human/object tracker。
  4. ResMimic-style PHC-X action residual,不加入其他方法组件。
  5. InterMimic-style from-scratch full-reference policy。
  6. WristMimic-style wrist-guided、finger-reference-free policy。
  7. 后续再单独评价 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 cmfull_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 taucompute_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:

  1. ContactMimic-style actor 输入一个 binary reference contact-label map;1/0 分别要求产生/抑制接触,不额外构造 desiredundesired 两个通道。
  2. 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 的 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 s0.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,实际编码为:

g(d) = d / (norm(d) + epsilon) * exp(-5 * norm(d))

actor 读取所有 body 的 g(d_sim) 和 key bodies 的 g(d_ref)-g(d_sim),不是 raw surface vectors。官方 SMPL-X 配置 J_all=52J_key=21,所以 relation block 是 156+63=219D/horizon;reference/actual contact 则位于 human observation block。不能把这套 21D + relation 简写成 OmniGrasp 的 15D future object

其 reward 将各项 cost 放入一个 exponential product:

R = exp(-sum_i lambda_i * E_i)

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

官方论文与代码:

本地实现明确执行:

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.md
  • submodules/GRAIL/imports/SONIC/gear_sonic/config/exp/manager/universal_token/hoi/pnp_table.yaml
  • submodules/GRAIL/imports/SONIC/gear_sonic/envs/manager_env/mdp/observations.py
  • submodules/GRAIL/imports/SONIC/gear_sonic/envs/manager_env/mdp/rewards.py

GRAIL/SONIC 已实现:

  • frozen manipulation base model;
  • pre_quantization latent 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 的实现为:

R_object_tracking = R_pose/velocity_tracking
                  * 1{sum pair-filtered Object↔Finger force > 1 N}

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 的三层结构是:

kinematic prior
  -> privileged physics refiner
  -> refined demonstrations
  -> command tracker
  -> closed-loop tracker rollouts
  -> state-based command generator

SUGAR 的 object observation 必须按阶段区分,不能用一个统一公式概括:

  1. Privileged physics refiner 的 actor/critic 都读取 actual object state 和 future object reference。actual object state 在 current robot anchor frame 中表示为 position 3D、rotation-matrix first two columns 6D、linear velocity 3D、angular velocity 3D,共 15D。future reference 默认 K=8、frame offsets 为 {0,...,7};对发布的 50 Hz 数据覆盖当前帧至约 0.14 s:future position 3D 和 orientation 6D 转到 current simulated object frame;future linear/angular velocity 6D 则转到 current robot anchor frame,但不减 current simulated velocity。因此它虽然也是 15D/sample,语义并不等于 OmniGrasp 的完整 reference-simulation delta。object-related block 共 15 + 8×15 = 135D
  2. 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。
  3. Deployment inference tracker 读取 actual object pose 9D 和 generator 输出的 36D command。generator 自身以 actual object pose 9D、robot state,以及配置启用时的 target object pose 9D 为条件;因此“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:

w_i^j = [f_i^j, p_i x f_i^j] in R^6
W_k   = [w_1^1 ... w_i^j ...] in R^(6 x cd)

它不直接逐列比较 human/robot W,而是在预采样的 6D unit directions B 上计算 support function:

sigma_k = max_col(B^T W_k)

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 全开 20 steps;
  • 从 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:CWS 0.702+-0.257,position-only 0.334+-0.141,no-contact 0.384+-0.206
  • mixer use:CWS 0.894+-0.023,position-only 0.624+-0.166,no-contact 0.423+-0.273
  • 12 个 hand-only-to-whole-body tasks:CWS overall 0.925+-0.104,position-only 0.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。

对本项目的直接启发分两层:

  1. 单帧 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。
  2. 完整 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 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=631260D,官方四 object demo M=661320D
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=30has_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=52J_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_flat11×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 结果说明某项信息必要时,才将它加入后续候选模型。

  1. 保留各 baseline 已发布的坐标 contract。PhysHSI strict_b3 的 actual object pose 保持 tracker-local 7D;新增的 future position/orientation/velocity delta 转到 current root-heading frame,不能静默改变 strict input。
  2. Actor 只读取可用于 policy control 的 compact state,不读取 mesh 文件、manifest 或 absolute world coordinates。
  3. Object geometry 使用 BPS 或固定数量 surface points,不把 raw mesh vertices 拼进 observation。
  4. Reference 使用 future delta,而不是只给 absolute target。
  5. 若 baseline 使用 contact condition,它来自 reference contact timeline,不从 action name 猜。
  6. Scene condition 只表达局部碰撞和当前 interaction/support objects,不编码整个房间的所有 mesh。
  7. 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=2015 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 表示为:

log R = -(C_human + C_object + C_interaction + C_contact + C_physics)
R     = exp(log R)

这与各 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

E_root_pos
E_root_rot
E_body_pos
E_body_rot
E_body_lin_vel
E_body_ang_vel
E_joint_pos
E_joint_vel

对 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 trackingWristMimic-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,后续再按单因素实验选择:

  1. Scheduled contact:reference contact active 时,目标 hand links 必须按显式 part-level contact command 产生 object contact。
  2. Anti-contact:reference contact inactive 时,非目标 fingers/body contact 受到惩罚。
  3. Contact coverage:reference 指定的独立 hand links 得到足够覆盖;不使用对所有 object 固定的 finger 数量阈值。
  4. Opposition:仅在 reference topology 表示 pinch/power grasp 时启用,不用于 palm support、push 或 handle sliding。
  5. Relative velocity:跟随 reference surface-relative velocity;只有 reference 是稳定 grasp 时目标才接近 zero。
  6. Relative transform:跟随 reference T_hand_object(t);仅在 reference 关系静止时才要求固定,不妨碍 handoff、sliding 或 in-hand rotation。
  7. Force regularization:按 object_mass * gravity 归一化,避免单次巨大 impulse 或夹持力爆炸。
  8. 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↔FingerSupport↔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:

E_delta       = mean(delta_a^2)
E_delta_rate  = mean((delta_a_t - delta_a_t-1)^2)

仅当 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 两个独立选择轴

需要先分开选择:

  1. Action/control parameterization:direct PD action、pretrained latent action、action residual 或 latent residual。
  2. Conditioning target:dense human/object reference、object trajectory、contact command 或 task/scene goal。

当前没有证据说明某一种 action parameterization 必须绑定某一组 observation。第一轮实验不做跨方法混合。

6.2 ResMimic:Frozen tracker + action residual

ResMimic 原始结构是:

a_base = frozen_GMT(base_observation)
delta_a ~ pi_residual(full_observation)
a = a_base + delta_a

原始实现不要求 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_muuse_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.4313.17/31.9812.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+1t+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

a ~ pi(
    current_human_and_object_link_state,
    current_human_and_object_reference_pose
)

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:

dense human/object reference + geometry/contact -> direct teacher action

MaskedManipulator 才是后续 sparse masked-goal student。两者都不是 PHC-X residual baseline。

6.8 ContactMimic:Direct keypoint/contact policy

ContactMimic 是:

a ~ pi(proprioception, reference_keypoints, desired_binary_contacts)

它没有 object future trajectory、dexterous fingers 或 residual。它用于 contact controllability,而不是完整 dynamic grasp teacher。

6.9 UniHSI 与 TokenHSI:Task/scene-conditioned policy

UniHSI:

a ~ pi(humanoid_state, object_target, Chain_of_Contacts, contact_direction, local_heightmap)

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. 主要风险

  1. Reference grasp 本身不精确。 Teacher 可以小幅偏离 reference 来获得真实接触,因此 interaction reward 不能被逐关节 hand pose 完全压制。

  2. 不同 action parameterization 的搜索难度不同。 Action residual、PULSE-X latent 和 direct 153D SMPL-X control 必须分别实测,不能只凭维度判断优劣。

  3. Cup 太轻,接触容易产生高角速度。 需要 contact impulse/object acceleration regularization,但不能把 object 改成 kinematic。

  4. 单轨迹 overfit 可能记忆 absolute time。 所有空间输入使用 root-local delta;成功后加入 random start、timing perturbation 和 object variation。

  5. Full scene physics 成本高。 Simulator 保持 interaction/support 高精度 collision、其他 obstacle proxy;actor 只读取 local scene features。

  6. 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. 主要资料