一句话问题
Manager core 已有社区 CommandManager,但 UniLab 尚无可用于 production locomotion 的社区 velocity command term,Go2 仍把 command 放在私有 info 与 reset provider 中。
为什么现在做
#1054 已交付 joint-position action;Go2 pilot 的 observation/reward 都依赖一个 manager-owned velocity command。现有 SimBackend 已正式提供 root body-frame 速度和 quaternion 所需状态,不需要新增 backend method。
最小交付结果
迁移 pinned mjlab v1.6.0 的 UniformVelocityCommandCfg / UniformVelocityCommand 到 NumPy,保留 resampling、heading、standing、world-frame、forward-only、metrics 与局部 reset 语义;entity facade 只补 term 必需的 root body-frame 速度和 heading 只读视图。
In scope
- source-aligned NumPy command term与公开 exports。
- 使用 env-owned NumPy RNG 与预分配 command/metric buffers。
- entity root
lin_vel_b、ang_vel_b、heading_w 视图,只调用既有正式 SimBackend。
- config range/ratio/shape/finite 与 partial reset focused tests。
init_velocity_prob > 0 在构造期明确报 capability error;viewer request 继续由 CommandManager 明确拒绝。
Non-goals
- 不接 Go2 task、observation/reward/termination、Hydra、Event/DR、runner 或 IPC。
- 不新增 root velocity write、backend public method或 viewer glue。
- 不迁移其他 command catalog。
Owner 与预计改动
Command/entity adapter;4–7 个文件、≤700 行 source-derived/机械/UniLab glue,1 个 PR;base 为 dev/issue-1042-manager-based-api。关联 ADR-0006。
Acceptance criteria
- 公共 cfg/build/command buffer 与 pinned scheduling 语义有 NumPy tests。
- 相同 seed、局部 reset与定时 resample可复现,standing/heading/world/forward 分支有 focused evidence。
- root view 的 shape/finite/capability 在最近边界 fail-closed;热路径无 asset/XML/name解析。
- package 无 Torch、IPC、runner、learner或 backend-private import。
make test-all 通过。
Stop conditions
若实现需要新的 backend method、root state write、viewer runtime,或 command 规则必须进入 runner/IPC,则停止并拆 owner child。
Umbrella: #1042
Depends on: #1054
一句话问题
Manager core 已有社区
CommandManager,但 UniLab 尚无可用于 production locomotion 的社区 velocity command term,Go2 仍把 command 放在私有info与 reset provider 中。为什么现在做
#1054 已交付 joint-position action;Go2 pilot 的 observation/reward 都依赖一个 manager-owned velocity command。现有
SimBackend已正式提供 root body-frame 速度和 quaternion 所需状态,不需要新增 backend method。最小交付结果
迁移 pinned mjlab v1.6.0 的
UniformVelocityCommandCfg/UniformVelocityCommand到 NumPy,保留 resampling、heading、standing、world-frame、forward-only、metrics 与局部 reset 语义;entity facade 只补 term 必需的 root body-frame 速度和 heading 只读视图。In scope
lin_vel_b、ang_vel_b、heading_w视图,只调用既有正式SimBackend。init_velocity_prob > 0在构造期明确报 capability error;viewer request 继续由CommandManager明确拒绝。Non-goals
Owner 与预计改动
Command/entity adapter;4–7 个文件、≤700 行 source-derived/机械/UniLab glue,1 个 PR;base 为
dev/issue-1042-manager-based-api。关联 ADR-0006。Acceptance criteria
make test-all通过。Stop conditions
若实现需要新的 backend method、root state write、viewer runtime,或 command 规则必须进入 runner/IPC,则停止并拆 owner child。
Umbrella: #1042
Depends on: #1054