跳转至

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。主要任务入口是基础任务包 lav2.tasks.mjlab.LAV2_base

它面向环境的配置是 lav2.tasks.mjlab.LAV2_base.LAV2_env_cfg,面向 RL 的配置是 lav2.tasks.mjlab.LAV2_base.LAV2_rl_cfg,任务项位于 lav2.tasks.mjlab.LAV2_base.mdp

在任务发现方式上,mjlab 更接近 Isaac Lab,而不是 Genesis Forge:任务必须能被框架的 task registry 看到。在当前仓库工作流中,这意味着需要通过符号链接将任务包暴露出来,例如把 lav2/tasks/mjlab 映射到 src/mjlab/tasks

LAV2 Base 任务

这里最重要的理解是:LAV2_base 同样也是以 manager-based RL environment 配置的形式表达出来的。scene、actions、observations、events、commands、rewards 与 terminations 被拼装进一个统一任务配置,而不是硬编码在单个庞大的环境类中。

这样一来,虽然具体框架 API 不同,mjlab 这页在概念上仍能与 Isaac Lab 和 Genesis Forge 页面保持一致。

应该改什么

当你要调整 mjlab 任务时:

API 交叉引用