Skip to content

Feat: 建立未注册的 Go2 flat Manager-Based task config fixture #1086

Description

@TATP-233

一句话问题

Go2JoystickFlat pilot 所需的 manager lifecycle、entity facade 与最小 terms 已分别具备,但仓库还没有一个 task-owned Python factory 把它们按社区 Manager-Based 配置结构组装起来;因此还无法在不接 production registry/Hydra 的前提下证明完整 pilot 表面可以被同一份 NumPy config 构造和执行。

只做什么

新增未注册的 Go2 flat Manager-Based task config factory,并用真实 MuJoCo fixture 验证:

  • policy / critic observation term 顺序与维度分别为 49 / 52;
  • 单个 12-D JointPositionAction、twist velocity command、default + uniform root reset;
  • 当前 Go2 flat 已启用的 9 个非零 reward key、weight、tracking sigma 与 base-height target;
  • time_out 与 bad_orientation termination;
  • ManagerBasedRlEnv 可 reset、执行一步并返回有限的 NumPy NpEnvState。

Factory 保持 pinned mjlab 的 plain config instance、ordered dict、func + params 结构,只做 UniLab asset/entity/sensor 名称与 NumPy runtime 适配。测试 fixture 直接构造 backend/env,不注册新 task 名,不经 scripts。

不做什么

  • 不修改或注册 production Go2JoystickFlat,不改现有 Go2 env、Hydra YAML、registry 或训练入口。
  • 不接入现有 DomainRandomizationManager,不迁移 kp/kd、mass、COM、gravity、push 或 terrain curriculum。
  • 不新增 SimBackend method、scene/entity capability、共享 lifecycle、runner、IPC 或 learner 逻辑。
  • 不实现 foot drag 或扩大 reward/action/observation catalog。
  • 不宣称 Motrix/Drake production support;本 child 只用已支持的真实 MuJoCo fixture 证明 config 可执行。

Owner、规模与永久维护

Env task owner;普通行为 child。预计 2–3 个文件、≤600 行净手写新增、1 PR。永久维护项是一份 Go2 task factory 与一个近风险 fixture;不形成第二套 runtime 或配置系统。

Umbrella: #1042
Depends on: #1051, #1055, #1057, #1060, #1061, #1063, #1067, #1072, #1074, #1079, #1081, #1082, #1084

Acceptance criteria

  • Factory 的公共形态对应 pinned mjlab task-owned Python factory,全部数值 buffer/term 为 NumPy 路径。
  • term 名称、插入顺序、参数、weights、observation/action dimensions 与当前 Go2 flat default PPO owner 逐项有测试证据。
  • 真实 MuJoCo construction/reset/step 不依赖 legacy RewardContext、Go2WalkTask、runner、IPC 或 training。
  • 能力、shape、NaN/Inf 缺口在现有最近 owner 边界 raise;无 warning/skip/zero/fallback。
  • focused tests、ruff、mypy、pyright 与最终本地 make test-all 通过。

Stop conditions

  • fixture 需要新增 backend/entity public capability、修改 ManagerBasedRlEnv lifecycle 或绕过正式 contract。
  • 保持 pilot 语义必须接入共享 DR、production registry/Hydra 或修改现有 Go2 task。
  • 超过 3 个文件或 600 行净手写新增。

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions