用途:在 Isaac Lab 中创建与注册环境。新单智能体任务默认用 manager-based(自定义命令与奖励通常可复用 manager terms);明确要求直接控制 step/reset、多智能体或需与单体实现对齐的迁移时用 direct。Isaac Gym 移植转 isaaclab-migrating-from-isaac-gym,direct 转 manager 验证用 isaaclab-converting-direct-to-manager,传感器或执行器改动用 isaaclab-using-sensors-actuators;接触丰富操作另读 isaaclab-planning-manipulation-tasks。
脚手架:先读模板生成器指南。运行 uv run isaaclab --new(-n 等价),交互式选择 External(独立项目,需 Isaac Lab 外的父目录、项目名、任务家族、机器人配置,生成器会初始化 Git 仓库)或 Internal(贡献到 source/isaaclab_tasks,仅源码检出可用)。外部项目结构为 src/<project>/tasks/<family>/config/<robot>/,共享 terms 在 mdp/;根 pyproject.toml 提供 isaaclab.tasks 入口点。生成后执行:uv sync;uv run python scripts/list_envs.py --show_presets;uv run pytest tests/test_registration.py;uv run isaaclab random_agent --task <TASK_NAME> --num_envs 16。默认依赖含 Newton 不含 Isaac Sim;PhysX 用 uv run --extra isaacsim isaaclab random_agent --task <TASK_NAME> physics=isaacsim_physx --num_envs 16。内部任务在 Isaac Lab 根目录用 uv run python scripts/environments/list_envs.py --show_presets。
实现与验证:以生成的 Cartpole 为基线,参考 source/isaaclab_tasks/isaaclab_tasks/ 中最近的维护任务。定义场景与资产,用现有 MDP terms 实现动作、观测、重置、奖励、终止,按需加命令、课程与后端预设。验证注册、小批量实例化、重置与随机步进,检查动作/观测形状、有限奖励、超时与失败语义;注册测试不等于仿真正确,训练范围内再跑短训练冒烟测试。
维护与限制:保持生成器说明与 tools/template/cli.py 一致,用 uv run --no-project python tools/skills/cli.py check 校验。仅内部注册或预设变更用 isaaclab-updating-environment-docs 同步环境浏览器;外部项目维护其 README 与本地测试。缺少的选择仅在实质影响实现时询问。