- Notifications
You must be signed in to change notification settings - Fork736
Google DeepMind's software stack for physics-based simulation and Reinforcement Learning environments, using MuJoCo.
License
google-deepmind/dm_control
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Google DeepMind's software stack for physics-based simulation and ReinforcementLearning environments, using MuJoCo physics.
Anintroductory tutorial for this package is available as a Colaboratorynotebook:
This package consists of the following "core" components:
dm_control.mujoco: Libraries that provide Python bindings to the MuJoCophysics engine.dm_control.suite: A set of Python Reinforcement Learning environmentspowered by the MuJoCo physics engine.dm_control.viewer: An interactive environment viewer.
Additionally, the following components are available for the creation of morecomplex control tasks:
dm_control.mjcf: A library for composing and modifying MuJoCo MJCFmodels in Python.dm_control.composer: A library for defining rich RL environments fromreusable, self-contained components.dm_control.locomotion: Additional libraries for custom tasks.dm_control.locomotion.soccer: Multi-agent soccer tasks.
If you use this package, please cite our accompanyingpublication:
@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},}Installdm_control from PyPI by running
pip install dm_control
Note:
dm_controlcannot be installed in "editable" mode (i.e.pip install -e).While
dm_controlhas been largely updated to use the pybind11-based bindingsprovided via themujocopackage, at this time it still relies on some legacycomponents that are automatically generated from MuJoCo header files in a waythat is incompatible with editable mode. Attempting to installdm_controlineditable mode will result in import errors like:ImportError: cannot import name 'constants' from partially initialized module 'dm_control.mujoco.wrapper.mjbindings' ...The solution is to
pip uninstall dm_controland then reinstall it withoutthe-eflag.
Starting from version 1.0.0, we adopt semantic versioning.
Prior to version 1.0.0, thedm_control Python package was versioned0.0.N,whereN was an internal revision number that increased by an arbitrary amountat every single Git commit.
If you want to install an unreleased version ofdm_control directly from ourrepository, you can do so by runningpip install git+https://github.com/google-deepmind/dm_control.git.
The MuJoCo Python bindings support three different OpenGL rendering backends:EGL (headless, hardware-accelerated), GLFW (windowed, hardware-accelerated), andOSMesa (purely software-based). At least one of these three backends must beavailable in order render throughdm_control.
Hardware rendering with a windowing system is supported via GLFW and GLEW.On Linux these can be installed using your distribution's package manager.For example, on Debian and Ubuntu, this can be done by running
sudo apt-get install libglfw3 libglew2.0. Please note that:dm_control.viewercan only be used with GLFW.- GLFW will not work on headless machines.
"Headless" hardware rendering (i.e. without a windowing system such as X11)requiresEXT_platform_device support in the EGL driver. Recent Nvidiadrivers support this. You will also need GLEW. On Debian and Ubuntu, thiscan be installed via
sudo apt-get install libglew2.0.Software rendering requires GLX and OSMesa. On Debian and Ubuntu these canbe installed using
sudo apt-get install libgl1-mesa-glx libosmesa6.
By default,dm_control will attempt to use GLFW first, then EGL, then OSMesa.You can also specify a particular backend to use by setting theMUJOCO_GL=environment variable to"glfw","egl", or"osmesa", respectively. Whenrendering with EGL, you can also specify which GPU to use for rendering bysetting the environment variableMUJOCO_EGL_DEVICE_ID= to the target GPU ID.
The above instructions using
pipshould work, provided that you use aPython interpreter that is installed by Homebrew (rather than thesystem-default one).Before running, the
DYLD_LIBRARY_PATHenvironment variable needs to beupdated with the path to the GLFW library. This can be done by runningexport DYLD_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_LIBRARY_PATH.
About
Google DeepMind's software stack for physics-based simulation and Reinforcement Learning environments, using MuJoCo.
Topics
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.