Skip to content

feat(env):修复 mapped Entity 与 state-feedback substep 生命周期 - #2536

Merged
TATP-233 merged 3 commits into
mainfrom
feat/issue-2535-env-fixes
Oct 28, 2026
Merged

TATP-233 merged 3 commits into
mainfrom
feat/issue-2535-env-fixes

Conversation

@lemon-star608

@lemon-star608 lemon-star608 commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

概述

本 PR 只保留两项 UniLab 纯 environment 修复,对应 #2535。

  1. Mapped Entity 寻址:冷构造阶段按公开 body name,将 mapped Entity 的 body 选择绑定到后端 body-state row。CompiledSceneLayout body ID 仍是 scene/model 地址;packed backend 可以省略 world row,两种数值地址空间不再混用。
  2. State-feedback physics substep:action term 声明 requires_substep_state_feedback=True 后,Manager 在每个 substep 刷新公开 packed state、调用 apply_substep_action() 重算控制并单独步进。所有内置 action 和默认路径仍是一次 feed-forward 控制加一次批量 step_tensor(..., sim_substeps)。

范围边界与默认影响

  • 默认任务和 action 行为不变,只有 opt-in action term 使用逐 substep state feedback。
  • 不包含 RL、replay、IPC、learner、optimizer、AMP、off-policy runner 或 training scripts。
  • 不包含 Viser pause_on_done;现有手动暂停满足使用需求。
  • 不包含 NanGuardProtocol;CHORD 直接复用 UniLab training.tensor_diagnostics.NanGuard/NanGuardCfg,无需上游改动。
  • 不包含 deferred contact consumer。

验证

最终本地 HEAD d2080720:

  • make check:通过。
  • make test-all:通过;coverage 为 2835 passed / 62 skipped / 375 deselected,benchmark module imports 35/35、script imports 36/36。
  • mapped Entity、substep、默认批量控制和 completion/timing 均有聚焦回归。
  • CHORD make check:通过。
  • CHORD make test:1000 passed / 16 skipped;跳过均为既有可选 mjbatch、Metal/MPS 和双 GPU 条件。
  • CHORD 直接复用 UniLab 默认 NanGuard,真实 Newton 4096-env、6-iteration 短训练完成:update_count=2、environment_steps=20480、参数 finite。

最终 SHA 的远程 CI 和 Docs 全部通过,包括 core、environments、applications、RL、coverage 和 benchmark smoke。

关联工作

@lemon-star608

Copy link
Copy Markdown
Collaborator Author

CHORD 兼容验证补充(最终环境侧残留已下沉):

  • 使用本 PR worktree 的 unilab.base.torch_env,CHORD 全量 make check 通过,make test 为 1005 passed / 16 skipped;跳过均为既有可选 mjbatch、Metal/MPS 和双 GPU 条件。
  • raw reward names、unweighted/pre-dt terms、weights/dt、ReferenceCommand stage 和 critic context 现由 CHORD SharpaChordEnv 自己发布,不再依赖 UniLab RewardManager/ManagerBasedRlEnv 的 integration-only 扩展。
  • 使用本 PR + CHORD 自有 FlashSAC 入口完成 tissue 4096-env、6-iteration 短训练:update_count=2、environment_steps=20480,actor/critic/target 参数 finite,residual optimizer group 保持 0.1。
  • CHORD NanGuard 通过 environment NanGuardProtocol 正常工作;训练未调用 unilab.rl、unilab.training 或 unilab.scripts。

这些结果只证明 environment 兼容和真实训练链路,不构成性能 benchmark 或收敛声明。

@lemon-star608 lemon-star608 changed the title feat(env): finish pure environment lifecycle fixes feat(env):完成纯 environment 生命周期修复 Oct 28, 2026
@lemon-star608
lemon-star608 force-pushed the feat/issue-2535-env-fixes branch from 8292630 to d208072 Compare October 28, 2026 12:25
@lemon-star608 lemon-star608 changed the title feat(env):完成纯 environment 生命周期修复 feat(env):修复 mapped Entity 与 state-feedback substep 生命周期 Oct 28, 2026
@TATP-233
TATP-233 merged commit 5df7693 into main Oct 28, 2026
12 checks passed
@TATP-233
TATP-233 deleted the feat/issue-2535-env-fixes branch October 28, 2026 12:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants