跳转至

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_cfgbase_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 任务时:

API 交叉引用