MJLabEnv#
- torchrl.envs.MJLabEnv(*args, num_workers: int | None = None, **kwargs)[source]#
Build and wrap an mjlab task from mjlab’s task registry.
- Parameters:
task_id – Registered mjlab task id, for example
"Mjlab-Velocity-Flat-Unitree-G1".cfg – Optional mjlab
ManagerBasedRlEnvCfg. When omitted,task_idis loaded frommjlab.tasks.registry. The config is deep-copied before TorchRL mutatesscene.num_envsorauto_reset.play – If
Trueandcfgis omitted, load mjlab’s play/evaluation config fortask_id.num_envs – Number of parallel mjlab worlds. Overrides
cfg.scene.num_envs.device – Simulation device. Defaults to
"cuda:0"when CUDA is available, otherwise"cpu".batch_size – TorchRL batch size. Must be
[num_envs]. If provided andnum_envsis omitted, it setsnum_envs.render_mode – mjlab render mode. Set to
"rgb_array"to enablerender(). Automatically set whenfrom_pixels=Trueuses the single-env render fallback. It is not required when pixels come from an mjlab RGBCameraSensor.native_autoreset – See
MJLabWrapper.from_pixels – See
MJLabWrapper.pixels_only – See
MJLabWrapper.pixels_key – See
MJLabWrapper.pixels_sensor – See
MJLabWrapper.num_workers – If greater than one, return a lazy
ParallelEnvwith one mjlab env per worker.
See also
MJLabEnvConfig.mjlab reference: Zakka et al., “mjlab: A Lightweight Framework for GPU-Accelerated Robot Learning”, arXiv:2601.22074.
Examples
>>> from torchrl.envs import MJLabEnv >>> env = MJLabEnv( ... "Mjlab-Velocity-Flat-Unitree-G1", num_envs=1024, device="cuda:0" ... ) >>> td = env.reset()