Python-native helper methods and wrapping classes for Jiminy open-source simulator.


Keywords
c-plus-plus, machine-learning, openai-gym, python, robotics, simulator
License
MIT
Install
pip install jiminy-py==1.2.36

Documentation

Jiminy simulator

Description

Jiminy is an open-source C++ simulator of poly-articulated systems, under the first restriction that the contact with the ground can be reduced to a dynamic set of points and the second restriction that the collisions between bodies or the environment can be neglected.

It is built upon Pinocchio, which is an open-source implementing highly efficient Rigid Body Algorithms for poly-articulated systems. It is used to handle low-level physics calculations related to the system, while the effect of the environment on it is handled by Jiminy itself. The integration of time is based on the open-source library Boost Odeint.

The visualisation relies on the open-source client Gepetto-Viewer, which is based on CORBA and omniORB at low-level, or alternatively Meshcat, which is a remotely-controllable web-based visualizer especially well suited to Jupyter notebook running on remote servers as one can display directly in a Jupyter cell. It is possible to do real-time visual rendering and to replay a simulation afterward.

The data of the simulation can be exported in CSV, raw binary format, or read directly from the RAM memory to avoid any disk access. The complete list of features, development status, and changelog are available on the wiki.

Python2 and Python3 bindings have been written using the open-source library Boost Python. Every tools in Jiminy repository is compatible with both version of Python. Yet, it is recommended to use Python3 over Python2 since support will be dropped in the future.

**The Doxygen documentation is available on Github.io and locally in docs/index.html. **

Thanks to Jan-Lukas Wynen for Doxygen That Style.

Demo


Jiminy learning

Description

The Machine Learning library Open AI Gym is fully supported. Abstract environments and a few for toy models are provided: a cartpole, an acrobot, and a pendulum.

Note that Python3 is not a requirement to use openAI Gym strictly speaking. Nevertheless, most Python Machine Learning packages that implements standard reinforcement learning algorithms only support Python3, such as openAI Gym Baseline or Coach. Tey both use the open-source Machine Learning framework Tensorflow as backend optimizer but Pytorch is equally supported. A few learning examples are also provided, most are based on those packages, but one implements a dqn algorithm from scratch using Pytorch.

Demo


Getting started

Jiminy is compatible with Linux, MacOS, and Windows. It also supports Python2.7 and Python3.5+. However, only pre-compiled binaries for Python are available for Linux/Python3.6 and Windows/Python3.6 (coming soon), which can be installed using pip. Otherwise, it has to be built from source for now. The complete installation instructions are available here.