From ef334ba34d6a54be9af0c008263fec2f4717bc21 Mon Sep 17 00:00:00 2001 From: Diego Ferigo Date: Mon, 10 May 2021 09:52:51 +0200 Subject: [PATCH] Update gym-ignition README --- README.md | 106 +++++++++++++++++++++--------------------------------- 1 file changed, 41 insertions(+), 65 deletions(-) diff --git a/README.md b/README.md index 9e5eef31b..e3911480a 100644 --- a/README.md +++ b/README.md @@ -2,36 +2,10 @@

gym-ignition

-

-Description -• -Setup -• -Citation -• -Website -

-
-


- - - - - -
General - - C++ Standard - - - Size - - - Size - -
CI/CD CICD @@ -45,7 +19,6 @@
gym-ignition @@ -66,58 +39,57 @@
-


+|||| +|:---:|:---:|:---:| +| ![][pendulum] | ![][panda] | ![][icub] | + +[icub]: https://user-images.githubusercontent.com/469199/99262746-9e021a80-281e-11eb-9df1-d70134b0801a.png +[panda]: https://user-images.githubusercontent.com/469199/99263111-0cdf7380-281f-11eb-9cfe-338b2aae0503.png +[pendulum]: https://user-images.githubusercontent.com/469199/99262383-321fb200-281e-11eb-89cc-cc31f590daa3.png + ## Description **gym-ignition** is a framework to create **reproducible robotics environments** for reinforcement learning research. -The project consists of the following components: +It is based on the [ScenarIO](scenario/) project which provides the low-level APIs to interface with the Ignition Gazebo simulator. +By default, RL environments share a lot of boilerplate code, e.g. for initializing the simulator or structuring the classes +to expose the `gym.Env` interface. +Gym-ignition provides the [`Task`](python/gym_ignition/base/task.py) and [`Runtime`](python/gym_ignition/base/runtime.py) +abstractions that help you focusing on the development of the decision-making logic rather than engineering. +It includes [randomizers](python/gym_ignition/randomizers) to simplify the implementation of domain randomization +of models, physics, and tasks. +Gym-ignition also provides powerful dynamics algorithms compatible with both fixed-base and floating-based robots by +exploiting [robotology/idyntree](https://github.com/robotology/idyntree/) and exposing +[high-level functionalities](python/gym_ignition/rbd/idyntree). -- [**`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). +Gym-ignition does not provide out-of-the-box environments ready to be used. +Rather, its aim is simplifying and streamlining their development. +Nonetheless, for illustrative purpose, it includes canonical examples in the +[`gym_ignition_environments`](python/gym_ignition_environments) package. -We are currently working on backends based on robotic middleware to transparently execute the environments developed -with `gym_ignition` on real robots. +Visit the [website][website] for more information about the project. -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). +[website]: https://robotology.github.io/gym-ignition -## Setup +## Installation -1. Install the Ignition suite following the [official instructions](https://ignitionrobotics.org/docs/edifice). -1. Execute `pip install gym-ignition`, preferably in a virtual environment. +1. First, follow the installation instructions of [ScenarIO](scenario/). +2. `pip install gym-ignition`, preferably in a [virtual environment](https://docs.python.org/3.8/tutorial/venv.html). -**Note**: `gym-ignition` currently only supports the latest version of the ignition suite. For more information on supported versions please refer to the [Support Policy](https://robotology.github.io/gym-ignition/master/installation/support_policy.html). +## Contributing +You can visit our community forum hosted in [GitHub Discussions](https://github.com/robotology/gym-ignition/discussions). +Even without coding skills, replying user's questions is a great way of contributing. +If you use gym-ignition in your application and want to show it off, visit the +[Show and tell](https://github.com/robotology/gym-ignition/discussions/categories/show-and-tell) section! +You can advertise there your environments created with gym-ignition. -Then, for some simple examples, visit the _Getting Started_ section of the [website](https://robotology.github.io/gym-ignition). +Pull requests are welcome. -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) | +For major changes, please open a [discussion](https://github.com/robotology/gym-ignition/discussions) +first to propose what you would like to change. ## Citation @@ -132,6 +104,10 @@ You can find all the details about the different types of installations we suppo } ``` +## License + +[LGPL v2.1](https://choosealicense.com/licenses/lgpl-2.1/) or any later version. + --- -**Disclaimer:** Gym-Ignition is an independent project and is not related by any means to OpenAI and Open Robotics. +**Disclaimer:** Gym-ignition is an independent project and is not related by any means to OpenAI and Open Robotics.