PhysHSI General High-Level Task Plan
日期:2026-06-10
0. 文档定位
本文档只描述 PhysHSI 的最高层任务规划:系统最终要解决什么问题、整体流水线如何分层、每一层的输入输出是什么、阶段性目标如何验收。
它不绑定某一个 baseline、某一次实验、某个 prompt 或某条 one-off 脚本。具体实现细节和实验路线应继续放在独立文档中,例如 Kimodo pipeline、HOSIG、InteractMove、ProtoMotions bridge 等专项计划。
SUGAR / SUGAR Humanoid 启发的 policy-data pipeline 修订方案见 docs/sugar_inspired_physhsi_framework_plan_20260611.md。
Generated motion→physics refiner→state-based student 的完整方法族和实验矩阵见
docs/exp/generated_motion_to_physical_execution_strategy_20260724.md。
1. 一句话目标
构建一个从 SAGE 室内场景出发,自动生成长程 Human-Scene Interaction / Human-Object Interaction 任务,并进一步产生可视化、可物理优化、可训练 policy、可评测、可打包为训练数据的通用流水线。
核心目标不是只生成一个好看的 demo,而是形成可复用的数据生成和评测闭环:
SAGE scene
-> task plan
-> geometry validation
-> motion/reference generation
-> kinematic prior dataset
-> physics refinement
-> refined executable trajectory
-> full-reference teacher / command tracker
-> goal-conditioned state-based policy distillation
-> state-based RL post-training
-> policy rollout
-> task/quality metrics
-> paired HSI dataset
这里有一个必须保持的训练/部署边界:
- KIMODO motion、physics refiner和full-reference teacher可以在训练期读取完整 human/object/contact trajectory;
- 最终student在部署时不能读取dense HOI reference,只读取current state和 sparse task goals;
- dynamic pick–place首先使用object goal state;通用HSI/HOI再扩展为 TokenHSI-style task tokens、UniHSI-style contact chain或VLM-RMD-style relation goals。
InterPrior提供teacher→variational distillation→state-based RL post-training的 motor-prior训练模板;TokenHSI、UniHSI和VLM-RMD提供互补的goal interface。 它们都位于最终student阶段,不替代前面的KIMODO生成与physics refinement。
2. 总体原则
- SAGE 是场景与任务几何的 source of truth。
- 任务生成、运动生成、物体绑定、物理优化、teacher/student policy、评测必须分层,不把所有逻辑塞进一个脚本。
- 每个阶段都必须写出 manifest,记录输入、输出、参数、失败原因和可复现命令。
- Baseline 和外部方法通过 adapter 接入,不把上游仓库改成项目内部代码。
- 任何可展示结果都必须同时有结构化数据和可视化产物,不能只有视频。
- 先保证全局任务正确、路径正确、场景对齐正确,再逐步提升手物接触和动作细节。
3. 系统分层
| 层级 | 目标 | 主要输入 | 主要输出 |
|---|---|---|---|
| Scene Layer | 选择和解析可交互 SAGE 场景 | layout_*.json, scene assets |
scene bank, scene context, affordance summary |
| Task Layer | 生成可执行长程任务 | scene context, topdown image, constraints | task_plan.json, semantic plan |
| Validation Layer | 校验任务几何可行性 | task plan, occupancy map, humanoid params | task_validation.json, A* paths, validated steps |
| Adapter Layer | 转换给不同 baseline / generator | validated plan | baseline inputs, Kimodo constraints, native configs |
| Motion Layer | 生成 human / object kinematic proposal | constraints, text, keyframes, scene hints | motion .npz, object tracks, contact hints |
| Physics Refinement Layer | 将 kinematic proposal 修正为物理一致 reference | motion proposal, scene proxy, contact/object constraints | physics-refined motion, refined object tracks, quality labels |
| Teacher / Tracker Layer | 用 refined reference 训练或驱动 privileged teacher 与 command tracker | refined reference, simulator state, task signal | teacher / tracker checkpoints, rollouts |
| Distillation Layer | 从 teacher / tracker rollout 蒸馏 state-based high-level policy | teacher rollouts, state observations, task labels | state-based policy checkpoint |
| Evaluation Layer | 统一评测任务完成和 policy 质量 | canonical plan, rollout trace, metrics config | validation report, metrics summary |
| Dataset Layer | 打包可训练样本 | plan, scene, motion, teacher/student rollout, metrics | paired HSI sample directory |
4. 任务抽象
任务应按多个层次表达,而不是只用自然语言描述。
4.1 Scene-Level
描述房间、物体、门、支撑面、可行走区域、障碍物和候选交互目标。
关键产物:
scene_context.json- affordance candidates
- occupancy / navigation artifacts
- topdown visualization
4.2 Semantic-Level
描述人要完成的高层子任务序列。
示例:
go to the table
pick up the book
carry it to the sideboard
place it on the sideboard
sit on the chair
关键要求:
- 子任务顺序明确
- 每个子任务绑定目标物体或目标区域
- 不合并导航和交互动作
- 任务长度、难度、动作类型可控
4.3 Primitive-Level
把语义动作拆成稳定 primitive。
当前核心 primitive:
| 类别 | 动作 |
|---|---|
| HSI | reach, sit, get_up, lie_down |
| HOI | pick, place, carry, open, close, push, pull, kick |
每个 primitive 必须能落到明确几何目标:
- humanoid root target
- standing point
- interaction point
- manipulated object id
- object start / target pose
- optional contact or keyframe hint
4.4 Motion-Level
把 primitive 转成可生成或可优化的 kinematic motion proposal。
这一层不应该重新决定任务目标,只能消费 Validation Layer 给出的权威几何信息。
最低要求:
- human root path 与 A* path 一致
- heading 合理连续
- sit / lie / pick / place 等动作有明确时间段
- active object trajectory 可导出
- segment boundary 不出现明显跳变
4.5 Physics-Refinement-Level
把 kinematic proposal 放回物理环境中修正,使其更接近可执行 reference。
这一层的职责不是重新规划任务,而是修正 motion 的物理质量:
- 减少穿模、脚滑、身体不稳定
- 保持 human root / object goal 不偏离 validated task
- 修正接触、支撑高度、物体轨迹连续性
- 给每条 refined reference 产出质量标签
关键输出:
- physics-refined human motion
- refined object tracks
- contact / collision report
- refinement quality metrics
4.6 Teacher / Tracker-Level
基于 physics-refined reference 训练或驱动 privileged teacher / command tracker。Teacher 可以使用更强的 privileged 信息,例如完整 simulator state、reference motion phase、未来目标、object pose、contact hint 等;tracker 则学习执行短 horizon command chunk,把 refined reference 变成可闭环执行的底层能力。
这一层的目标是先把任务在物理环境中稳定做出来,而不是直接作为最终部署策略。
关键输出:
- teacher policy checkpoint
- command tracker checkpoint
- teacher rollout trace
- teacher success / failure report
- teacher-generated state-action dataset
4.7 State-Based High-Level Policy-Level
从 teacher / tracker rollout 蒸馏或训练一个 state-based high-level policy。Student 的输入应更接近后续统一 policy 训练所需的状态表示,而不是依赖完整 privileged reference。
最低要求:
- student 消费统一 state observation
- student 保持 task-conditioned 或 primitive-conditioned 能力
- student 可输出 command chunk 或 waypoint,再交给底层 tracker 执行
- student rollout 能被同一套 task validator 和 metrics 评测
- distillation 数据能追溯到 teacher、refined motion 和原始 SAGE task
关键输出:
- state-based policy checkpoint
- student rollout trace
- student validation report
- teacher-student gap metrics
4.8 Evaluation-Level
任务是否成功由结构化评测决定,而不是主观看视频。
最低评测维度:
- completion rate
- success rate
- precision error
- root path deviation
- object final error
- collision / fall / big force
- hand-object contact quality
- scene penetration / support height error
5. 阶段性路线
M0:Contract Lock
目标:稳定项目内部最小数据协议。
交付:
- plan directory contract
- canonical task plan contract
- observation trace contract
- motion/reference sample contract
- manifest 字段规范
验收:
- 任意阶段都能通过 manifest 找回上游输入和下游输出
- 不依赖文件名猜参数
M1:Single-Scene End-to-End
目标:在一个固定 SAGE 场景上跑通完整闭环。
交付:
- 一个 validated task
- 一个 motion/reference
- 一个 full-scene render
- 一个 offline trace
- 一个 validation report
验收:
- scene、human、active object 坐标一致
- 视频可人工检查
- metrics 可自动复算
M2:Multi-Primitive Coverage
目标:覆盖主要 HSI / HOI primitive。
优先级:
reachsit,get_uppick,carry,placepush,pull,kicklie_downopen,close
验收:
- 每个 primitive 至少有一个可复现 smoke case
- 每个 case 都有 task plan、motion、render、metrics
M3:Benchmark Batch
目标:从单例 demo 进入小规模 benchmark。
交付:
- curated scene bank
- fixed task set
- batch runner
- batch summary report
验收:
- 至少 10 个 SAGE scene
- 每个 scene 至少生成 1-3 个 validated task
- 失败样本有明确失败原因分类
M4:Physics Refinement
目标:把 motion generation 得到的 kinematic proposal 修正为物理一致 reference。
交付:
- MotionLib / SceneLib bridge 或等价物理接口
- physics-refined motion/reference
- refined object tracks
- contact / collision / support-height report
验收:
- refined reference 仍满足原始 task goal
- 明显减少穿模、脚滑、跳变和不稳定接触
- 每个失败样本有 refinement failure reason
M5:Teacher / Command Tracker
目标:基于 physics-refined reference 训练或驱动 privileged teacher,并蒸馏出能执行短 horizon command 的 command tracker。
交付:
- teacher policy checkpoint
- command tracker checkpoint
- teacher rollout trace
- tracker rollout trace
- teacher state-action dataset
- teacher validation report
验收:
- teacher 在训练场景中高成功率完成任务
- tracker 能稳定执行 refined command chunk
- teacher rollout 可由统一 validator 复评
- teacher failure 可映射回 task、motion 或 physics refinement 问题
M6:State-Based High-Level Policy Distillation
目标:把 teacher / tracker 的能力蒸馏到 scene-aware state-based high-level policy。
交付:
- state-based policy checkpoint
- distillation dataset
- student rollout trace
- teacher-student gap report
验收:
- student 使用统一 state observation,而不是依赖完整 privileged reference
- student 可基于 object state、local height map / occupancy、task goal 生成 command 或 waypoint
- student success rate 接近 teacher 的可接受比例
- student failure mode 被结构化记录
M7:Paired HSI Dataset
目标:形成可用于训练的 paired sample。
每个 sample 至少包含:
manifest.json
scene_context.json
task_plan.json
task_validation.json
motion_reference.npz
physics_refined_motion.npz
object_tracks.npz or json
teacher_rollout_trace.jsonl
tracker_rollout_trace.jsonl
observation_trace.jsonl
validation_report.json
metrics_summary.json
preview.mp4
final_frame.png
验收:
- dataset 可被 loader 批量读取
- 可按任务类型、primitive、scene、质量指标过滤
- 可复现实验结果
6. 最小成功标准
一个样本进入可用集,至少满足:
- task plan 通过几何校验。
- human root 轨迹不明显偏离 validated path。
- active object 的最终状态符合任务目标。
- full-scene render 中 human、object、scene 坐标对齐。
- physics refinement 没有破坏原始 task goal。
- teacher rollout 能被 validator 复评。
- state-based student policy 有对应 teacher-student gap 记录。
- 失败或低质量原因被结构化记录。
7. 当前优先事项
短期应优先做这些事:
- 固化 plan / validation / trace / sample manifest 的最小字段。
- 把 Kimodo pipeline 从 one-off 实验脚本中抽离成稳定批处理入口。
- 为每个 primitive 建一个最小 smoke case。
- 定义 motion generation 到 physics refinement 的输入输出协议。
- 定义 physics-refined reference 到 teacher / command tracker 的训练接口。
- 定义 tracker rollout 到 state-based high-level policy dataset 的字段。
- 统一 full-scene render 和 representative frame 的输出规范。
- 打通 task validator 对 teacher / student rollout trace 的消费。
- 对 batch 失败做 taxonomy,而不是只保存报错日志。
8. 风险与缓解
| 风险 | 影响 | 缓解 |
|---|---|---|
| VLM 输出不稳定 | task plan 难复现 | 强化 schema、retry feedback、mock/response-file backend |
| IsaacSim capture 慢或挂起 | batch 卡住 | capture cache、timeout、scene preflight |
| 手物接触质量差 | HOI 数据不可用 | 先记录 object track 和 contact hint,再逐步加 keyframe/contact optimizer |
| physics refinement 失败 | kinematic motion 不能进入 teacher 训练 | 分离 motion success 与 physics-refined success,做 repair/filter |
| teacher policy 过度依赖 privileged state | student 难以蒸馏 | 明确定义 teacher-only fields 和 student observation fields |
| student policy gap 过大 | state-based policy 无法复现 teacher 能力 | 记录 teacher-student gap,按 primitive 分解失败原因 |
| 外部 baseline 输入格式不统一 | adapter 容易碎 | 只通过窄 adapter 消费 canonical plan |
| 结果只可视化不可复算 | 无法形成数据集 | 每个视频必须对应结构化 trace 和 metrics |
9. 判断标准
项目是否向前推进,不看单个 demo 是否“看起来不错”,而看以下问题是否能稳定回答:
- 这个任务来自哪个 SAGE scene?
- 目标物体、目标位置、路径是否可追溯?
- 运动是否遵守任务几何?
- 物体是否真的完成了目标状态变化?
- physics refinement 是否提升物理质量且不破坏任务?
- teacher policy 是否能稳定复现 refined reference 的任务能力?
- state-based student 是否能通过 distillation 接近 teacher?
- 结果能否被统一 validator 复评?
- 失败样本能否被分类、复现、改进?
只要这些问题的答案越来越结构化,PhysHSI 就会从 demo collection 逐步变成一个可扩展的数据生成系统。