Skip to content

标准化 play variant:play_profile 扩展到 DR/noise/push/curriculum 剥离并覆盖全部 play 入口(roadmap #1252 第 3 点遗留) #1499

Description

@TATP-233

来自 roadmap #1252 第 3 点的遗留部分(该 roadmap 已检查关闭)。

现状(已落地部分)

play 的组装侧已半标准化:

  • src/unilab/base/config_adapter.py:50-115 BackendAdapter.build_play_env_cfg_override():统一消费 owner YAML 根部的 play_profile 段(play_profile.env 浅合并进 env override,play_profile.scene 冷路径物化视觉场景 XML);约 46 个 owner YAML 已声明 play_profile
  • 回放 session 工厂收敛到 src/unilab/visualization/interactive_playback.pycreate_rsl_rl/appo/sac/hora_distill_playback_session),PPO/APPO/SAC/TD3/FlashSAC 主入口都走 build_play_env_cfg_override()

遗留缺口(本 issue 的范围)

  1. play_profile 只有渲染语义:全仓 owner 的 play_profile 键只有 render_spacing 和场景视觉键(source_model_file/ground_texture_file/skybox_rgb1/2/ground_texrepeat),没有任何 owner 在 play 时关闭 DR/noise/push/curriculum——例如 conf/ppo/task/go2_arm_manip_loco/motrix.yaml:94-109 play 时仍 push_robots: true + 全量 domain_rand,观测 corruption(enable_corruption: true)同样生效。mjlab 惯例是 task 工厂 play=True 分支剥离 corruption/pushes/curriculum。
  2. 入口覆盖不齐scripts/play_interactive.py:924src/unilab/scripts/play_hora_appo.py:110scripts/play_viser.py:224 仍走 build_task_env_cfg_override(),play_profile 不生效;且 play_profile 门控在 training.play_onlyconfig_adapter.py:69),训练后回放(play_only=false)连渲染档也跳过。
  3. 无 schema/契约structured_configs.py 无 play 字段,play_profile 的可用键集合没有声明式约束与审计。

交付边界

  • 扩展 play_profile(或新增声明式 play 段)支持剥离 domain_rand / noise / push / curriculum 键,并在 structured_configs.py 或 conf 契约文档中固化支持字段集;提供共享默认 play profile 避免 owner 重复;
  • 三个未覆盖入口改走 play override;重新评估 training.play_only 门控使训练后回放也应用 play variant;
  • 与 sim2sim WARNING_LIST 衔接(play 变更不得触发跨后端契约误判);
  • 不引入新的 play 执行入口,复用现有 playback session 工厂(roadmap 边界)。

预计规模:10 文件 / 500 行以内。外部卫星仓(microduck_rl_unilab、engineai_rl_unilab)的 owner 同步补 play_profile 作为验收样例。

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