Skip to main content

Gym-Ignition: A toolkit for developing OpenAI Gym environments simulated with Ignition Gazebo.

Project description

gym-ignition

WhatWhyHowDemoSetupCitation


General C++ Standard Size Size
CI/CD Docker Images CI PyPI CD Codacy Badge
gym-ignition


What

Gym-Ignition is a framework to create reproducible robotics environments for reinforcement learning research.

The project is composed of the following components:

Component Description
ScenarI/O Scene Interfaces for Robot Input / Output is a set of C++ interfaces to abstract the interfacing with simulated and real robots.
Gazebo ScenarI/O Ignition Gazebo bindings that expose the ScenarI/O interfaces.
gym-ignition Python package that provides the tooling to create OpenAI Gym environments for robot learning.
gym-ignition-environments Demo environments created with gym-ignition and gym-ignition-models.
Gympp An experimental C++ port of the OpenAI Gym interfaces, used to create pure C++ environments.

Disclaimer: we do not provide support for experimental components.

Why

Refer to the Citation for the extended rationale behind this project.

TL;DR

We designed Gym-Ignition driven by the following reasons:

  • Advances in RL research are pushed by the development of more complex environments, and vice versa.
  • There's no standard framework in the robotics community for creating simulated robotic environments.
  • Environments that can be transferred from simulation to reality with minimal changes are yet to be seen.
  • Alternative solutions are not developed by roboticists for roboticist, and therefore they do not use familiar tools.
  • Existing robotics environments are typically difficult to adapt to run on different physics engines and different robots.
  • Only few solutions offer realistic rendering capabilities.

How

This project interfaces with the new generation of the Gazebo simulator, called Ignition Gazebo. It is part of the new Ignition Robotics suite developed by Open Robotics.

Ignition Robotics is currently under heavy development. Though, it already offers enough functionalities that fit this project's aims:

  • Simulator-as-a-library
  • New modular architecture
  • C++ utilities developed with a robotic mindset
  • New abstractions of physics engines and rendering engines that exploit runtime plugins
  • Full support of DART and coming support of bullet3
  • Support of distributed simulations
  • Well maintained and packaged
  • Ignition Fuel database to download models and worlds

Our Gazebo ScenarI/O component provides Python bindings of the simulator that are comparable to other popular solutions like pybullet and mujoco-py.

Features

At the time of writing, Gym-Ignition offers the following features:

  • Environments compatible with OpenAI Gym
  • Worlds and models are SDF descriptions
  • Reproducibility guarantees
  • Accelerated and multiprocess execution
  • Environments are a combination of three elements:
    • Task: the logic of the decision-making problem. It defines how to process the given action, how to calculate the reward, how to structure the observation, and how to reset the environment. Task objects are robot-independent and runtime-independent.
    • World: unified interface to access world resources.
    • Runtime: implements the actual step of the environment. Simulated runtimes step the simulator, real-time runtimes deal with real-time execution constraints. A Task object can be executed by any runtime without any change.
  • Experimental support to create C++ environments

Demo

We provide a docker image that shows few rollouts executed by a random policy on a cartpole model:

docker pull diegoferigo/gym-ignition:latest
pip3 install rocker

# Intel GPU
rocker --devices /dev/dri --x11 diegoferigo/gym-ignition /github/examples/python/launch_cartpole.py

# Nvidia GPU
rocker --x11 --nvidia diegoferigo/gym-ignition /github/examples/python/launch_cartpole.py

Setup

Visit the Installation section of our website for updated installation instructions. Make sure to select the correct branch since the installation could differ depending on the branch you're interested.

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.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gym-ignition-1.0b3.dev451.tar.gz (215.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gym_ignition-1.0b3.dev451-cp38-cp38-manylinux1_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.8

File details

Details for the file gym-ignition-1.0b3.dev451.tar.gz.

File metadata

  • Download URL: gym-ignition-1.0b3.dev451.tar.gz
  • Upload date:
  • Size: 215.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for gym-ignition-1.0b3.dev451.tar.gz
Algorithm Hash digest
SHA256 3703ce62fb25240199546d7eecbf010df201ad6778f06a79f441cd4565b0d38d
MD5 05fdce0d5c98716f9a3f7db0c80d87ea
BLAKE2b-256 f46f8e6f0b9e51de1c02ce256c23a98168d318c50d1d6ffef31bfbd7d6f5403e

See more details on using hashes here.

File details

Details for the file gym_ignition-1.0b3.dev451-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: gym_ignition-1.0b3.dev451-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 4.1 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

File hashes

Hashes for gym_ignition-1.0b3.dev451-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4b73b103c1bb8480fb61909817a14d3691d4f54286447f8974039543df23de61
MD5 6136b3a1d5a4fd8871c08f07b5f55fe3
BLAKE2b-256 408418d8202d54a8a9016c6e842dc4ef372ae7afc5d405e94d2bbc0ad02cef7d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page