背景
UniSim 1.7.x 为 IsaacSim 后端交付了有界、带读回验证的 PhysX solver 配置(unilabsim/unisim#251、#259):unisim.create_backend("isaacsim", ...) 接受 isaacsim_solver_position_iteration_count、isaacsim_solver_velocity_iteration_count、isaacsim_bounce_threshold_velocity、isaacsim_contact_offset(worker profile 另有 rest_offset/max_depenetration_velocity),映射到 PhysX 场景后由 host 严格比对请求值与引擎读回值。
缺口
在 UniLab 标准路径(registry.make → make_manager_based_rl_env → create_backend)上,这些旋钮没有任何通道能到达后端:
unilab/base/backend_factory.py::env_backend_kwargs(main @ 3a3576a,25-60 行)负责把 EnvCfg 的后端旋钮翻译成 UniSim 适配器选项,但 EnvCfg 没有 IsaacSim solver 配置的字段,该函数也不转发;
- 任务 owner(Hydra YAML → EnvCfg)因此无法声明求解器表,后端只能静默使用 PhysX 默认值。
用例
我们在把 SimToolReal teacher 任务(KUKA iiwa14 + SHARPA 手,1200 工具变体池)迁移到 UniLab + UniSim(MJCF 资产 + mapped entity 场景)。原训练钉了一张特定的 PhysX 求解器表(position iterations 8、velocity iterations 0、bounce threshold 0.2、contact offset 0.002、rest offset 0.0、max depenetration velocity 1000)。训练等价性要求这些值能经公共配置路径到达后端,而不是依赖默认值。
提案
EnvCfg 增加 isaacsim_solver_* 字段(沿用现有按后端命名的旋钮惯例),并在 env_backend_kwargs 中转发。UniSim factory 本就接受同名 kwargs,转发是机械工作;我们乐意贡献这个 PR。
相关(独立、不阻塞我们)
unilab/base/reset_state.py:1114-1121 在 mapped 场景拒绝 DR 写("mapped scene DR writes need a public entity transaction"),使 unilabsim/unisim#248 交付的 reset-time 模型 DR 从 Manager-Based 事件项完全不可达。我们暂不需要(增益/摩擦已烘焙进 MJCF 资产),但值得为有此需求的任务登记跟踪。
背景
UniSim 1.7.x 为 IsaacSim 后端交付了有界、带读回验证的 PhysX solver 配置(unilabsim/unisim#251、#259):
unisim.create_backend("isaacsim", ...)接受isaacsim_solver_position_iteration_count、isaacsim_solver_velocity_iteration_count、isaacsim_bounce_threshold_velocity、isaacsim_contact_offset(worker profile 另有rest_offset/max_depenetration_velocity),映射到 PhysX 场景后由 host 严格比对请求值与引擎读回值。缺口
在 UniLab 标准路径(
registry.make→make_manager_based_rl_env→create_backend)上,这些旋钮没有任何通道能到达后端:unilab/base/backend_factory.py::env_backend_kwargs(main @ 3a3576a,25-60 行)负责把EnvCfg的后端旋钮翻译成 UniSim 适配器选项,但EnvCfg没有 IsaacSim solver 配置的字段,该函数也不转发;用例
我们在把 SimToolReal teacher 任务(KUKA iiwa14 + SHARPA 手,1200 工具变体池)迁移到 UniLab + UniSim(MJCF 资产 + mapped entity 场景)。原训练钉了一张特定的 PhysX 求解器表(position iterations 8、velocity iterations 0、bounce threshold 0.2、contact offset 0.002、rest offset 0.0、max depenetration velocity 1000)。训练等价性要求这些值能经公共配置路径到达后端,而不是依赖默认值。
提案
EnvCfg增加isaacsim_solver_*字段(沿用现有按后端命名的旋钮惯例),并在env_backend_kwargs中转发。UniSim factory 本就接受同名 kwargs,转发是机械工作;我们乐意贡献这个 PR。相关(独立、不阻塞我们)
unilab/base/reset_state.py:1114-1121在 mapped 场景拒绝 DR 写("mapped scene DR writes need a public entity transaction"),使 unilabsim/unisim#248 交付的 reset-time 模型 DR 从 Manager-Based 事件项完全不可达。我们暂不需要(增益/摩擦已烘焙进 MJCF 资产),但值得为有此需求的任务登记跟踪。