DeepMind's software stack for physics-based simulation and Reinforcement Learning environments, using MuJoCo.

Overview

dm_control: DeepMind Infrastructure for Physics-Based Simulation.

DeepMind's software stack for physics-based simulation and Reinforcement Learning environments, using MuJoCo physics.

An introductory tutorial for this package is available as a Colaboratory notebook: Open In Colab

Overview

This package consists of the following "core" components:

  • dm_control.mujoco: Libraries that provide Python bindings to the MuJoCo physics engine.

  • dm_control.suite: A set of Python Reinforcement Learning environments powered by the MuJoCo physics engine.

  • dm_control.viewer: An interactive environment viewer.

Additionally, the following components are available for the creation of more complex control tasks:

If you use this package, please cite our accompanying tech report:

@misc{tassa2020dmcontrol,
    title={dm_control: Software and Tasks for Continuous Control},
    author={Yuval Tassa and 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},
    year={2020},
    eprint={2006.12983},
    archivePrefix={arXiv},
    primaryClass={cs.RO}
}

Requirements and Installation

dm_control is regularly tested on Ubuntu 16.04 against the following Python versions:

  • 3.7
  • 3.8
  • 3.9

Various people have been successful in getting dm_control to work on other Linux distros, OS X, and Windows. We do not provide active support for these, but will endeavour to answer questions on a best-effort basis.

Follow these steps to install dm_control:

  1. Download MuJoCo 2.1.0 from the Download page on the MuJoCo website. MuJoCo must be installed before dm_control, since dm_control's install script generates Python ctypes bindings based on MuJoCo's header files. By default, dm_control assumes that the MuJoCo archive is extracted into ~/.mujoco.

  2. Install the dm_control Python package by running pip install dm_control. We recommend pip installing into a virtualenv, or with the --user flag to avoid interfering with system packages. At installation time, dm_control looks for the MuJoCo headers from Step 1 in ~/.mujoco/mujoco210/include, however this path can be configured with the headers-dir command line argument.

  3. If the shared library provided by MuJoCo (e.g. libmujoco210.so or libmujoco210.dylib) is installed at a non-default path, specify its location using the MJLIB_PATH environment variable. This environment variable should be set to the full path to the library file itself, e.g. export MJLIB_PATH=/path/to/libmujoco210.so.

Versioning

dm_control is released on a rolling basis: the latest commit on the master branch of our GitHub repository represents our latest release. Our Python package is versioned 0.0.N, where N is the number that appears in the PiperOrigin-RevId field of the commit message. We always ensure that N strictly increases between a parent commit and its children. We do not upload all versions to PyPI, and occasionally the latest version on PyPI may lag behind the latest commit on GitHub. Should this happen, you can still install the newest version available by running pip install git+git://github.com/deepmind/dm_control.git.

Rendering

The MuJoCo Python bindings support three different OpenGL rendering backends: EGL (headless, hardware-accelerated), GLFW (windowed, hardware-accelerated), and OSMesa (purely software-based). At least one of these three backends must be available in order render through dm_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.viewer can only be used with GLFW.
    • GLFW will not work on headless machines.
  • "Headless" hardware rendering (i.e. without a windowing system such as X11) requires EXT_platform_device support in the EGL driver. Recent Nvidia drivers support this. You will also need GLEW. On Debian and Ubuntu, this can be installed via sudo apt-get install libglew2.0.

  • Software rendering requires GLX and OSMesa. On Debian and Ubuntu these can be 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 the MUJOCO_GL= environment variable to "glfw", "egl", or "osmesa", respectively. When rendering with EGL, you can also specify which GPU to use for rendering by setting the environment variable EGL_DEVICE_ID= to the target GPU ID.

Additional instructions for Homebrew users on macOS

  1. The above instructions using pip should work, provided that you use a Python interpreter that is installed by Homebrew (rather than the system-default one).

  2. Before running, the DYLD_LIBRARY_PATH environment variable needs to be updated with the path to the GLFW library. This can be done by running export DYLD_LIBRARY_PATH=$(brew --prefix)/lib:$DYLD_LIBRARY_PATH.

Comments
  • mujoco.FatalError: gladLoadGL error

    mujoco.FatalError: gladLoadGL error

    Hello, despite the fact that I installed all required dependencies, I get this error again and again. Does someone have any clue about how I could fix it ? Or where it comes from ?

    image

    Thank you in advance.

    opened by atonkamanda 24
  • Running dm_control via Conda on macOS

    Running dm_control via Conda on macOS

    I installed the latest release 2.1.1, and made sure to run 'brew install glfw'. Then I updated dm_control with pip... however I am still getting this error:

    'Unable to load EGL library', 'dlopen(EGL, 10): image not found', 'EGL', None

    I'm not sure what the problem is. My code sets env variables as follows:

    MKL_SERVICE_FORCE_INTEL: '1'
    MUJOCO_GL: 'egl'
    

    But the problem persists even when I get rid of those.

    question rendering 
    opened by slerman12 23
  • Noisy or unreadable images when rendering

    Noisy or unreadable images when rendering

    Hi!

    In some instances (embodied algos in my case) the new mujoco rendering gives unreadable images after a little while, e.g. here's a grid of 3 views of the same body: image

    This occurs after a little while, i.e. the first images rendered are perfectly fine. I tried to narrow it down to a minimal reproductible example but I can't find a way to do it (sorry about that!) When using the old bindings (mujoco-py and such) thiis issue disappears.

    I'm using MUJOCO_GL=egl and have installed glew in my conda (working on a cluster where I have no sudo access).

    I'm working with either G100 or A100 GPUs, and using them for training and rendering. Also to mention: I'm running a bunch of envs in parallel (not multithrerad but multiprocessing) for fast collection of data.

    Here is my conda env

    # packages in environment at /fsx/users/vmoens/conda/envs/rl4:
    #
    # Name                    Version                   Build  Channel
    _libgcc_mutex             0.1                 conda_forge    conda-forge
    _openmp_mutex             4.5                       2_gnu    conda-forge
    _tflow_select             2.3.0                       mkl
    absl-py                   1.0.0              pyhd8ed1ab_0    conda-forge
    aiohttp                   3.8.1            py39hb9d737c_1    conda-forge
    aiosignal                 1.2.0              pyhd8ed1ab_0    conda-forge
    ale-py                    0.7.5                    pypi_0    pypi
    alsa-lib                  1.2.6.1              h7f98852_0    conda-forge
    anyio                     3.6.1                    pypi_0    pypi
    aom                       3.3.0                h27087fc_1    conda-forge
    argon2-cffi               21.3.0             pyhd8ed1ab_0    conda-forge
    argon2-cffi-bindings      21.2.0           py39hb9d737c_2    conda-forge
    astor                     0.8.1              pyh9f0ad1d_0    conda-forge
    asttokens                 2.0.5              pyhd8ed1ab_0    conda-forge
    astunparse                1.6.3              pyhd8ed1ab_0    conda-forge
    async-timeout             4.0.2              pyhd8ed1ab_0    conda-forge
    atari-py                  0.2.9                    pypi_0    pypi
    attr                      2.5.1                h166bdaf_0    conda-forge
    attrs                     21.4.0             pyhd8ed1ab_0    conda-forge
    autorom                   0.4.2                    pypi_0    pypi
    autorom-accept-rom-license 0.4.2                    pypi_0    pypi
    babel                     2.10.1                   pypi_0    pypi
    backcall                  0.2.0              pyh9f0ad1d_0    conda-forge
    backports                 1.0                        py_2    conda-forge
    backports.functools_lru_cache 1.6.4              pyhd8ed1ab_0    conda-forge
    beautifulsoup4            4.11.1             pyha770c72_0    conda-forge
    blas                      1.0                         mkl
    bleach                    5.0.0              pyhd8ed1ab_0    conda-forge
    blinker                   1.4                        py_1    conda-forge
    brotlipy                  0.7.0           py39hb9d737c_1004    conda-forge
    bzip2                     1.0.8                h7f98852_4    conda-forge
    c-ares                    1.18.1               h7f98852_0    conda-forge
    ca-certificates           2022.5.18.1          ha878542_0    conda-forge
    cachetools                5.2.0                    pypi_0    pypi
    certifi                   2022.5.18.1              pypi_0    pypi
    cffi                      1.15.0           py39h4bc2ebd_0    conda-forge
    charset-normalizer        2.0.12             pyhd8ed1ab_0    conda-forge
    click                     8.1.3            py39hf3d152e_0    conda-forge
    cloudpickle               1.2.2                    pypi_0    pypi
    configargparse            1.5.3                    pypi_0    pypi
    cryptography              37.0.1           py39h9ce1e76_0
    cudatoolkit               11.3.1               h2bc3f7f_2
    cycler                    0.11.0                   pypi_0    pypi
    cython                    0.29.30                  pypi_0    pypi
    dbus                      1.13.6               h5008d03_3    conda-forge
    debugpy                   1.6.0            py39h5a03fae_0    conda-forge
    decorator                 4.4.2                    pypi_0    pypi
    defusedxml                0.7.1              pyhd8ed1ab_0    conda-forge
    dm-control                1.0.3.post1              pypi_0    pypi
    dm-env                    1.5                      pypi_0    pypi
    dm-tree                   0.1.7                    pypi_0    pypi
    elfutils                  0.186                he364ef2_0    conda-forge
    entrypoints               0.4                pyhd8ed1ab_0    conda-forge
    executing                 0.8.3              pyhd8ed1ab_0    conda-forge
    expat                     2.4.8                h27087fc_0    conda-forge
    fasteners                 0.17.3                   pypi_0    pypi
    ffmpeg                    5.0.1                h964e5f1_2    conda-forge
    fftw                      3.3.8           nompi_hfc0cae8_1114    conda-forge
    flatten-dict              0.4.2                    pypi_0    pypi
    flit-core                 3.7.1              pyhd8ed1ab_0    conda-forge
    font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
    font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
    font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
    font-ttf-ubuntu           0.83                 hab24e00_0    conda-forge
    fontconfig                2.14.0               h8e229c2_0    conda-forge
    fonts-conda-ecosystem     1                             0    conda-forge
    fonts-conda-forge         1                             0    conda-forge
    fonttools                 4.33.3                   pypi_0    pypi
    freetype                  2.10.4               h0708190_1    conda-forge
    freetype-py               2.3.0                    pypi_0    pypi
    frozenlist                1.3.0            py39hb9d737c_1    conda-forge
    functorch                 0.3.0a0+693bcee          pypi_0    pypi
    gast                      0.4.0              pyh9f0ad1d_0    conda-forge
    gettext                   0.19.8.1          h73d1719_1008    conda-forge
    giflib                    5.2.1                h36c2ea0_2    conda-forge
    glew                      2.1.0                h9c3ff4c_2    conda-forge
    glew-osmesa               1.13.0.20151117               0    menpo
    glfw                      2.5.3                    pypi_0    pypi
    glfw3                     3.2.1                         0    menpo
    gmp                       6.2.1                h58526e2_0    conda-forge
    gnutls                    3.6.13               h85f3911_1    conda-forge
    google-auth               2.6.6                    pypi_0    pypi
    google-auth-oauthlib      0.4.6              pyhd8ed1ab_0    conda-forge
    google-pasta              0.2.0              pyh8c360ce_0    conda-forge
    grpcio                    1.46.3           py39h0f497a6_0    conda-forge
    gst-plugins-base          1.20.2               hf6a322e_1    conda-forge
    gstreamer                 1.20.2               hd4edc92_1    conda-forge
    gym                       0.24.1                   pypi_0    pypi
    gym-notices               0.0.6                    pypi_0    pypi
    h5py                      2.10.0          nompi_py39h98ba4bc_106    conda-forge
    hdf5                      1.10.6          nompi_h3c11f04_101    conda-forge
    icu                       70.1                 h27087fc_0    conda-forge
    idna                      3.3                pyhd8ed1ab_0    conda-forge
    imageio                   2.19.3                   pypi_0    pypi
    imageio-ffmpeg            0.4.7                    pypi_0    pypi
    importlib-metadata        4.11.4           py39hf3d152e_0    conda-forge
    importlib_resources       5.7.1              pyhd8ed1ab_1    conda-forge
    iniconfig                 1.1.1                    pypi_0    pypi
    intel-openmp              2021.4.0          h06a4308_3561
    ipykernel                 6.13.0                   pypi_0    pypi
    ipython                   8.4.0            py39hf3d152e_0    conda-forge
    ipython-genutils          0.2.0                    pypi_0    pypi
    ipython_genutils          0.2.0                      py_1    conda-forge
    ipywidgets                7.7.0              pyhd8ed1ab_0    conda-forge
    jack                      1.9.18            h8c3723f_1002    conda-forge
    jedi                      0.18.1           py39hf3d152e_1    conda-forge
    jinja2                    3.1.2              pyhd8ed1ab_1    conda-forge
    jpeg                      9e                   h166bdaf_1    conda-forge
    json-c                    0.16                 hc379101_0    conda-forge
    json5                     0.9.8                    pypi_0    pypi
    jsonschema                4.5.1                    pypi_0    pypi
    jupyter                   1.0.0            py39hf3d152e_7    conda-forge
    jupyter-client            7.3.1                    pypi_0    pypi
    jupyter-server            1.17.0                   pypi_0    pypi
    jupyter_client            7.3.4              pyhd8ed1ab_0    conda-forge
    jupyter_console           6.4.3              pyhd8ed1ab_0    conda-forge
    jupyter_core              4.10.0           py39hf3d152e_0    conda-forge
    jupyterlab                3.4.2                    pypi_0    pypi
    jupyterlab-server         2.14.0                   pypi_0    pypi
    jupyterlab_pygments       0.2.2              pyhd8ed1ab_0    conda-forge
    jupyterlab_widgets        1.1.0              pyhd8ed1ab_0    conda-forge
    keras-preprocessing       1.1.2              pyhd8ed1ab_0    conda-forge
    keyutils                  1.6.1                h166bdaf_0    conda-forge
    kiwisolver                1.4.2                    pypi_0    pypi
    krb5                      1.19.3               h3790be6_0    conda-forge
    labmaze                   1.0.5                    pypi_0    pypi
    lame                      3.100             h7f98852_1001    conda-forge
    lcms2                     2.12                 hddcbb42_0    conda-forge
    ld_impl_linux-64          2.36.1               hea4e1c9_2    conda-forge
    lerc                      3.0                  h9c3ff4c_0    conda-forge
    libarchive                3.5.2                hb890918_2    conda-forge
    libcap                    2.64                 ha37c62d_0    conda-forge
    libclang                  14.0.4          default_h2e3cab8_0    conda-forge
    libclang13                14.0.4          default_h3a83d3e_0    conda-forge
    libcups                   2.3.3                hf5a7f15_1    conda-forge
    libcurl                   7.83.1               h7bff187_0    conda-forge
    libdb                     6.2.32               h9c3ff4c_0    conda-forge
    libdeflate                1.10                 h7f98852_0    conda-forge
    libdrm                    2.4.109              h7f98852_0    conda-forge
    libdrm-cos6-x86_64        2.4.65                        4    anaconda
    libedit                   3.1.20191231         he28a2e2_2    conda-forge
    libev                     4.33                 h516909a_1    conda-forge
    libevent                  2.1.10               h9b69904_4    conda-forge
    libffi                    3.4.2                h7f98852_5    conda-forge
    libflac                   1.3.4                h27087fc_0    conda-forge
    libgcc-ng                 12.1.0              h8d9b700_16    conda-forge
    libgfortran-ng            7.5.0               h14aa051_20    conda-forge
    libgfortran4              7.5.0               h14aa051_20    conda-forge
    libglib                   2.70.2               h174f98d_4    conda-forge
    libglu                    9.0.0             he1b5a44_1001    conda-forge
    libgomp                   12.1.0              h8d9b700_16    conda-forge
    libiconv                  1.16                 h516909a_0    conda-forge
    libllvm14                 14.0.4               he0ac6c6_0    conda-forge
    libmicrohttpd             0.9.75               h7f98852_0    conda-forge
    libnghttp2                1.47.0               h727a467_0    conda-forge
    libnsl                    2.0.0                h7f98852_0    conda-forge
    libogg                    1.3.4                h7f98852_1    conda-forge
    libopus                   1.3.1                h7f98852_1    conda-forge
    libpciaccess              0.16                 h516909a_0    conda-forge
    libpng                    1.6.37               h21135ba_2    conda-forge
    libpq                     14.3                 hd77ab85_0    conda-forge
    libprotobuf               3.20.1               h6239696_0    conda-forge
    libsndfile                1.0.31               h9c3ff4c_1    conda-forge
    libsodium                 1.0.18               h36c2ea0_1    conda-forge
    libssh2                   1.10.0               ha56f1ee_2    conda-forge
    libstdcxx-ng              12.1.0              ha89aaad_16    conda-forge
    libtiff                   4.3.0                h0fcbabc_4    conda-forge
    libtool                   2.4.6             h9c3ff4c_1008    conda-forge
    libuuid                   2.32.1            h7f98852_1000    conda-forge
    libva                     2.14.0               h7f98852_0    conda-forge
    libvorbis                 1.3.7                h9c3ff4c_0    conda-forge
    libvpx                    1.11.0               h9c3ff4c_3    conda-forge
    libwebp                   1.2.2                h3452ae3_0    conda-forge
    libwebp-base              1.2.2                h7f98852_1    conda-forge
    libx11-common-cos6-x86_64 1.6.4                         4    anaconda
    libx11-cos6-x86_64        1.6.4                         4    anaconda
    libxcb                    1.13              h7f98852_1004    conda-forge
    libxkbcommon              1.0.3                he3ba5ed_0    conda-forge
    libxml2                   2.9.14               h22db469_0    conda-forge
    libzlib                   1.2.12               h166bdaf_0    conda-forge
    lockfile                  0.12.2                   pypi_0    pypi
    lxml                      4.8.0                    pypi_0    pypi
    lz4-c                     1.9.3                h9c3ff4c_1    conda-forge
    lzo                       2.10              h516909a_1000    conda-forge
    markdown                  3.3.7              pyhd8ed1ab_0    conda-forge
    markupsafe                2.1.1            py39hb9d737c_1    conda-forge
    matplotlib                3.5.2                    pypi_0    pypi
    matplotlib-inline         0.1.3              pyhd8ed1ab_0    conda-forge
    mesa-libgl-cos6-x86_64    11.0.7                        4    anaconda
    mesalib                   21.2.5               h0e4506f_3    conda-forge
    mistune                   0.8.4           py39h3811e60_1005    conda-forge
    mj-envs                   1.0.0                     dev_0    <develop>
    mjrl                      0.1.1                     dev_0    <develop>
    mkl                       2021.4.0           h06a4308_640
    mkl-service               2.4.0            py39h7e14d7c_0    conda-forge
    mkl_fft                   1.3.1            py39h0c7bc48_1    conda-forge
    mkl_random                1.2.2            py39hde0f152_0    conda-forge
    moviepy                   1.0.3                    pypi_0    pypi
    mujoco                    2.2.0                    pypi_0    pypi
    mujoco-py                 2.0.2.2                   dev_0    <develop>
    multidict                 6.0.2            py39hb9d737c_1    conda-forge
    mysql-common              8.0.29               haf5c9bc_1    conda-forge
    mysql-libs                8.0.29               h28c427c_1    conda-forge
    nbclassic                 0.3.7                    pypi_0    pypi
    nbclient                  0.6.3                    pypi_0    pypi
    nbconvert                 6.5.0              pyhd8ed1ab_0    conda-forge
    nbconvert-core            6.5.0              pyhd8ed1ab_0    conda-forge
    nbconvert-pandoc          6.5.0              pyhd8ed1ab_0    conda-forge
    nbformat                  5.4.0              pyhd8ed1ab_0    conda-forge
    ncurses                   6.3                  h27087fc_1    conda-forge
    nest-asyncio              1.5.5              pyhd8ed1ab_0    conda-forge
    nettle                    3.6                  he412f7d_0    conda-forge
    networkx                  2.8.3                    pypi_0    pypi
    notebook                  6.4.11                   pypi_0    pypi
    notebook-shim             0.1.0                    pypi_0    pypi
    nspr                      4.32                 h9c3ff4c_1    conda-forge
    nss                       3.78                 h2350873_0    conda-forge
    numpy                     1.22.4                   pypi_0    pypi
    numpy-base                1.22.3           py39hf524024_0
    oauthlib                  3.2.0              pyhd8ed1ab_0    conda-forge
    openh264                  2.1.1                h780b84a_0    conda-forge
    openjpeg                  2.4.0                hb52868f_1    conda-forge
    openssl                   1.1.1o               h166bdaf_0    conda-forge
    opt_einsum                3.3.0              pyhd8ed1ab_1    conda-forge
    osmesa                    12.2.2.dev                    0    menpo
    packaging                 21.3               pyhd8ed1ab_0    conda-forge
    pandas                    1.4.2                    pypi_0    pypi
    pandoc                    2.18                 ha770c72_0    conda-forge
    pandocfilters             1.5.0              pyhd8ed1ab_0    conda-forge
    parso                     0.8.3              pyhd8ed1ab_0    conda-forge
    patchelf                  0.14.5.0                 pypi_0    pypi
    pcre                      8.45                 h9c3ff4c_0    conda-forge
    pexpect                   4.8.0              pyh9f0ad1d_2    conda-forge
    pickleshare               0.7.5                   py_1003    conda-forge
    pillow                    9.1.1            py39hae2aec6_0    conda-forge
    pip                       22.1.1             pyhd8ed1ab_0    conda-forge
    pluggy                    1.0.0                    pypi_0    pypi
    portaudio                 19.6.0               h57a0ea0_5    conda-forge
    proglog                   0.1.10                   pypi_0    pypi
    prometheus_client         0.14.1             pyhd8ed1ab_0    conda-forge
    prompt-toolkit            3.0.29             pyha770c72_0    conda-forge
    prompt_toolkit            3.0.29               hd8ed1ab_0    conda-forge
    protobuf                  3.19.4                   pypi_0    pypi
    psutil                    5.9.1            py39hb9d737c_0    conda-forge
    pthread-stubs             0.4               h36c2ea0_1001    conda-forge
    ptyprocess                0.7.0              pyhd3deb0d_0    conda-forge
    pulseaudio                14.0                 h583eb01_5    conda-forge
    pure_eval                 0.2.2              pyhd8ed1ab_0    conda-forge
    py                        1.11.0                   pypi_0    pypi
    pyasn1                    0.4.8                      py_0    conda-forge
    pyasn1-modules            0.2.8                    pypi_0    pypi
    pycparser                 2.21               pyhd8ed1ab_0    conda-forge
    pygame                    2.1.2                    pypi_0    pypi
    pyglet                    1.5.26                   pypi_0    pypi
    pygments                  2.12.0             pyhd8ed1ab_0    conda-forge
    pyjwt                     2.4.0              pyhd8ed1ab_0    conda-forge
    pyopengl                  3.1.6                    pypi_0    pypi
    pyopenssl                 22.0.0             pyhd8ed1ab_0    conda-forge
    pyparsing                 2.4.7                    pypi_0    pypi
    pyqt                      5.15.4           py39h18e9c17_1    conda-forge
    pyqt5-sip                 12.9.0           py39h5a03fae_1    conda-forge
    pyrender                  0.1.45                   pypi_0    pypi
    pyrsistent                0.18.1           py39hb9d737c_1    conda-forge
    pysocks                   1.7.1            py39hf3d152e_5    conda-forge
    pytest                    7.1.2                    pypi_0    pypi
    python                    3.9.13          h9a8a25e_0_cpython    conda-forge
    python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
    python-fastjsonschema     2.15.3             pyhd8ed1ab_0    conda-forge
    python-flatbuffers        2.0                pyhd8ed1ab_0    conda-forge
    python_abi                3.9                      2_cp39    conda-forge
    pytorch                   1.13.0.dev20220531 py3.9_cuda11.3_cudnn8.3.2_0    pytorch-nightly
    pytorch-mutex             1.0                        cuda    pytorch-nightly
    pytz                      2022.1                   pypi_0    pypi
    pyu2f                     0.1.5              pyhd8ed1ab_0    conda-forge
    pyyaml                    6.0                      pypi_0    pypi
    pyzmq                     23.0.0                   pypi_0    pypi
    qt-main                   5.15.4               ha5833f6_1    conda-forge
    qtconsole                 5.3.1              pyhd8ed1ab_0    conda-forge
    qtconsole-base            5.3.1              pyha770c72_0    conda-forge
    qtpy                      2.1.0              pyhd8ed1ab_0    conda-forge
    readline                  8.1                  h46c0cb4_0    conda-forge
    requests                  2.27.1             pyhd8ed1ab_0    conda-forge
    requests-oauthlib         1.3.1              pyhd8ed1ab_0    conda-forge
    rsa                       4.8                pyhd8ed1ab_0    conda-forge
    scipy                     1.8.1                    pypi_0    pypi
    send2trash                1.8.0              pyhd8ed1ab_0    conda-forge
    setuptools                62.3.2           py39hf3d152e_0    conda-forge
    sip                       6.5.1            py39he80948d_2    conda-forge
    six                       1.16.0             pyh6c4a22f_0    conda-forge
    sk-video                  1.1.10                   pypi_0    pypi
    sniffio                   1.2.0                    pypi_0    pypi
    soupsieve                 2.3.2.post1              pypi_0    pypi
    sqlite                    3.38.5               h4ff8645_0    conda-forge
    stack_data                0.2.0              pyhd8ed1ab_0    conda-forge
    submitit                  1.4.2                    pypi_0    pypi
    svt-av1                   1.1.0                h27087fc_1    conda-forge
    tensorboard               2.9.1                    pypi_0    pypi
    tensorboard-data-server   0.6.1                    pypi_0    pypi
    tensorboard-plugin-wit    1.8.1              pyhd8ed1ab_0    conda-forge
    tensorflow                2.4.1           mkl_py39h4683426_0
    tensorflow-base           2.4.1           mkl_py39h43e0292_0
    tensorflow-estimator      2.6.0            py39he80948d_0    conda-forge
    termcolor                 1.1.0                      py_2    conda-forge
    terminado                 0.15.0           py39hf3d152e_0    conda-forge
    tinycss2                  1.1.1              pyhd8ed1ab_0    conda-forge
    tk                        8.6.12               h27826a3_0    conda-forge
    toml                      0.10.2             pyhd8ed1ab_0    conda-forge
    tomli                     2.0.1                    pypi_0    pypi
    torch-tb-profiler         0.4.0                    pypi_0    pypi
    torchaudio                0.12.0.dev20220531      py39_cu113    pytorch-nightly
    torchrl                   0.1                       dev_0    <develop>
    torchvision               0.14.0.dev20220531      py39_cu113    pytorch-nightly
    tornado                   6.1              py39hb9d737c_3    conda-forge
    tqdm                      4.64.0                   pypi_0    pypi
    traitlets                 5.2.1.post0              pypi_0    pypi
    trimesh                   3.12.6                   pypi_0    pypi
    typing-extensions         4.2.0                hd8ed1ab_1    conda-forge
    typing_extensions         4.2.0              pyha770c72_1    conda-forge
    tzdata                    2022a                h191b570_0    conda-forge
    urllib3                   1.26.9             pyhd8ed1ab_0    conda-forge
    wcwidth                   0.2.5              pyh9f0ad1d_2    conda-forge
    webencodings              0.5.1                    pypi_0    pypi
    websocket-client          1.3.2                    pypi_0    pypi
    werkzeug                  2.1.2              pyhd8ed1ab_1    conda-forge
    wheel                     0.37.1             pyhd8ed1ab_0    conda-forge
    widgetsnbextension        3.6.0            py39hf3d152e_0    conda-forge
    wrapt                     1.14.1           py39hb9d737c_0    conda-forge
    x264                      1!161.3030           h7f98852_1    conda-forge
    x265                      3.5                  h924138e_3    conda-forge
    xorg-damageproto          1.2.1             h7f98852_1002    conda-forge
    xorg-fixesproto           5.0               h7f98852_1002    conda-forge
    xorg-glproto              1.4.17            h7f98852_1002    conda-forge
    xorg-kbproto              1.0.7             h7f98852_1002    conda-forge
    xorg-libx11               1.7.2                h7f98852_0    conda-forge
    xorg-libxau               1.0.9                h7f98852_0    conda-forge
    xorg-libxcursor           1.2.0                h7f98852_0    conda-forge
    xorg-libxdamage           1.1.5                h7f98852_1    conda-forge
    xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
    xorg-libxext              1.3.4                h7f98852_1    conda-forge
    xorg-libxfixes            5.0.3             h7f98852_1004    conda-forge
    xorg-libxinerama          1.1.4             h9c3ff4c_1001    conda-forge
    xorg-libxrandr            1.5.2                h7f98852_1    conda-forge
    xorg-libxrender           0.9.10            h7f98852_1003    conda-forge
    xorg-randrproto           1.5.0             h7f98852_1001    conda-forge
    xorg-renderproto          0.11.1            h7f98852_1002    conda-forge
    xorg-util-macros          1.19.3               h7f98852_0    conda-forge
    xorg-xextproto            7.3.0             h7f98852_1002    conda-forge
    xorg-xf86vidmodeproto     2.3.1             h7f98852_1002    conda-forge
    xorg-xproto               7.0.31            h7f98852_1007    conda-forge
    xz                        5.2.5                h516909a_1    conda-forge
    yarl                      1.7.2            py39hb9d737c_2    conda-forge
    zeromq                    4.3.4                h9c3ff4c_1    conda-forge
    zipp                      3.8.0              pyhd8ed1ab_0    conda-forge
    zlib                      1.2.12               h166bdaf_0    conda-forge
    zstd                      1.5.2                h8a70e8d_1    conda-forge
    
    bug rendering 
    opened by vmoens 19
  • import MuJoCo, ImportError: cannot import name 'constants'

    import MuJoCo, ImportError: cannot import name 'constants'

    Dear all: when I import MuJoCo, some error happen:

    ---------------------------------------------------------------------------
    ImportError                               Traceback (most recent call last)
    <ipython-input-2-7bf9adbdec98> in <module>()
    ----> 1 import dm_control.mujoco
    
    /Users/codeMan/Documents/py-lab/dm_control/dm_control/mujoco/__init__.py in <module>()
         16 """Mujoco implementations of base classes."""
         17
    ---> 18 from dm_control.mujoco.engine import action_spec
         19
         20 from dm_control.mujoco.engine import Camera
    
    /Users/codeMan/Documents/py-lab/dm_control/dm_control/mujoco/engine.py in <module>()
         41
         42 from dm_control import render
    ---> 43 from dm_control.mujoco import index
         44
         45 from dm_control.mujoco import wrapper
    
    /Users/codeMan/Documents/py-lab/dm_control/dm_control/mujoco/index.py in <module>()
         92 # Internal dependencies.
         93
    ---> 94 from dm_control.mujoco.wrapper import util
         95 from dm_control.mujoco.wrapper.mjbindings import sizes
         96 import numpy as np
    
    /Users/codeMan/Documents/py-lab/dm_control/dm_control/mujoco/wrapper/__init__.py in <module>()
         21
         22
    ---> 23 from dm_control.mujoco.wrapper import mjbindings
         24
         25 from dm_control.mujoco.wrapper.core import callback_context
    
    /Users/codeMan/Documents/py-lab/dm_control/dm_control/mujoco/wrapper/mjbindings/__init__.py in <module>()
         22 from absl import logging
         23
    ---> 24 from dm_control.mujoco.wrapper.mjbindings import constants
         25 from dm_control.mujoco.wrapper.mjbindings import enums
         26 from dm_control.mujoco.wrapper.mjbindings import sizes
    
    ImportError: cannot import name 'constants'
    

    My python version is Python 3.5.3, and I use macOs sierra 10.12.6

    opened by wwxFromTju 19
  • How to test/run OpenGL visualization?

    How to test/run OpenGL visualization?

    Hi,

    I installed dm_control yesterday on an Ubuntu 16.04LTS system with NVIDIA graphics card. I have already installed --and work with-- mjpro150 and 131 (both mujoco-py and custom C++ interface) so I know those work fine.

    I created the following "quickstart" script, using the provided one in the README:

    import numpy as np
    from dm_control import suite
    # Load one task:
    env = suite.load(domain_name="humanoid", task_name="stand", visualize_reward=True)
    # Iterate over a task set:
    for domain_name, task_name in suite.BENCHMARKING:
        env = suite.load(domain_name, task_name)
    # Reset data
    action_spec = env.action_spec()
    time_step = env.reset()
    # Step through an episode and print out reward, discount and observation.
    while not time_step.last():
        action = np.random.uniform(action_spec.minimum,
                                 action_spec.maximum,
                                 size=action_spec.shape)
        time_step = env.step(action)
        pixels = env.physics.render()
        print(time_step.reward, time_step.discount, time_step.observation)
    

    It "seems" to run since the print() call in the loop does indeed output such as:

    0.9902381173079999 1.0 OrderedDict([('orientations', array([ 0.92190494, -0.38741616,  0.75086908, -0.66045108,  0.34782824,
            0.93755827,  0.01050299,  0.99994484, -0.34440243, -0.93882211,
           -0.02782136, -0.99961291,  0.52972116, -0.84817185])), ('height', 1.2930647420729058), ('velocity', array([ -0.49068857,   0.54707421,   2.52160751,   4.02860209,
            -1.37774209,  -4.43418408,   9.91898924, -14.24762728,
             0.23987449]))])
    

    However, the MuJoCo OpenGL visualization never starts.

    To get set-up, I created a virtualenv environment from scratch with python 3.5.2 as default (via PyCharm).

    Also, I have to report that there is no Ubuntu package for libglew2.0 via apt-get on 16.04LTS. I had to download it from here and I not sure if this was the proper solution. I would appreciate it if someone who got it to work on Ubuntu 16.04 can report their steps.

    Cheers,

    Vassilios

    enhancement rendering 
    opened by vastsoun 17
  • EGL initialization error

    EGL initialization error

    Hi,

    I've recently come across the following error, on a machine with Nvidia driver version: 440.33.01 CUDA version: 10.2, when trying to use EGL for headless rendering. The same exact code was running properly on a machine with CUDA Version 10.1 and driver version 390.

    Any idea how to fix the issue? I've tried reinstalling dm_control with pip.

      File "/home/aj/miniconda3/envs/rlpyt/lib/python3.7/site-packages/dm_control/suite/__init__.py", line 28, in <module>
        from dm_control.suite import acrobot
      File "/home/aj/miniconda3/envs/rlpyt/lib/python3.7/site-packages/dm_control/suite/acrobot.py", line 24, in <module>
        from dm_control import mujoco
      File "/home/aj/miniconda3/envs/rlpyt/lib/python3.7/site-packages/dm_control/mujoco/__init__.py", line 18, in <module>
        from dm_control.mujoco.engine import action_spec
      File "/home/aj/miniconda3/envs/rlpyt/lib/python3.7/site-packages/dm_control/mujoco/engine.py", line 44, in <module>
        from dm_control import _render
      File "/home/aj/miniconda3/envs/rlpyt/lib/python3.7/site-packages/dm_control/_render/__init__.py", line 75, in <module>
        Renderer = import_func()
      File "/home/aj/miniconda3/envs/rlpyt/lib/python3.7/site-packages/dm_control/_render/__init__.py", line 36, in _import_egl
        from dm_control._render.pyopengl.egl_renderer import EGLContext
      File "/home/aj/miniconda3/envs/rlpyt/lib/python3.7/site-packages/dm_control/_render/pyopengl/egl_renderer.py", line 66, in <module>
        EGL_DISPLAY = create_initialized_headless_egl_display()
      File "/home/aj/miniconda3/envs/rlpyt/lib/python3.7/site-packages/dm_control/_render/pyopengl/egl_renderer.py", line 49, in create_initialized_headless_egl_display
        for device in EGL.eglQueryDevicesEXT():
      File "/home/aj/miniconda3/envs/rlpyt/lib/python3.7/site-packages/dm_control/_render/pyopengl/egl_ext.py", line 65, in eglQueryDevicesEXT
        success = _eglQueryDevicesEXT(max_devices, devices, num_devices)
    ctypes.ArgumentError: argument 2: <class 'TypeError'>: expected LP_c_void_p instance instead of EGLDeviceEXT_pointer_Array_10
    

    Thanks, A

    bug rendering 
    opened by ajabri 16
  • No OpenGL rendering backend

    No OpenGL rendering backend

    I am having the following trouble even though the requirement for installing dm_control is met.

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/ais/gobi5/movie4d/conda_install/anaconda2/lib/python2.7/site-packages/dm_control/suite/__init__.py", line 110, in load
        visualize_reward)
      File "/ais/gobi5/movie4d/conda_install/anaconda2/lib/python2.7/site-packages/dm_control/suite/__init__.py", line 140, in build_environment
        env = domain.SUITE[task_name](**task_kwargs)
      File "/ais/gobi5/movie4d/conda_install/anaconda2/lib/python2.7/site-packages/dm_control/suite/cartpole.py", line 66, in swingup
        physics = Physics.from_xml_string(*get_model_and_assets())
      File "/ais/gobi5/movie4d/conda_install/anaconda2/lib/python2.7/site-packages/dm_control/mujoco/engine.py", line 344, in from_xml_string
        return cls.from_model(model)
      File "/ais/gobi5/movie4d/conda_install/anaconda2/lib/python2.7/site-packages/dm_control/mujoco/engine.py", line 327, in from_model
        return cls(data)
      File "/ais/gobi5/movie4d/conda_install/anaconda2/lib/python2.7/site-packages/dm_control/mujoco/engine.py", line 120, in __init__
        self._reload_from_data(data)
      File "/ais/gobi5/movie4d/conda_install/anaconda2/lib/python2.7/site-packages/dm_control/mujoco/engine.py", line 306, in _reload_from_data
        render_context = render.Renderer(_MAX_WIDTH, _MAX_HEIGHT)
      File "/ais/gobi5/movie4d/conda_install/anaconda2/lib/python2.7/site-packages/dm_control/render/__init__.py", line 51, in Renderer
        raise ImportError('No OpenGL rendering backend could be imported.')
    ImportError: No OpenGL rendering backend could be imported.
    
    rendering 
    opened by HenryZhou7 15
  • Segmentation Fault on checking mujoco licences

    Segmentation Fault on checking mujoco licences

    Hi all, thanks for open-sourcing such a great toolkit! I would like to share and report a bug or issue in which segmentation fault occurs, which might also be happening for others.

    >>> from dm_control import suite
    >>> env = suite.load(domain_name="cartpole", task_name="swingup")
    [1]    28081 segmentation fault (core dumped)  python
    

    I found that it happens during verifying the mujoco license, say when we call _maybe_register_license() (and mjlib.mj_activate).

    stacktrace on gdb:

    #0  0x0000000000017946 in ?? ()
    #1  0x00007ffff0a84fff in mjl_check () from $HOME/.mujoco/mjpro150/bin/libmujoco150.so
    #2  0x00007ffff0a4c013 in mjl_activate () from $HOME/.mujoco/mjpro150/bin/libmujoco150.so
    #3  0x00007ffff0a30e4d in mj_activate () from $HOME/mujoco/mjpro150/bin/libmujoco150.so
    ...
    

    So the segfault happens when mj_activate from libmujoco150.so is invoked. I think it might be a problem of mujoco, not of this package; but maybe something can be wrong with auto-wrapping via ctypes. Plus, the test (python setup.py test) also fails with the same segmentation fault.

    It happened on a linux 64bit machine (Ubuntu 14.04), with python 3.6 (anaconda) and 2.7.

    I verified that mjkey.txt exists and the liecense worked well with mujoco C++ samples and OpenAI's mujoco-py.

    segfault 
    opened by wookayin 13
  • Segmentation fault when loading suite

    Segmentation fault when loading suite

    I'm getting segmentation fault as soon as I do from dm_control import suite. The difference between my issue and https://github.com/deepmind/dm_control/issues/2 is that:

    1. I'm on Ubuntu 16.04.5 while the other issue is on Ubuntu 14.04
    2. I'm already using libstdc++.so.6
    3. I'm using a headless system with EGL (instead of GLFW)
    4. The segfault happens immediately when I import suite instead of loading an environment

    Some other details: I'm on glibc 2.23 and I'm using Python 3.6.8 in a conda environment

    The first few frames of a gdb backtrace:

    #0  0x00007fffedd3afd7 in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-glsi.so.396.37
    #1  0x00007fffedffd8f6 in ?? () from /usr/lib/x86_64-linux-gnu/libEGL_nvidia.so.0
    #2  0x00007fffedfa0511 in ?? () from /usr/lib/x86_64-linux-gnu/libEGL_nvidia.so.0
    #3  0x00007fffedfa165c in ?? () from /usr/lib/x86_64-linux-gnu/libEGL_nvidia.so.0
    #4  0x00007fffedfb697a in ?? () from /usr/lib/x86_64-linux-gnu/libEGL_nvidia.so.0
    #5  0x00007fffc7dc0ec0 in ffi_call_unix64 () from $HOME/miniconda3/envs/dm_control/lib/python3.6/lib-dynload/../../libffi.so.6
    #6  0x00007fffc7dc087d in ffi_call () from $HOME/miniconda3/envs/dm_control/lib/python3.6/lib-dynload/../../libffi.so.6
    #7  0x00007fffc7fd6ede in _call_function_pointer (argcount=3, resmem=0x7fffffff5290, restype=<optimized out>, atypes=0x7fffffff5230, avalues=0x7fffffff5260, 
        pProc=0x7ffff3a5a440 <eglInitialize>, flags=4353) from $HOME/miniconda3/envs/dm_control/lib/python3.6/lib-dynload/_ctypes.cpython-36m-x86_64-linux-gnu.so
    #8  _ctypes_callproc () at <artificial>:1195
    #9  0x00007fffc7fd7915 in PyCFuncPtr_call () from $HOME/miniconda3/envs/dm_control/lib/python3.6/lib-dynload/_ctypes.cpython-36m-x86_64-linux-gnu.so
    

    This seems to suggest that it's an issue with libnvidia-glsi.so.396.37 or libEGL_nvidia-so.0

    For now, I've reverted to using libosmesa and MUJOCO_GL=osmesa

    opened by KeAWang 12
  • Unexpected interaction between between dm_control and JAX

    Unexpected interaction between between dm_control and JAX

    The order of importing jax and dm_control has a large effect on FPS. I'm using dm-control==1.0.3, jax==0.3.1 and jaxlib==0.3.0+cuda11.cudnn82

    The script below reproduces the issue, with code adapted from https://github.com/ikostrikov/jaxrl/tree/main/jaxrl/wrappers

    What should be the correct order of importing the libraries?

    fast = True
    if fast:
        from dm_control import suite
        import jax
    else:
        import jax
        from dm_control import suite
    
    from dm_env import specs
    import numpy as np
    from typing import Dict, Optional, OrderedDict
    import copy
    import gym
    from gym import core, spaces
    
    
    
    def dmc_spec2gym_space(spec):
        if isinstance(spec, OrderedDict):
            spec = copy.copy(spec)
            for k, v in spec.items():
                spec[k] = dmc_spec2gym_space(v)
            return spaces.Dict(spec)
        elif isinstance(spec, specs.BoundedArray):
            return spaces.Box(low=spec.minimum,
                              high=spec.maximum,
                              shape=spec.shape,
                              dtype=spec.dtype)
        elif isinstance(spec, specs.Array):
            return spaces.Box(low=-float('inf'),
                              high=float('inf'),
                              shape=spec.shape,
                              dtype=spec.dtype)
        else:
            raise NotImplementedError
    
    
    class DMCEnv(core.Env):
        def __init__(self,
                     domain_name: str,
                     task_name: str,
                     task_kwargs: Optional[Dict] = {},
                     environment_kwargs=None):
            assert 'random' in task_kwargs, 'please specify a seed, for deterministic behaviour'
    
            self._env = suite.load(domain_name=domain_name,
                                   task_name=task_name,
                                   task_kwargs=task_kwargs,
                                   environment_kwargs=environment_kwargs)
            self.action_space = dmc_spec2gym_space(self._env.action_spec())
    
            self.observation_space = dmc_spec2gym_space(
                self._env.observation_spec())
    
            self.seed(seed=task_kwargs['random'])
    
        def __getattr__(self, name):
            return getattr(self._env, name)
    
        def step(self, action):
            assert self.action_space.contains(action)
    
            time_step = self._env.step(action)
            reward = time_step.reward or 0
            done = time_step.last()
            obs = time_step.observation
    
            info = {}
            if done and time_step.discount == 1.0:
                info['TimeLimit.truncated'] = True
    
            return obs, reward, done, info
    
        def reset(self):
            time_step = self._env.reset()
            return time_step.observation
    
    
    def make_env(env, seed):
        domain_name, task_name = env.split('-')
        env = DMCEnv(
            domain_name = domain_name,
            task_name   = task_name,
            task_kwargs = {'random': seed}
        )
        if isinstance(env.observation_space, gym.spaces.Dict):
            env = gym.wrappers.FlattenObservation(env)
        return env
    
    
    env = make_env('humanoid-run', 42)
    for t in range(10000):
        action = env.action_space.sample()
        next_state, reward, done, info = env.step(action)
    
    opened by dyth 11
  • Path issues with Mujoco

    Path issues with Mujoco

    I installed dm_control using pip and I was attempting to try it out with this repository. When I ran this command: python3 dreamerv2/train.py --logdir ~/logdir/dmc_walker_walk/dreamerv2/1 \ --configs dmc_vision --task dmc_walker_walk

    I get this error: OSError: Cannot find MuJoCo library at /home/*home folder*/.mujoco/mujoco200/bin/libmujoco200.dylib.

    I found this issue and tried following the steps outlined in this post, but for some reason I still get that same error.

    Would appreciate if anyone could take a look at let me know what the issue is.

    opened by oofmeister27 11
  • I want to which object is in contact with which object using mjContact, etc.

    I want to which object is in contact with which object using mjContact, etc.

    Hello,

    I want to know which object is in contact with which object using mjContact, etc.

    If there is contact between objects as shown in the figure below (yellow area), is it possible to know which object is in contact with which object, such as geom name, id number, etc. using mjContact, etc.?

    image

    image

    Thank you!

    opened by miyukin73 0
  • Mujoco, dm_control, EGL Errors

    Mujoco, dm_control, EGL Errors

    Hello, whatever the version of dm_control I set I keep getting this errors.

    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    Cell In[9], line 4
          1 get_ipython().run_line_magic('env', 'MUJOCO_GL=egl')
          2 from typing import Sequence, Tuple
    ----> 4 from dm_control import suite
          5 from dm_control.rl import control
          6 from IPython.display import HTML
    
    File ~/.local/lib/python3.8/site-packages/dm_control/suite/__init__.py:24
         20 import itertools
         22 from dm_control.rl import control
    ---> 24 from dm_control.suite import acrobot
         25 from dm_control.suite import ball_in_cup
         26 from dm_control.suite import cartpole
    
    File ~/.local/lib/python3.8/site-packages/dm_control/suite/acrobot.py:20
         16 """Acrobot domain."""
         18 import collections
    ---> 20 from dm_control import mujoco
         21 from dm_control.rl import control
         22 from dm_control.suite import base
    
    File ~/.local/lib/python3.8/site-packages/dm_control/mujoco/__init__.py:18
          1 # Copyright 2017 The dm_control Authors.
    ...
    ---> 87 raw_eglQueryString = _p.PLATFORM.EGL.eglQueryString
         88 raw_eglQueryString.restype = ctypes.c_char_p
         89 raw_eglQueryString.__doc__ = """Raw version of eglQueryString that does not check for availability"""
    
    AttributeError: 'NoneType' object has no attribute 'eglQueryString' 
    

    I am desperate to know if someone has found a fix.

    opened by shneorkairois 0
  • Fixes for problem with the brick envs passing an iterator to vstack of numpy

    Fixes for problem with the brick envs passing an iterator to vstack of numpy

    This fixes the following warning being thrown by numpy:

    .../venv/lib/python3.10/site-packages/dm_control/manipulation/lift.py:70: FutureWarning:
     arrays to stack must be passed as a "sequence" type such as list or tuple. Support for non-sequence iterables such as generators is deprecated as of NumPy 1.16 and will raise an error in the future.
      site_positions = np.vstack(itertools.product(*offsets))
    
    opened by jjshoots 0
  • mujoco.FatalError: Offscreen framebuffer is not complete, error 0x8cdd

    mujoco.FatalError: Offscreen framebuffer is not complete, error 0x8cdd

    I'm getting this error while using the EGL rendering backend:

    mujoco.FatalError: Offscreen framebuffer is not complete, error 0x8cdd

    The error is rare (but still fatal for a long job) so not sure if I can provide a script to reproduce. I believe this might be a known issue though? Thanks so much!

    The full traceback:

        result = self.run_episode()
      File "/acme/environment_loop.py", line 94, in run_episode
        timestep = self._environment.reset()
      File "/acme/wrappers/base.py", line 55, in reset
        return self._environment.reset()
      File "/acme/wrappers/single_precision.py", line 40, in reset
        return self._convert_timestep(self._environment.reset())
      File "/dm_control/composer/environment.py", line 339, in reset
        return self._reset_attempt()
      File "/dm_control/composer/environment.py", line 349, in _reset_attempt
        self._recompile_physics_and_update_observables()
      File "/dm_control/composer/environment.py", line 243, in _recompile_physics_and_update_observables
        self._observation_updater.reset(self._physics_proxy, self._random_state)
      File "/dm_control/composer/observation/updater.py", line 165, in reset
        enabled.observation_callable())
      File "/dm_control/composer/observation/observable/mjcf.py", line 266, in get_observation
        pixels = physics.render(
      File "/dm_control/mujoco/engine.py", line 216, in render
        camera = Camera(
      File "/dm_control/mujoco/engine.py", line 695, in __init__
        if self._physics.contexts.mujoco is not None:
      File "/dm_control/mujoco/engine.py", line 526, in contexts
        self._make_rendering_contexts()
      File "/dm_control/mujoco/engine.py", line 512, in _make_rendering_contexts
        mujoco_context = wrapper.MjrContext(self.model, render_context)
      File "/dm_control/mujoco/wrapper/core.py", line 606, in __init__
        ptr = ctx.call(mujoco.MjrContext, model.ptr, font_scale)
      File "/dm_control/_render/executor/render_executor.py", line 138, in call
        return func(*args, **kwargs)
    mujoco.FatalError: Offscreen framebuffer is not complete, error 0x8cdd
    (EnvironmentLoop pid=593400) Exception ignored in: <function MjrContext.__del__ at 0x149e24064280>
    (EnvironmentLoop pid=593400) Traceback (most recent call last):
    (EnvironmentLoop pid=593400)   File "/dm_control/mujoco/wrapper/core.py", line 636, in __del__
    (EnvironmentLoop pid=593400)     self.free()
    (EnvironmentLoop pid=593400)   File "/dm_control/mujoco/wrapper/core.py", line 624, in free
    (EnvironmentLoop pid=593400)     ptr = self.ptr
    (EnvironmentLoop pid=593400)   File "/dm_control/mujoco/wrapper/core.py", line 614, in ptr
    (EnvironmentLoop pid=593400)     return self._ptr()
    (EnvironmentLoop pid=593400) AttributeError: 'MjrContext' object has no attribute '_ptr'```
    opened by vaxenburg 4
  • [Basic Question] How can I get Force acting on an object

    [Basic Question] How can I get Force acting on an object

    Hello, I want to ask regarding #363 . To solve #363 problem, I want to get the value of force acting on an red ball in the video below.

    https://user-images.githubusercontent.com/63595993/204800924-15fdc1a9-6d97-49db-9e83-f91f90a3a16b.mp4

    How can I get the values of all forces on an object, not just contact forces?

    Sorry for the basic question, but thank you in advance for your patience.

    opened by miyukin73 0
Releases(1.0.9)
Owner
DeepMind
DeepMind
Simple renderer for use with MuJoCo (>=2.1.2) Python Bindings.

Viewer for MuJoCo in Python Interactive renderer to use with the official Python bindings for MuJoCo. Starting with version 2.1.2, MuJoCo comes with n

Rohan P. Singh 62 Dec 30, 2022
Brax is a differentiable physics engine that simulates environments made up of rigid bodies, joints, and actuators

Brax is a differentiable physics engine that simulates environments made up of rigid bodies, joints, and actuators. It's also a suite of learning algorithms to train agents to operate in these environments (PPO, SAC, evolutionary strategy, and direct trajectory optimization are implemented).

Google 1.5k Jan 2, 2023
PyBullet CartPole and Quadrotor environments—with CasADi symbolic a priori dynamics—for learning-based control and reinforcement learning

safe-control-gym Physics-based CartPole and Quadrotor Gym environments (using PyBullet) with symbolic a priori dynamics (using CasADi) for learning-ba

Dynamic Systems Lab 300 Dec 28, 2022
PyTorch implementations of deep reinforcement learning algorithms and environments

Deep Reinforcement Learning Algorithms with PyTorch This repository contains PyTorch implementations of deep reinforcement learning algorithms and env

Petros Christodoulou 4.7k Jan 4, 2023
CompilerGym is a library of easy to use and performant reinforcement learning environments for compiler tasks

CompilerGym is a library of easy to use and performant reinforcement learning environments for compiler tasks

Facebook Research 721 Jan 3, 2023
gym-anm is a framework for designing reinforcement learning (RL) environments that model Active Network Management (ANM) tasks in electricity distribution networks.

gym-anm is a framework for designing reinforcement learning (RL) environments that model Active Network Management (ANM) tasks in electricity distribution networks. It is built on top of the OpenAI Gym toolkit.

Robin Henry 99 Dec 12, 2022
Motion Planner Augmented Reinforcement Learning for Robot Manipulation in Obstructed Environments (CoRL 2020)

Motion Planner Augmented Reinforcement Learning for Robot Manipulation in Obstructed Environments [Project website] [Paper] This project is a PyTorch

Cognitive Learning for Vision and Robotics (CLVR) lab @ USC 49 Nov 28, 2022
Multi-objective gym environments for reinforcement learning.

MO-Gym: Multi-Objective Reinforcement Learning Environments Gym environments for multi-objective reinforcement learning (MORL). The environments follo

Lucas Alegre 74 Jan 3, 2023
Megaverse is a new 3D simulation platform for reinforcement learning and embodied AI research

Megaverse Megaverse is a new 3D simulation platform for reinforcement learning and embodied AI research. The efficient design of the engine enables ph

Aleksei Petrenko 191 Dec 23, 2022
Doosan robotic arm, simulation, control, visualization in Gazebo and ROS2 for Reinforcement Learning.

Robotic Arm Simulation in ROS2 and Gazebo General Overview This repository includes: First, how to simulate a 6DoF Robotic Arm from scratch using GAZE

David Valencia 12 Jan 2, 2023
Reinforcement learning for self-driving in a 3D simulation

SelfDrive_AI Reinforcement learning for self-driving in a 3D simulation (Created using UNITY-3D) 1. Requirements for the SelfDrive_AI Gym You need Pyt

Surajit Saikia 17 Dec 14, 2021
Conservative Q Learning for Offline Reinforcement Reinforcement Learning in JAX

CQL-JAX This repository implements Conservative Q Learning for Offline Reinforcement Reinforcement Learning in JAX (FLAX). Implementation is built on

Karush Suri 8 Nov 7, 2022
Reinforcement-learning - Repository of the class assignment questions for the course on reinforcement learning

DSE 314/614: Reinforcement Learning This repository containing reinforcement lea

Manav Mishra 4 Apr 15, 2022
Code for PhySG: Inverse Rendering with Spherical Gaussians for Physics-based Relighting and Material Editing

PhySG: Inverse Rendering with Spherical Gaussians for Physics-based Relighting and Material Editing CVPR 2021. Project page: https://kai-46.github.io/

Kai Zhang 141 Dec 14, 2022
Pytorch Implementation of Interaction Networks for Learning about Objects, Relations and Physics

Interaction-Network-Pytorch Pytorch Implementraion of Interaction Networks for Learning about Objects, Relations and Physics. Interaction Network is a

null 117 Nov 5, 2022
A python implementation of Physics-informed Spline Learning for nonlinear dynamics discovery

PiSL A python implementation of Physics-informed Spline Learning for nonlinear dynamics discovery. Sun, F., Liu, Y. and Sun, H., 2021. Physics-informe

Fangzheng (Andy) Sun 8 Jul 13, 2022
A resource for learning about deep learning techniques from regression to LSTM and Reinforcement Learning using financial data and the fitness functions of algorithmic trading

A tour through tensorflow with financial data I present several models ranging in complexity from simple regression to LSTM and policy networks. The s

null 195 Dec 7, 2022
IDRLnet, a Python toolbox for modeling and solving problems through Physics-Informed Neural Network (PINN) systematically.

IDRLnet IDRLnet is a machine learning library on top of PyTorch. Use IDRLnet if you need a machine learning library that solves both forward and inver

IDRL 105 Dec 17, 2022
PyTorch implementation of Memory-based semantic segmentation for off-road unstructured natural environments.

MemSeg: Memory-based semantic segmentation for off-road unstructured natural environments Introduction This repository is a PyTorch implementation of

null 11 Nov 28, 2022