SuperAPI AI 工具集

isaaclab-randomizing-with-events

智能体与模型

查看项目

更新于 10-15 22:38

技能介绍

用途:为 Isaac Lab 任务通过事件项添加域随机化;当策略成功率应改变随机化范围时使用 ADR。不适用于无关的课程、命令采样或奖励塑形,除非这些改动与随机化交互。

主要能力:识别需变化的对象(资产、物理属性、观测、初始状态、外部扰动、渲染);支持直接工作流(DirectRLEnv、DirectMARLEnv)与基于管理器的工作流,两者均可通过 events 配置使用 EventManager;支持 PhysX、Newton 或通过 PresetCfg 同时指定后端。

使用方式:先确认随机化函数是否有后端特定行为或不受支持的后端(见 source/isaaclab/isaaclab/envs/mdp/events.py)。选择事件模式:prestartup 用于仿真开始前必须写入的 USD 级属性;startup 用于仿真开始后一次性设置;reset 用于每回合随机化;interval 用于回合内重复扰动。编辑前检查时序限制,部分 USD 阶段或拓扑级改动仅限 prestartup。在环境配置中定义事件项:直接工作流赋给任务配置的 events 字段,管理器工作流赋给管理器环境配置的 events 字段;PhysX 与 Newton 需要不同项时使用后端特定的 PresetCfg。将每个项限定到正确的场景实体,每个随机量使用单一清晰分布与范围。先用少量环境并在各后端重复重置验证,基线稳定后再扩大范围。管理器式 ADR 先以固定事件验证最终范围,再用任务自有调度器与 modify_term_cfg 插值(参考 gravity 示例)。

验证:采用 plan-validate-execute 循环,列出每个随机属性、目标实体、后端、事件模式、分布、范围与时序限制,编辑前对照环境配置检查;检查 CPU/GPU 预期(部分 PhysX 路径用 CPU 张量,Newton 路径可能用环境设备);对每个目标后端运行小规模重置或 rollout 冒烟测试;先修复形状、设备、后端与实体名错误再扩展。ADR 需测试精确端点并确认策略成功率在边界内改变下次重置范围。技能改动运行:uv run --no-project python tools/skills/cli.py check

限制:部分 USD 阶段或拓扑级改动仅限 prestartup,不能安全移至 reset 或 interval;需注意后端支持差异与设备差异。维护需与 event_manager.py、direct_rl_env.py、direct_marl_env.py、相关教程与 managers API 文档保持同步。