Metadata-Version: 2.1
Name: gym-ignition
Version: 1.0.2.dev10
Summary: Gym-Ignition: A toolkit for developing OpenAI Gym environments simulated with Ignition Gazebo.
Home-page: https://github.com/robotology/gym-ignition
Author: Diego Ferigo
Author-email: diego.ferigo@iit.it
License: LGPL
Keywords: openai gym reinforcement learning environment gazebo robotics ignition
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Games/Entertainment :: Simulation
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Framework :: Robot Framework
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: License :: OSI Approved :: GNU Lesser General Public License v2 or later (LGPLv2+)
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: gym (>=0.13.1)
Requires-Dist: numpy
Requires-Dist: gym-ignition-models
Requires-Dist: lxml
Requires-Dist: idyntree
Provides-Extra: test
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-xvfb ; extra == 'test'
Requires-Dist: pytest-icdiff ; extra == 'test'
Provides-Extra: website
Requires-Dist: sphinx ; extra == 'website'
Requires-Dist: sphinx-book-theme (<0.0.39) ; extra == 'website'
Requires-Dist: sphinx-autodoc-typehints ; extra == 'website'
Requires-Dist: sphinx-fontawesome ; extra == 'website'
Requires-Dist: sphinx-multiversion ; extra == 'website'
Requires-Dist: sphinx-tabs ; extra == 'website'
Requires-Dist: breathe ; extra == 'website'

<p align="center">
<h1 align="center">gym-ignition</h1>
</p>

<p align="center">
<b><a href="https://github.com/robotology/gym-ignition#description">Description</a></b>
•
<b><a href="https://github.com/robotology/gym-ignition#setup">Setup</a></b>
•
<b><a href="https://github.com/robotology/gym-ignition#citation">Citation</a></b>
</p>

<div align="center">
<p><br/></p>
<table>
    <tbody>
         <tr>
            <td align="left">General</td>
            <td align="center">
                <a href="https://isocpp.org">
                <img src="https://img.shields.io/badge/standard-C++17-blue.svg?style=flat&logo=c%2B%2B" alt="C++ Standard" />
                </a>
                <a href="https://github.com/robotology/gym-ignition">
                <img src="https://img.shields.io/github/languages/code-size/robotology/gym-ignition.svg" alt="Size" />
                </a>
                <a href="https://github.com/robotology/gym-ignition/blob/master/LICENSE">
                <img src="https://img.shields.io/badge/license-LGPL-19c2d8.svg" alt="Size" />
                </a>
            </td>
        </tr> 
         <tr>
            <td align="left">CI/CD</td>
            <td align="center">
                <a href="https://github.com/robotology/gym-ignition/actions">
                <img src="https://github.com/robotology/gym-ignition/workflows/CI/CD/badge.svg" alt="CICD" />
                </a>
                <a href="https://github.com/robotology/gym-ignition/actions">
                <img src="https://github.com/robotology/gym-ignition/workflows/Docker%20Images/badge.svg" alt="Docker Images" />
                </a>
                <a href="ttps://www.codacy.com/gh/robotology/gym-ignition/dashboard?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=robotology/gym-ignition&amp;utm_campaign=Badge_Grade">
                <img src="https://api.codacy.com/project/badge/Grade/5536b05f8be94483b64ee883e7170a39" alt="Codacy Badge" />
                </a>
            </td>
        </tr>   
        <tr>
            <td align="left"><code>gym-ignition</code></td>
            <td align="center">
                <a href="https://pypi.org/project/gym-ignition/">
                <img src="https://img.shields.io/pypi/v/gym-ignition.svg" />
                </a>
                <a href="https://pypi.org/project/gym-ignition/">
                <img src="https://img.shields.io/pypi/pyversions/gym-ignition.svg" />
                </a>
                <a href="https://pypi.org/project/gym-ignition/">
                <img src="https://img.shields.io/pypi/status/gym-ignition.svg" />
                </a>
                <a href="https://pypi.org/project/gym-ignition/">
                <img src="https://img.shields.io/pypi/format/gym-ignition.svg" />
                </a>
                <a href="https://pypi.org/project/gym-ignition/">
                <img src="https://img.shields.io/pypi/l/gym-ignition.svg" />
                </a>
            </td>
        </tr>
    </tbody>
</table>
<p><br/></p>
</div>

## Description

**gym-ignition** is a framework to create **reproducible robotics environments** for reinforcement learning research.

The project consists of the following components:

- [**`ScenarI/O`**](cpp/scenario/core): 
  *Scene Interfaces for Robot Input / Output* is a C++ abstraction layer to interact with simulated and real robots.
- [**`Gazebo ScenarI/O`**](cpp/scenario/gazebo): 
  Implementation of the ScenarI/O interfaces to interact with the [Ignition Gazebo](https://ignitionrobotics.org) simulator. 
  We provide Python bindings with functionalities comparable to popular alternatives like 
  [pybullet](https://github.com/bulletphysics/bullet3) and [mujoco-py](https://github.com/openai/mujoco-py).
- [**`gym_ignition`**](python/gym_ignition): 
  A Python package with the tooling to create OpenAI Gym environments for robot learning. 
  It provides abstractions like `Task` and `Runtime` to help developing environments that can be executed transparently 
  on all the ScenarI/O implementations (different simulators, real robots, ...).
  The package also contains resources for inverse kinematics and multi-body dynamics supporting floating-based robots
  based on the [iDynTree](https://github.com/robotology/idyntree) library.
- [**`gym_ignition_environments`**](python/gym_ignition_environments):
  Demo environments created with `gym_ignition` and [`gym-ignition-models`](https://github.com/dic-iit/gym-ignition-models) 
  that show the recommended structure.

This project provides the complete implementation of ScenarI/O for the Ignition Gazebo simulator.
We expose all the physics engines supported by Ignition Gazebo.
Currently, the default and only physics engine is [DART](https://github.com/dartsim/dart).

We are currently working on backends based on robotic middleware to transparently execute the environments developed 
with `gym_ignition` on real robots.

If you're interested to know the reasons why we started developing gym-ignition and why we selected Ignition Gazebo for
our simulations, visit the _Motivations_ section of the [website](https://robotology.github.io/gym-ignition). 

## Setup

1. Install the Ignition suite following the [official instructions](https://ignitionrobotics.org/docs/dome).
1. Execute `pip install gym-ignition`, preferably in a virtual environment.

Then, for some simple examples, visit the _Getting Started_ section of the [website](https://robotology.github.io/gym-ignition).

You can decide to install only the C++ resources if you are not interested in using Python.
We also offer a constantly updated pre-release channel with the last development updates.
You can find all the details about the different types of installations we support in the [website](https://robotology.github.io/gym-ignition).

||||
|:---:|:---:|:---:|
| ![](https://user-images.githubusercontent.com/469199/99262383-321fb200-281e-11eb-89cc-cc31f590daa3.png) | ![](https://user-images.githubusercontent.com/469199/99263111-0cdf7380-281f-11eb-9cfe-338b2aae0503.png) | ![](https://user-images.githubusercontent.com/469199/99262746-9e021a80-281e-11eb-9df1-d70134b0801a.png) |

## Citation

```
@INPROCEEDINGS{ferigo2020gymignition,
    title={Gym-Ignition: Reproducible Robotic Simulations for Reinforcement Learning},
    author={D. {Ferigo} and S. {Traversaro} and G. {Metta} and D. {Pucci}},
    booktitle={2020 IEEE/SICE International Symposium on System Integration (SII)},
    year={2020},
    pages={885-890},
    doi={10.1109/SII46433.2020.9025951}
} 
```

---

**Disclaimer:** Gym-Ignition is an independent project and is not related by any means to OpenAI and Open Robotics.


