Skip to content

test: UniSim 公共场景契约的消费兼容与操作 smoke #1609

Description

@TATP-233

Parent roadmap:https://github.com/unilabsim/unisim/issues/154(A/E)。依赖 unilabsim/unisim#155 公共 MJCF normalization/layout 契约。Owner:UniLab SceneCfg/backend factory、Manager-Based entity/reset/control 消费层。Intended PR base:本仓 main;待 UniSim 公共契约冻结后开发,不从已结束的 M2 分支继续。

问题与证据

审计基线:UniLab 2fe53fba,UniSim 1.6.0。src/unilab/envs/manager_based_rl_env.py_resolve_backend_entity_contract() 和构造路径按 cfg.scene.entity_assets 分支;只有该字段非空才从 backend 初始化 ctrl 并向 ResetStateTransaction 传入 get_scene_layout()。这是现有契约下的行为,不据此宣称当前存在 bug。UniSim 公共组合契约更新时,需要验证这些消费假设、默认控制与 reset 时序仍成立,按实际变化迁移。

src/unilab/base/backend_factory.py 负责调用资产 hub;公共归一后的 source 关系必须与该 owner 协调,不能让 env 热路径解析资产或绕过资产注册。下游不另建 MJCF composer。

交付与边界

  • 核对 UniSim 冻结后的公共 profile/归一契约与现有 SceneCfg 消费假设,仅按必要的接口变化迁移;保留旧场景/native profile 兼容边界,不因 XML 文件组织方式增加消费分支。
  • primary/entity selectors、默认 ctrl、default state、具名索引和 selected reset 事务保持契约一致;不访问 backend 私有模型或缓冲区。
  • 在冷路径完成资产 hub 依赖准备与公共 normalization 的衔接;任务/Hydra、资产所有权与 Manager 调度仍留在 UniLab。
  • 使用现有逻辑 selectors 与 Manager 接口做端到端 fixture:robot + passive object + table + mirror,验证构造、状态、默认控制、局部 reset、step、固定 variant 身份及完整场景 playback source。
  • 非 round-robin N5/K2 [1,1,0,1,0] 至少在已支持的 MuJoCo 路径验收;IsaacSim round-robin profile 可先验证,任意 assignment 的 native 验收依赖 isaacsim: 任意 per-env 指派的 K 原型精确 spawner unilabsim/unisim#82,不把拒绝测试算支持。
  • 公共控制程序若由 补齐 Isaac Sim adapter 的多实体操作场景支持 unilabsim/unisim#72MJWarp Phase 2: device-resident pre-step control unilabsim/unisim#152 引入,记录独立消费接入范围;本项不自行设计 worker controller 或跨进程生命周期。

验收与迁移

以既有 tests/base/test_entity_scene_consumer.pytests/envs/test_multi_entity_consumer.py 为基线,覆盖省略字段保持、未选实体/环境隔离、mirror 继承身份而不继承 pose,以及 public state/action 维度的兼容性。未支持组合构造期明确拒绝。

链接 ADR-0007ADR-0006 及 UniSim 公共组合 ADR。若改变 policy-I/O 或 network-shape 字段,同步 sim2sim contract 和测试;本项不预先授权改变维度。

最终 head 跑 focused consumer/config/reset tests、make checkmake test,创建/更新 PR 前跑 make test-all;main PR 等当前 head CI。涉及 docs 时遵循 docs/sphinx/AGENTS.md。双语迁移说明记录安装版本、入口行为及 unsupported 边界。真实 Isaac 证据单独记录,不以 mock 或训练曲线替代。native camera 仍由 unilabsim/unisim#133 独立跟踪。

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