dm_control
: Infraestructura de Google DeepMind para simulación basada en física.Pila de software de Google DeepMind para simulación basada en física y entornos de aprendizaje por refuerzo, utilizando física de MuJoCo.
Un tutorial introductorio para este paquete está disponible como cuaderno de colaboración:
Este paquete consta de los siguientes componentes "principales":
dm_control.mujoco
: Bibliotecas que proporcionan enlaces de Python al motor de física de MuJoCo.
dm_control.suite
: un conjunto de entornos de aprendizaje por refuerzo de Python impulsados por el motor de física MuJoCo.
dm_control.viewer
: un visor de entorno interactivo.
Además, los siguientes componentes están disponibles para la creación de tareas de control más complejas:
dm_control.mjcf
: una biblioteca para componer y modificar modelos MuJoCo MJCF en Python.
dm_control.composer
: una biblioteca para definir entornos RL enriquecidos a partir de componentes autónomos y reutilizables.
dm_control.locomotion
: Bibliotecas adicionales para tareas personalizadas.
dm_control.locomotion.soccer
: Tareas de fútbol multiagente.
Si utiliza este paquete, cite nuestra publicación adjunta:
@article{tunyasuvunakool2020,
title = {dm_control: Software and tasks for continuous control},
journal = {Software Impacts},
volume = {6},
pages = {100022},
year = {2020},
issn = {2665-9638},
doi = {https://doi.org/10.1016/j.simpa.2020.100022},
url = {https://www.sciencedirect.com/science/article/pii/S2665963820300099},
author = {Saran Tunyasuvunakool and Alistair Muldal and Yotam Doron and
Siqi Liu and Steven Bohez and Josh Merel and Tom Erez and
Timothy Lillicrap and Nicolas Heess and Yuval Tassa},
}
Instale dm_control
desde PyPI ejecutando
pip install dm_control
Nota :
dm_control
no se puede instalar en modo "editable" (es decir,pip install -e
).Si bien
dm_control
se ha actualizado en gran medida para utilizar los enlaces basados en pybind11 proporcionados a través del paquetemujoco
, en este momento todavía depende de algunos componentes heredados que se generan automáticamente a partir de archivos de encabezado de MuJoCo de una manera que es incompatible con el modo editable. Intentar instalardm_control
en modo editable resultará en errores de importación como:ImportError: cannot import name 'constants' from partially initialized module 'dm_control.mujoco.wrapper.mjbindings' ...
La solución es
pip uninstall dm_control
y luego reinstalarlo sin el indicador-e
.
A partir de la versión 1.0.0, adoptamos versiones semánticas.
Antes de la versión 1.0.0, el paquete dm_control
Python tenía la versión 0.0.N
, donde N
era un número de revisión interna que aumentaba en una cantidad arbitraria en cada confirmación de Git.
Si desea instalar una versión inédita de dm_control
directamente desde nuestro repositorio, puede hacerlo ejecutando pip install git+https://github.com/google-deepmind/dm_control.git
.
Los enlaces de MuJoCo Python admiten tres backends de renderizado OpenGL diferentes: EGL (sin cabeza, acelerado por hardware), GLFW (con ventana, acelerado por hardware) y OSMesa (basado exclusivamente en software). Al menos uno de estos tres backends debe estar disponible para poder renderizar a través de dm_control
.
La renderización de hardware con un sistema de ventanas se admite a través de GLFW y GLEW. En Linux, estos se pueden instalar utilizando el administrador de paquetes de su distribución. Por ejemplo, en Debian y Ubuntu, esto se puede hacer ejecutando sudo apt-get install libglfw3 libglew2.0
. Tenga en cuenta que:
dm_control.viewer
solo se puede utilizar con GLFW. La renderización de hardware "sin cabeza" (es decir, sin un sistema de ventanas como X11) requiere compatibilidad con EXT_platform_device en el controlador EGL. Los controladores recientes de Nvidia lo admiten. También necesitarás GLEW. En Debian y Ubuntu, esto se puede instalar mediante sudo apt-get install libglew2.0
.
La renderización por software requiere GLX y OSMesa. En Debian y Ubuntu, estos se pueden instalar usando sudo apt-get install libgl1-mesa-glx libosmesa6
.
De forma predeterminada, dm_control
intentará utilizar GLFW primero, luego EGL y luego OSMesa. También puede especificar un backend particular para usar configurando la variable de entorno MUJOCO_GL=
en "glfw"
, "egl"
u "osmesa"
, respectivamente. Al renderizar con EGL, también puede especificar qué GPU usar para renderizar estableciendo la variable de entorno MUJOCO_EGL_DEVICE_ID=
en el ID de la GPU de destino.
Las instrucciones anteriores que usan pip
deberían funcionar, siempre que use un intérprete de Python instalado por Homebrew (en lugar del predeterminado del sistema).
Antes de ejecutar, la variable de entorno DYLD_LIBRARY_PATH
debe actualizarse con la ruta a la biblioteca GLFW. Esto se puede hacer ejecutando export DYLD_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_LIBRARY_PATH
.