mjlab 任务
mjlab 是一个基于 MuJoCo 的 RL 框架,它采用了类似 Isaac Lab 的 API 风格,但以 MuJoCo-Warp 作为仿真后端。在 LAV2 中,它与 Isaac Lab、Genesis Forge 并列,作为 manager-based RL environment 后端之一。
和前两个框架一样,mjlab 也不属于 LAV2 的默认依赖集,因此在使用 lav2.tasks.mjlab 之前,需要单独安装。
LAV2 如何接入 mjlab
LAV2 的 mjlab 集成位于 lav2.tasks.mjlab。任务按 task type 优先、robot platform 配置在 config/<robot>/ 下的方式组织。
共享(与机器人无关)的 aerial base 逻辑位于 lav2.tasks.mjlab.locomotion.aerial.base。它的参数化环境构建器是 lav2.tasks.mjlab.locomotion.aerial.base.base_env_cfg(base_env_cfg.py 中的 create_env_cfg() 工厂函数),任务项位于 lav2.tasks.mjlab.locomotion.aerial.base.mdp。
共享 RL runner 位于 lav2.tasks.mjlab.locomotion.aerial.base.rl,这样模型导出保持在任务级且与机器人无关。LAV2 专属的具体配置位于 lav2.tasks.mjlab.locomotion.aerial.base.config.lav2:环境工厂是 lav2.tasks.mjlab.locomotion.aerial.base.config.lav2.env_cfgs 中的 lav2_env_cfg(),rsl_rl 运行器配置在 lav2.tasks.mjlab.locomotion.aerial.base.config.lav2.rl_cfg。
在任务发现方式上,mjlab 更接近 Isaac Lab,而不是 Genesis Forge:任务必须能被框架的 task registry 看到。在这个仓库中,这意味着需要通过符号链接将任务包暴露出来,例如把 lav2/tasks/mjlab 映射到 src/mjlab/tasks。
LAV2 Base 任务
最重要的一点是:aerial base 任务同样也是以 manager-based RL environment 配置的形式表达出来的。scene、actions、observations、events、commands、rewards 与 terminations 被拼装进一个统一任务配置,而不是硬编码在单个庞大的环境类中。
因此,虽然具体框架 API 不同,mjlab 这一页在概念上仍能与 Isaac Lab 和 Genesis Forge 页面保持一致。
应该改什么
调整 mjlab 任务时:
- 先从 lav2.tasks.mjlab.locomotion.aerial.base.config.lav2.env_cfgs 入手,处理 LAV2 专属任务构成本身
- 当改动属于动作、命令、奖励或终止逻辑时,修改 lav2.tasks.mjlab.locomotion.aerial.base.mdp(机器人无关)
- 当需要增加或修改参数化构建接口时,检查 lav2.tasks.mjlab.locomotion.aerial.base.base_env_cfg
- 只有当改动面向共享 RL runner 行为或模型导出时,才去更新 lav2.tasks.mjlab.locomotion.aerial.base.rl
- 只有当改动面向 LAV2 rsl_rl 训练配置时,才去更新 lav2.tasks.mjlab.locomotion.aerial.base.config.lav2.rl_cfg
API 交叉引用
- 包根:lav2.tasks.mjlab
- 基础任务包(共享):lav2.tasks.mjlab.locomotion.aerial.base
- 基础环境构建器(参数化):lav2.tasks.mjlab.locomotion.aerial.base.base_env_cfg
- LAV2 配置子包:lav2.tasks.mjlab.locomotion.aerial.base.config.lav2
- LAV2 环境工厂:lav2.tasks.mjlab.locomotion.aerial.base.config.lav2.env_cfgs 中的
lav2_env_cfg() - 共享 RL runner:lav2.tasks.mjlab.locomotion.aerial.base.rl
- LAV2 rsl_rl 配置:lav2.tasks.mjlab.locomotion.aerial.base.config.lav2.rl_cfg
- MDP 包:lav2.tasks.mjlab.locomotion.aerial.base.mdp