Skip to content

Work: 将 G1WalkFlat NumPy 路径迁移到配置驱动 term plan #920

Description

@TATP-233

一句话问题

G1WalkEnv.update_state() 的 reward、observation、termination 仍由 task 方法和固定拼接顺序直接编排,不能通过统一的结构化 plan 选择和验证 term。

为什么现在做

  • Work: 建立最小结构化 term plan 与 NumPy Tier 1 runtime #919 提供最小 registry/resolved plan/Tier 1 runtime,但尚无真实 task 证据。
  • G1 walk 已有 callable reward 表、固定 obs layout 和 task-owned termination,适合作为第一个简单 pilot。
  • 先迁移 NumPy 路径可冻结配置与数值语义,避免同时调试 JIT/codegen。

最小交付结果

G1WalkFlat 的 NumPy update_state 数值部分消费 #919 resolved plan;owner config 可选择已注册 reward/observation/termination term,现有 step/reset/curriculum 行为保持不变。

In scope

  • 注册 G1 walk 当前实际使用的 reward、actor/critic observation 和 termination term。
  • owner YAML 表达 term 选择、顺序、weight 和既有数值参数;算法超参数仍由原 YAML compose。
  • 从 config 冷路径生成 plan,并由 Tier 1 executor 写入 task-owned/preallocated outputs。
  • obs_groups_spec 从 resolved observation layout 得到一致维度,保持 actor/critic 现有 ABI。
  • 对未知非零 reward、非法 observation layout 和 output shape fail closed。
  • 保留 curriculum、action preparation、DR、autoreset 和 terminal observation 现有 owner/lifecycle。

Non-goals

  • 不实现或启用 Numba 自动融合;现有实验性 Numba 路径暂时保留作后续 baseline。
  • 不迁移 motion tracking、G1 rough/23DoF 或其他 locomotion task。
  • 不修改 backend、runner、training entrypoint、checkpoint 或 sim2sim contract。
  • 不新增 history、通用 event/DR 或新的 observation feature。

Owner 与预计改动

  • Owner:src/unilab/envs/locomotion/g1/、相关 term registration、G1 owner config 和局部测试。
  • 预计 9–15 个文件,≤800 行净手写改动,1 个 PR。
  • PR base:refactor/issue-902-mjwarp-squashed-delivery;不得向 main 提 PR。

Acceptance criteria

  • G1WalkFlat NumPy 路径的 reward/obs/termination 全部来自同一 resolved plan。
  • 不改 Python 源码,仅改 pilot owner YAML 可关闭/恢复一个已注册 reward term,并能调整 observation term 顺序;维度变化显式反映到 obs_groups_spec
  • 默认 pilot 配置与迁移前 reward/obs/termination 在冻结容差内一致。
  • reset、curriculum、action latency、noise 和 terminal observation 行为无变化。
  • 所有既有 G1WalkFlat owner config 继续 compose;本 issue 不要求任何 backend 专项运行验证。
  • warm numeric path 不解析 config/asset,也不使用 getattr/hasattr 探测 backend 私有能力。
  • 局部测试通过;创建/更新 PR 前通过 make test-all

Stop conditions

  • 超过 15 个文件或 800 行净手写改动。
  • 需要修改 NpEnv lifecycle、backend contract、runner 或训练 ABI。
  • 为保持当前数值行为必须顺手迁移 G1 rough/23DoF 或其他 task。
  • observation 可配置化会导致无法在冷路径确定稳定维度。

Dependencies

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions