Genesis Forge 任务
Genesis Forge 是一个构建在 Genesis 物理模拟器之上的模块化 RL 机器人框架,其环境组织方式借鉴了 Isaac Lab 一类的 manager-style 结构。
Genesis Forge 不包含在 LAV2 默认 Python 依赖中,因此在使用 lav2.tasks.genesis_forge 下的任务包之前,需要先单独安装 Genesis 与 Genesis Forge。
LAV2 如何接入 Genesis Forge
LAV2 的 Genesis Forge 集成位于 lav2.tasks.genesis_forge 下。任务按 task type 优先组织,机器人专属配置放在 config/<robot>/ 下,尽量与 Isaac Lab 和 mjlab 的层级一致。
Genesis Forge 没有 task registry API,因此 LAV2 在 lav2.tasks.genesis_forge.rl.tasks 中维护显式任务索引。共享 train/eval runner 会通过 task id 查询这里。
安装好 Genesis Forge 及其依赖后,使用共享 runner 入口:
uv run -m lav2.tasks.genesis_forge.rl.train --task Genesis-Aerial-Base-LAV2-v0uv run -m lav2.tasks.genesis_forge.rl.eval --task Genesis-Aerial-Velocity-LAV2-v0
LAV2 Base 任务
aerial base 和 aerial velocity Genesis Forge 任务与仓库中的其它 RL 后端一样,都遵循 manager-based 的设计思路。环境模块负责装配后端专属的 managed environment,而 mdp 包则承载动作、命令、奖励等任务项。
最重要的是任务布局的一致性,不是后端 API 的具体拼写方式:任务级代码放在 aerial/<task>/,LAV2 专属资产绑定和 runner 参数放在 config/lav2/。
应该改什么
调整 Genesis Forge 任务时:
- 先从 lav2.tasks.genesis_forge.locomotion.aerial.base.environment 或 lav2.tasks.genesis_forge.locomotion.aerial.velocity.environment 入手,确认环境与 managers 是如何装配的
- 再修改对应的
mdp包中与动作、命令、奖励或终止相关的逻辑 - 增加新 task id 时更新 lav2.tasks.genesis_forge.rl.tasks
API 交叉引用
- 包根:lav2.tasks.genesis_forge
- 任务索引:lav2.tasks.genesis_forge.rl.tasks
- Train 入口:lav2.tasks.genesis_forge.rl.train
- Eval 入口:lav2.tasks.genesis_forge.rl.eval
- Aerial base 任务:lav2.tasks.genesis_forge.locomotion.aerial.base
- Aerial velocity 任务:lav2.tasks.genesis_forge.locomotion.aerial.velocity