Robotics environments

Overview

Robotics environments

Details and documentation on these robotics environments are available in OpenAI's blog post and the accompanying technical report.

If you use these environments, please cite the following paper:

@misc{1802.09464,
  Author = {Matthias Plappert and Marcin Andrychowicz and Alex Ray and Bob McGrew and Bowen Baker and Glenn Powell and Jonas Schneider and Josh Tobin and Maciek Chociej and Peter Welinder and Vikash Kumar and Wojciech Zaremba},
  Title = {Multi-Goal Reinforcement Learning: Challenging Robotics Environments and Request for Research},
  Year = {2018},
  Eprint = {arXiv:1802.09464},
}

Fetch environments

FetchReach-v0: Fetch has to move its end-effector to the desired goal position.

FetchSlide-v0: Fetch has to hit a puck across a long table such that it slides and comes to rest on the desired goal.

FetchPush-v0: Fetch has to move a box by pushing it until it reaches a desired goal position.

FetchPickAndPlace-v0: Fetch has to pick up a box from a table using its gripper and move it to a desired goal above the table.

Shadow Dexterous Hand environments

HandReach-v0: ShadowHand has to reach with its thumb and a selected finger until they meet at a desired goal position above the palm.

HandManipulateBlock-v0: ShadowHand has to manipulate a block until it achieves a desired goal position and rotation.

HandManipulateEgg-v0: ShadowHand has to manipulate an egg until it achieves a desired goal position and rotation.

HandManipulatePen-v0: ShadowHand has to manipulate a pen until it achieves a desired goal position and rotation.

Comments
  • [Question] Observations meaning

    [Question] Observations meaning

    Hello!

    I would like to ask what do the observations in environments mean specifically? I'm especially interested in 'HandReach-v0' and there are 63 observables, however I could not find and information about their meaning.

    For example, the observations for OpenAI Gym are described here: https://github.com/openai/gym/wiki/CartPole-v0

    opened by Borzyszkowski 7
  • Mujoco bindings and update to gym v0.26

    Mujoco bindings and update to gym v0.26

    This PR makes the following changes:

    • Add new mujoco (v2.2.2) python bindings to latest version of the environments. Versions of environments that depend on mujoco_py have been kept.
    • Update environments to gym v0.26 API (step, render, reset)
    • Add pre-commit tests: black, pyright, pyupgrade, isort
    • Fixed py.Docker and tests for new environments
    • Rename Hand Touch Sensor environments to distinguish between Boolean Touch Sensor and Continuous Touch Sensor
    • Update README.md
    • Add utils for mujoco bindings and mujoco_py under utils/mujoco_py_utils.py and utils/mujoco_utils.py
    • Add compute_terminated and compute_truncated utility methods to GoalEnv as suggested by #16

    The new versions of the environments that depend on mujoco bindings were validated with respect to the old versions of mujoco_py. The benchmark was performed using TQC + HER (sb3 implementation) with the same hyperparameters for both environment versions. The results can be seen here: https://wandb.ai/rodrigodelazcano/gym_robotics/reports/Benchmark-Gym-Robotics-SB3--VmlldzoyMjc3Mzkw

    opened by rodrigodelazcano 4
  • [Proposal] Use mujoco bindings from deepmind instead of mujoco_py

    [Proposal] Use mujoco bindings from deepmind instead of mujoco_py

    Since mujoco_py is no longer maintained, and gym has also already updated its other mujoco envs to use deepmind's python bindings, gym-robotics needs to be updated as well.

    opened by arjun-kg 4
  • [Bug Report] error with 'pip install gym-robotics'

    [Bug Report] error with 'pip install gym-robotics'

    Describe the bug After pip install gym (version 0.22.0), pip install gym-robotics leads to the following error:

    Packages installed from PyPI cannot depend on packages which are not also hosted on PyPI.
    

    And when installing directly gym-robotics with pip (without a prior installation of gym): pip install gym-robotics, the import of gym_robotics returns the following error:

    File "<stdin>", line 1, in <module>
      File "/home/perrin/.conda/envs/p3/lib/python3.7/site-packages/gym_robotics/__init__.py", line 1, in <module>
        from gym.envs.registration import register
      File "/home/perrin/.conda/envs/p3/lib/python3.7/site-packages/gym/__init__.py", line 12, in <module>
        from gym.envs import make, spec, register
      File "/home/perrin/.conda/envs/p3/lib/python3.7/site-packages/gym/envs/__init__.py", line 10, in <module>
        _load_env_plugins()
      File "/home/perrin/.conda/envs/p3/lib/python3.7/site-packages/gym/envs/registration.py", line 725, in load_env_plugins
        fn = plugin.load()
      File "/home/perrin/.conda/envs/p3/lib/python3.7/site-packages/importlib_metadata/__init__.py", line 196, in load
        return functools.reduce(getattr, attrs, module)
    AttributeError: module 'gym_robotics' has no attribute 'register_robotics_envs'
    

    System Info Ubuntu 22.04 Tested with Python 3.7.7 and 3.9.9

    opened by perrin-isir 3
  • [Bug Report] double registration import issue

    [Bug Report] double registration import issue

    There are issues with importing gymnasium_robotics/__init__.py twice

    $ pip list | grep gym           
    gymnasium                     0.27.0
    

    when you import gymansium_robotics it appers that /__init__.py is called twice

    Git version

    ~/Gymnasium-Robotics]$ git pull           
    Already up to date
    
    ~/Gymnasium-Robotics]$ pip install . && py
    Defaulting to user installation because normal site-packages is not writeable
    Processing /home/master-andreas/Gymnasium-Robotics
      Installing build dependencies ... done
      Getting requirements to build wheel ... done
      Installing backend dependencies ... done
      Preparing metadata (pyproject.toml) ... done
    Requirement already satisfied: numpy<1.24.0,>=1.21.0 in /usr/lib/python3.10/site-packages (from gymnasium-robotics==1.1.0) (1.23.5)
    Requirement already satisfied: mujoco>=2.3.1.post1 in /home/master-andreas/.local/lib/python3/site-packages (from gymnasium-robotics==1.1.0) (2.3.1.post1)
    Requirement already satisfied: gymnasium>=0.26 in /home/master-andreas/.local/lib/python3/site-packages (from gymnasium-robotics==1.1.0) (0.27.0)
    Requirement already satisfied: jax-jumpy>=0.2.0 in /home/master-andreas/.local/lib/python3/site-packages (from gymnasium>=0.26->gymnasium-robotics==1.1.0) (0.2.0)
    Requirement already satisfied: typing-extensions>=4.3.0 in /usr/lib/python3.10/site-packages (from gymnasium>=0.26->gymnasium-robotics==1.1.0) (4.4.0)
    Requirement already satisfied: shimmy<1.0,>=0.1.0 in /home/master-andreas/.local/lib/python3/site-packages (from gymnasium>=0.26->gymnasium-robotics==1.1.0) (0.2.0)
    Requirement already satisfied: cloudpickle>=1.2.0 in /home/master-andreas/.local/lib/python3/site-packages (from gymnasium>=0.26->gymnasium-robotics==1.1.0) (2.2.0)
    Requirement already satisfied: gymnasium-notices>=0.0.1 in /home/master-andreas/.local/lib/python3/site-packages (from gymnasium>=0.26->gymnasium-robotics==1.1.0) (0.0.1)
    Requirement already satisfied: glfw in /home/master-andreas/.local/lib/python3/site-packages (from mujoco>=2.3.1.post1->gymnasium-robotics==1.1.0) (2.5.5)
    Requirement already satisfied: absl-py in /home/master-andreas/.local/lib/python3/site-packages (from mujoco>=2.3.1.post1->gymnasium-robotics==1.1.0) (1.3.0)
    Requirement already satisfied: pyopengl in /home/master-andreas/.local/lib/python3/site-packages (from mujoco>=2.3.1.post1->gymnasium-robotics==1.1.0) (3.1.6)
    Building wheels for collected packages: gymnasium-robotics
      Building wheel for gymnasium-robotics (pyproject.toml) ... done
      Created wheel for gymnasium-robotics: filename=gymnasium_robotics-1.1.0-py3-none-any.whl size=1485120 sha256=79a9063e315f99716b0f7ff51ba6ceb5e7d82534aea3f4b88936593645b42db1
      Stored in directory: /home/master-andreas/.cache/pip/wheels/fb/22/bd/db3af103b5ded132ca76abe0558b08910f496de990b605d1d8
    Successfully built gymnasium-robotics
    Installing collected packages: gymnasium-robotics
      Attempting uninstall: gymnasium-robotics
        Found existing installation: gymnasium-robotics 1.1.0
        Uninstalling gymnasium-robotics-1.1.0:
          Successfully uninstalled gymnasium-robotics-1.1.0
    Successfully installed gymnasium-robotics-1.1.0
    Python 3.10.8 (main, Nov  1 2022, 14:18:21) [GCC 12.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import gymnasium_robotics
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchSlide-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchSlide-v2 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchPickAndPlace-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchPickAndPlace-v2 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchReach-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchReach-v2 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchReach-v3 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchPush-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchPush-v2 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandReach-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandReach-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateZ-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateZ-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateZ_BooleanTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateZ_BooleanTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateZ_ContinuousTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateZ_ContinuousTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateParallel-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateParallel-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateParallel_BooleanTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateParallel_BooleanTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateParallel_ContinuousTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateParallel_ContinuousTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateXYZ-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateXYZ-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateXYZ_BooleanTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateXYZ_BooleanTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateXYZ_ContinuousTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateXYZ_ContinuousTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockFull-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockFull-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlock-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlock-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlock_BooleanTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlock_BooleanTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlock_ContinuousTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlock_ContinuousTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggRotate-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggRotate-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggRotate_BooleanTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggRotate_BooleanTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggRotate_ContinuousTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggRotate_ContinuousTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggFull-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggFull-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEgg-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEgg-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEgg_BooleanTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEgg_BooleanTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEgg_ContinuousTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEgg_ContinuousTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenRotate-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenRotate-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenRotate_BooleanTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenRotate_BooleanTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenRotate_ContinuousTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenRotate_ContinuousTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenFull-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenFull-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePen-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePen-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePen_BooleanTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePen_BooleanTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePen_ContinuousTouchSensors-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePen_ContinuousTouchSensors-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchSlideDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchSlideDense-v2 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchPickAndPlaceDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchPickAndPlaceDense-v2 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchReachDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchReachDense-v2 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchReachDense-v3 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchPushDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment FetchPushDense-v2 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandReachDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandReachDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateZDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateZDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateZ_BooleanTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateZ_BooleanTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateZ_ContinuousTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateZ_ContinuousTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateParallelDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateParallelDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateParallel_BooleanTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateParallel_BooleanTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateParallel_ContinuousTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateParallel_ContinuousTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateXYZDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateXYZDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateXYZ_BooleanTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateXYZ_BooleanTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateXYZ_ContinuousTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockRotateXYZ_ContinuousTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockFullDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockFullDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlockDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlock_BooleanTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlock_BooleanTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlock_ContinuousTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateBlock_ContinuousTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggRotateDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggRotateDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggRotate_BooleanTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggRotate_BooleanTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggRotate_ContinuousTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggRotate_ContinuousTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggFullDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggFullDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEggDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEgg_BooleanTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEgg_BooleanTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEgg_ContinuousTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulateEgg_ContinuousTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenRotateDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenRotateDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenRotate_BooleanTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenRotate_BooleanTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenRotate_ContinuousTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenRotate_ContinuousTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenFullDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenFullDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePenDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePen_BooleanTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePen_BooleanTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePen_ContinuousTouchSensorsDense-v0 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    /home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py:520: UserWarning: WARN: Overriding environment HandManipulatePen_ContinuousTouchSensorsDense-v1 already in registry.
      logger.warn(f"Overriding environment {new_spec.id} already in registry.")
    >>> 
    

    pip version

    ...
    $ pip uninstall gymnasium_robotics
    ...
    $ pip install gymnasium_robotics  
    ...
    [master-andreas@master-pc ~]$ py                            
    Python 3.10.8 (main, Nov  1 2022, 14:18:21) [GCC 12.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import gymnasium_robotics
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/home/master-andreas/.local/lib/python3.10/site-packages/gymnasium_robotics/__init__.py", line 1, in <module>
        from gymnasium.envs.registration import register
      File "/home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/__init__.py", line 12, in <module>
        from gymnasium.envs.registration import make, spec, register, registry, pprint_registry
      File "/home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/__init__.py", line 352, in <module>
        load_env_plugins()
      File "/home/master-andreas/.local/lib/python3.10/site-packages/gymnasium/envs/registration.py", line 309, in load_env_plugins
        fn = plugin.load()
      File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 173, in load
        return functools.reduce(getattr, attrs, module)
    AttributeError: partially initialized module 'gymnasium_robotics' has no attribute 'register_robotics_envs' (most likely due to a circular import)
    >>> 
    
    opened by Kallinteris-Andreas 2
  • [Bug Report] Minor User Warning : WARN: Overriding environment HandManipulateBlockRotateZ-v1 already in registry.

    [Bug Report] Minor User Warning : WARN: Overriding environment HandManipulateBlockRotateZ-v1 already in registry.

    Describe the bug Getting user warning UserWarning: WARN: Overriding environment HandManipulateBlockRotateZ-v1 already in registry. when importing Gym. Code example

    System Info Describe the characteristic of your environment: gym 0.26 python 3.10 windows

    • Python version

    Checklist

    image Updating the init file will fix it.

    opened by leonasting 2
  • [Question] Compatibility with stable-baselines3

    [Question] Compatibility with stable-baselines3

    Question

    Hi, how do I initialize a gymnasium-robotics environment such that it is compatible with stable-baselines3. E.g., I tried:

    def make_env():
        env = gymnasium.make('FetchSlide-v2')
        return env
    env = stable_baselines3.common.vec_env.DummyVecEnv([make_env])
    

    which returns an error:

      File "/path/to/stable-baselines3/stable_baselines3/common/vec_env/util.py", line 68, in obs_space_info
        assert not hasattr(obs_space, "spaces"), f"Unsupported structured space '{type(obs_space)}'"
    AssertionError: Unsupported structured space '<class 'gymnasium.spaces.dict.Dict'>'
    

    I found this repo from Rodrigo de Lazcano: validate-mujoco-bindings-gym-robotics. However, it seems to use an older version of gymnasium-robotics (gym-robotics). I couldn't find any more recent examples or documentation.

    opened by simonguist 1
  • Fix typos and codestyle in the README

    Fix typos and codestyle in the README

    Description

    Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

    Fixes # (issue)

    Type of change

    Please delete options that are not relevant.

    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
    • [x] This change requires a documentation update

    Screenshots

    Please attach before and after screenshots of the change if applicable.

    Checklist:

    • [ ] I have run the pre-commit checks with pre-commit run --all-files (see CONTRIBUTING.md instructions to set it up)
    • [ ] I have commented my code, particularly in hard-to-understand areas
    • [x] I have made corresponding changes to the documentation
    • [x] My changes generate no new warnings
    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] New and existing unit tests pass locally with my changes
    opened by araffin 1
  • Update __init__.py

    Update __init__.py

    Update the init.py to remove the warning of duplicated registration of the environment MujocoHandBlockEnv Note: Very Minor change no major impact.

    Description

    Gym throws a user warning of duplicated registration of the environment.

    Fixes # (issue)

    Just removed duplicated code

    Please delete options that are not relevant.

    • [ X] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
    • [ ] This change requires a documentation update

    Screenshots

    Please attach before and after screenshots of the change if applicable.

    Checklist:

    • [ ] I have run the pre-commit checks with pre-commit run --all-files (see CONTRIBUTING.md instructions to set it up)
    • [ ] I have commented my code, particularly in hard-to-understand areas
    • [ ] I have made corresponding changes to the documentation
    • [ ] My changes generate no new warnings
    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] New and existing unit tests pass locally with my changes
    opened by leonasting 1
  • [Bug Report] Gym 0.26 compatibility

    [Bug Report] Gym 0.26 compatibility

    I believe this is not yet compatible with the latest gym (0.26.0)

    I tried the following code with and without unwrapped, but render consistently returns None.

    env = EnvCompatibility(gym.make("FetchReach-v1").unwrapped, render_mode="rgb_array")
    

    Should we consider migrating to the new API if it's going to last?

    opened by vmoens 1
  • [Question] How can I change the distance_threshold in fetch task?

    [Question] How can I change the distance_threshold in fetch task?

    Question

    I want to change the distance_threshold value to improve the difficulty of the fetch task. Like handenv, I can use env = gym.make('HandReach-v0',distance_threshold=0.001), but env = gym.make('FetchReach-v1',distance_threshold=0.001) doesn't work. Then I try to use env.distance_threshold=0.001 to set the variable value, but the compute_reward function and the info['is_success'] returned by env.step function seem to use the default distance_threshold 0.05. So what should I do if I want to change the distance_threshold in fetch task?

    opened by undefinedcodezhong 1
  • Add sparse reward variants for Adroit hand environments

    Add sparse reward variants for Adroit hand environments

    Description

    This adds a sparse reward variant to the adroit hand environments. The dense reward environment is unchanged, but to enable sparse reward on, for example, AdroitHandPen-v0, we can now do AdroitHandPenSparse-v0.

    The sparse reward versions are intentionally very hard, and unlikely to work for status quo RL algorithms without prior heuristics.

    Obligatory Nice.

    opened by jjshoots 1
  • [Bug Report] HTML Doc Generation gives warnings

    [Bug Report] HTML Doc Generation gives warnings

    [~/Gymnasium-Robotics]$ cd docs              
    [~/Gymnasium-Robotics/docs]$ make dirhtml _build
    Running Sphinx v5.2.3
    loading pickled environment... done
    myst v0.18.1: MdParserConfig(commonmark_only=False, gfm_only=False, enable_extensions=[], disable_syntax=[], all_links_external=False, url_schemes=('http', 'https', 'mailto', 'ftp'), ref_domains=None, highlight_code_blocks=True, number_code_blocks=[], title_to_header=False, heading_anchors=None, heading_slug_func=None, footnote_transition=True, words_per_minute=200, sub_delimiters=('{', '}'), linkify_fuzzy_links=True, dmath_allow_labels=True, dmath_allow_space=True, dmath_allow_digits=True, dmath_double_inline=False, update_mathjax=True, mathjax_classes='tex2jax_process|mathjax_process|math|output_area')
    building [mo]: targets for 0 po files that are out of date
    building [dirhtml]: targets for 0 source files that are out of date
    updating environment: 0 added, 3 changed, 0 removed
    reading sources... [100%] envs/hand_touch/index                                  
    /home/master-andreas/Gymnasium-Robotics/docs/envs/fetch/index.md:6: WARNING: Document headings start at H2, not H1 [myst.header]
    /home/master-andreas/Gymnasium-Robotics/docs/envs/fetch/index.md:15: CRITICAL: Problems with "raw" directive path:
    InputError: [Errno 2] No such file or directory: 'envs/fetch/list.html'.
    /home/master-andreas/Gymnasium-Robotics/docs/envs/fetch/index.md:19: WARNING: toctree contains reference to nonexisting document 'envs/fetch/FetchReach'
    /home/master-andreas/Gymnasium-Robotics/docs/envs/fetch/index.md:19: WARNING: toctree contains reference to nonexisting document 'envs/fetch/FetchSlide'
    /home/master-andreas/Gymnasium-Robotics/docs/envs/fetch/index.md:19: WARNING: toctree contains reference to nonexisting document 'envs/fetch/FetchPickAndPlace'
    /home/master-andreas/Gymnasium-Robotics/docs/envs/fetch/index.md:19: WARNING: toctree contains reference to nonexisting document 'envs/fetch/FetchPush'
    /home/master-andreas/Gymnasium-Robotics/docs/envs/hand/index.md:6: WARNING: Document headings start at H2, not H1 [myst.header]
    /home/master-andreas/Gymnasium-Robotics/docs/envs/hand/index.md:15: CRITICAL: Problems with "raw" directive path:
    InputError: [Errno 2] No such file or directory: 'envs/hand/list.html'.
    /home/master-andreas/Gymnasium-Robotics/docs/envs/hand/index.md:19: WARNING: toctree contains reference to nonexisting document 'envs/hand/HandReach'
    /home/master-andreas/Gymnasium-Robotics/docs/envs/hand/index.md:19: WARNING: toctree contains reference to nonexisting document 'envs/hand/HandBlock'
    /home/master-andreas/Gymnasium-Robotics/docs/envs/hand/index.md:19: WARNING: toctree contains reference to nonexisting document 'envs/hand/HandEgg'
    /home/master-andreas/Gymnasium-Robotics/docs/envs/hand/index.md:19: WARNING: toctree contains reference to nonexisting document 'envs/hand/HandPen'
    /home/master-andreas/Gymnasium-Robotics/docs/envs/hand_touch/index.md:20: CRITICAL: Problems with "raw" directive path:
    InputError: [Errno 2] No such file or directory: 'envs/hand_touch/list.html'.
    /home/master-andreas/Gymnasium-Robotics/docs/envs/hand_touch/index.md:24: WARNING: toctree contains reference to nonexisting document 'envs/hand_touch/HandBlockTouchSensors'
    /home/master-andreas/Gymnasium-Robotics/docs/envs/hand_touch/index.md:24: WARNING: toctree contains reference to nonexisting document 'envs/hand_touch/HandEggTouchSensors'
    /home/master-andreas/Gymnasium-Robotics/docs/envs/hand_touch/index.md:24: WARNING: toctree contains reference to nonexisting document 'envs/hand_touch/HandPenTouchSensors'
    looking for now-outdated files... none found
    pickling environment... done
    checking consistency... /home/master-andreas/Gymnasium-Robotics/docs/404.md: WARNING: document isn't included in any toctree
    /home/master-andreas/Gymnasium-Robotics/docs/README.md: WARNING: document isn't included in any toctree
    done
    preparing documents... done
    writing output... [100%] index                                                   
    generating indices... genindex done
    writing additional pages... search done
    copying images... [100%] _static/videos/fetch/FetchPickAndPlace.gif              
    copying static files... done
    copying extra files... done
    dumping search index in English (code: en)... done
    dumping object inventory... done
    build succeeded, 18 warnings.
    
    The HTML pages are in _build/dirhtml.
    Running Sphinx v5.2.3
    
    Sphinx error:
    Builder name _build not registered or available through entry point
    make: *** [Makefile:20: _build] Error 2
    
    
    opened by Kallinteris-Andreas 6
  • [Proposal] MinariDataset Generation

    [Proposal] MinariDataset Generation

    Proposal

    Up-to-date, re-runnable expert Minari datasets for offline learning.

    Motivation

    Minari is now at a stage where datasets can be made and uploaded for experimental use by others.

    Pitch

    • Have an expert policy perform 100k rollouts on each environment, save this buffer as a MinariDataset and upload it for public use.

    Alternatives

    If anyone thinks Minari needs to be improved before doing this, let me know.

    Additional context

    See https://github.com/Farama-Foundation/Minari/blob/main/tutorials/DatasetCreation/dataset_creation.py for an example of creating and uploading a MinariDataset.

    Checklist

    • [x] I have checked that there is no similar issue in the repo (required)
    opened by WillDudley 0
  • Add MaMuJoCo (Multi-agent mujoco) Environments

    Add MaMuJoCo (Multi-agent mujoco) Environments

    MaMuJoCo was first introduced in "FACMAC: Factored Multi-Agent Centralised Policy Gradients"

    I consider this version of the code to be:

    • ~~almost~~ feature complete
    - bug free (at least I have written extensive tests)
    
    • doc wise I was I written a bunch ( more is needed), ~~but I still not sure how the Docs should be structured, e.g. do we need 1 page per task, or 1 for the Gymnasium/MuJoCo Tasks and 1 per new task~~

    ~~requirements: (I have not added them to setup.py, because it is obvious to me, how it should be packaged, should it work with just pip install gymansium-robotics[MaMuJoCo] for example)~~

    demo (feel free to try other scenarios/agent_configurations)

    import numpy
    from gymnasium_robotics import mamujoco_v0
    
    if __name__ == "__main__":
        env = mamujoco_v0.parallel_env(scenario='Ant', agent_conf='2x4', agent_obsk=0, render_mode=None)
        # env = mamujoco_v0.parallel_env(scenario='Humanoid', agent_conf='9|8', agent_obsk=0, render_mode=None)
        # env = mamujoco_v0.parallel_env(scenario='Reacher', agent_conf='2x1', agent_obsk=1, render_mode=None)
        # env = mamujoco_v0.parallel_env(scenario='coupled_half_cheetah', agent_conf='1p1', agent_obsk=1, render_mode=None)
        # env = mamujoco_v0.parallel_env(scenario='Swimmer', agent_conf='2x1', agent_obsk=0, render_mode='human')
        # env = mamujoco_v0.parallel_env(scenario='manyagent_swimmer', agent_conf='2x1', agent_obsk=0, render_mode='human')
        # env = mamujoco_v0.parallel_env(scenario='coupled_half_cheetah', agent_conf='1p1', agent_obsk=0, render_mode='human')
        # env = mamujoco_v0.parallel_env(scenario='manyagent_swimmer', agent_conf='2x1', agent_obsk=0, render_mode='human')
    
        n_episodes = 1
        debug_step = 0
    
        for e in range(n_episodes):
            obs = env.reset()
            terminated = {'agent_0': False}
            truncated = {'agent_0': False}
            episode_reward = 0
    
            while not terminated['agent_0'] and not truncated['agent_0']:
                state = env.state()
    
                actions = {}
                for agent_id in env.agents:
                    avail_actions = env.action_space(agent_id)
                    action = numpy.random.uniform(avail_actions.low[0], avail_actions.high[0], avail_actions.shape[0])
                    actions[str(agent_id)] = action
    
                obs, reward, terminated, truncated, info = env.step(actions)
                print(reward)
                episode_reward += reward['agent_0']
    
            print("Total reward in episode {} = {}".format(e, episode_reward))
        env.close()
    

    Notes:

    • The Environments are fully Deterministic
    • ~~Does not include versioning (-v0) this will be added right before it is ready for inclusion in the project~~
    • Tested only on x64 Linux py3.7, py3.8, py3.9, py3.10, py3.11 (I do not have option to test on MAC & ARM)
    • Documentation is not complete, ~~I need some help with deciding the structure (Since there are effectively a lot of domains)~~
    • Has passed Black, isort, flake8, (in pre-commit)
    • ~~Not sure if it belongs in this repo, or it would be better as part of PettingZoo (your call)~~
    • This is my first PR into a 'serious' repo, please feel free to dish out any criticism

    TODO (not by me)

    • add Apache license to the enviroment
    opened by Kallinteris-Andreas 6
Releases(v1.0.1)
  • v1.0.1(Oct 3, 2022)

    What's Changed

    The PyPi package name for this repository will be changed in future releases and integration with Gymnasium. The new name will be gymnasium_robotics and installation will be done with pip install gymnasium_robotics instead of pip install gym_robotics.

    The code for gym_robotics will be kept in the repository branch gym-robotics-legacy

    Bug Fix

    • Remove the warning of duplicated registration of the environment MujocoHandBlockEnv @leonasting
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Sep 15, 2022)

    This new release comes with the following changes:

    • Compatibility with gym v0.26. Previous gym versions won't be compatible with this release. @rodrigodelazcano
    • Added new environment versions that depend on the new mujoco python bindings. @rodrigodelazcano
    • Old environment versions that depend on mujoco_py are still kept but will be unmaintained moving forward. @rodrigodelazcano
    • New utility methods for GoalEnv class as suggested in #16 . compute_terminated and compute_truncated @rodrigodelazcano

    The new versions of the environments that depend on mujoco bindings were validated with respect to the old versions of mujoco_py. The benchmark was performed using TQC + HER (sb3 implementation) with the same hyperparameters for both environment versions. The results can be seen here: https://wandb.ai/rodrigodelazcano/gym_robotics/reports/Benchmark-Gym-Robotics-SB3--VmlldzoyMjc3Mzkw

    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Feb 25, 2022)

    What's Changed

    • Change workflow name by @vwxyzjn in https://github.com/Farama-Foundation/gym-robotics/pull/4
    • Adopt gym>=0.22 reset signature by @vwxyzjn in https://github.com/Farama-Foundation/gym-robotics/pull/8
    • Use gym>=0.22 as the core dependency by @vwxyzjn in https://github.com/Farama-Foundation/gym-robotics/pull/9

    Installation Demo

    pip install gym-robotics
    pip install mujoco_py
    wget https://mujoco.org/download/mujoco210-linux-x86_64.tar.gz
    mkdir -p ~/.mujoco
    tar -xzf mujoco210-linux-x86_64.tar.gz -C ~/.mujoco
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.mujoco/mujoco210/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia
    

    asciicast

    Full Changelog: https://github.com/Farama-Foundation/gym-robotics/compare/v0.0.2...v0.1.0

    Source code(tar.gz)
    Source code(zip)
  • v0.0.2(Jan 7, 2022)

    What's Changed

    • Migrate robotics environments from OpenAI Gym by @seungjaeryanlee in https://github.com/Farama-Foundation/gym-robotics/pull/1
    • Use Gym plugin system by @JesseFarebro in https://github.com/Farama-Foundation/gym-robotics/pull/2
    • Setup github actions to publish on PyPi by @vwxyzjn in https://github.com/Farama-Foundation/gym-robotics/pull/3

    New Contributors

    • @seungjaeryanlee made their first contribution in https://github.com/Farama-Foundation/gym-robotics/pull/1
    • @JesseFarebro made their first contribution in https://github.com/Farama-Foundation/gym-robotics/pull/2
    • @vwxyzjn made their first contribution in https://github.com/Farama-Foundation/gym-robotics/pull/3

    Full Changelog: https://github.com/Farama-Foundation/gym-robotics/commits/v0.0.2

    Source code(tar.gz)
    Source code(zip)
Owner
Farama Foundation
The Farama Foundation is a host organization for the development of open source reinforcement learning software
Farama Foundation
YARR is Yet Another Robotics and Reinforcement learning framework for PyTorch.

Yet Another Robotics and Reinforcement (YARR) learning framework for PyTorch.

Stephen James 21 Aug 1, 2021
Libraries, tools and tasks created and used at DeepMind Robotics.

Libraries, tools and tasks created and used at DeepMind Robotics.

DeepMind 270 Nov 30, 2022
Bonnet: An Open-Source Training and Deployment Framework for Semantic Segmentation in Robotics.

Bonnet: An Open-Source Training and Deployment Framework for Semantic Segmentation in Robotics. By Andres Milioto @ University of Bonn. (for the new P

Photogrammetry & Robotics Bonn 314 Dec 30, 2022
Robotics with GPU computing

Robotics with GPU computing Cupoch is a library that implements rapid 3D data processing for robotics using CUDA. The goal of this library is to imple

Shirokuma 625 Jan 7, 2023
The Generic Manipulation Driver Package - Implements a ROS Interface over the robotics toolbox for Python

Armer Driver Armer aims to provide an interface layer between the hardware drivers of a robotic arm giving the user control in several ways: Joint vel

QUT Centre for Robotics (QCR) 13 Nov 26, 2022
Learning to Simulate Dynamic Environments with GameGAN (CVPR 2020)

Learning to Simulate Dynamic Environments with GameGAN PyTorch code for GameGAN Learning to Simulate Dynamic Environments with GameGAN Seung Wook Kim,

null 199 Dec 26, 2022
Selfplay In MultiPlayer Environments

This project allows you to train AI agents on custom-built multiplayer environments, through self-play reinforcement learning.

null 200 Jan 8, 2023
Deploy tensorflow graphs for fast evaluation and export to tensorflow-less environments running numpy.

Deploy tensorflow graphs for fast evaluation and export to tensorflow-less environments running numpy. Now with tensorflow 1.0 support. Evaluation usa

Marcel R. 349 Aug 6, 2022
[ICLR 2021] Rank the Episodes: A Simple Approach for Exploration in Procedurally-Generated Environments.

[ICLR 2021] RAPID: A Simple Approach for Exploration in Reinforcement Learning This is the Tensorflow implementation of ICLR 2021 paper Rank the Episo

Daochen Zha 48 Nov 21, 2022
Fusion-DHL: WiFi, IMU, and Floorplan Fusion for Dense History of Locations in Indoor Environments

Fusion-DHL: WiFi, IMU, and Floorplan Fusion for Dense History of Locations in Indoor Environments Paper: arXiv (ICRA 2021) Video : https://youtu.be/CC

Sachini Herath 68 Jan 3, 2023
MonoRec: Semi-Supervised Dense Reconstruction in Dynamic Environments from a Single Moving Camera

MonoRec: Semi-Supervised Dense Reconstruction in Dynamic Environments from a Single Moving Camera

Felix Wimbauer 494 Jan 6, 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
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
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
Ranking Models in Unlabeled New Environments (iccv21)

Ranking Models in Unlabeled New Environments Prerequisites This code uses the following libraries Python 3.7 NumPy PyTorch 1.7.0 + torchivision 0.8.1

null 14 Dec 17, 2021
Cross Quality LFW: A database for Analyzing Cross-Resolution Image Face Recognition in Unconstrained Environments

Cross-Quality Labeled Faces in the Wild (XQLFW) Here, we release the database, evaluation protocol and code for the following paper: Cross Quality LFW

Martin Knoche 10 Dec 12, 2022
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
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