Skip to content
Alexis DUBURCQ edited this page Apr 29, 2024 · 23 revisions

Features

  • Highly and easily configurable:

    • Mechanical backlash, structural deformation and motor inertia
    • Sensor noise, jitter and delay
    • External forces on frames (both impulse or via time-continuous callback)
    • Multi-robot simulation with interaction forces
    • Contact point and collision geometries (both primitives and meshes)
    • Discrete or continuous sensors and controller independently
    • Model uncertainties
    • User-defined internal dynamics
    • User-defined ground profile using an implicit function: f(x,y) = [z, vect_normal]
  • Deterministic or non deterministic on demand, but still PERFECTLY REPEATABLE

  • Designed for fast and efficient optimal control research:

    • Support optimized step-by-step simulation or full episode simulation
    • Python bindings providing API parity with C++
    • Log user-defined variables easily
  • Efficient Python Interface:

    • C++ / Python shared pointers to avoid copy back-and-forth
  • Fast:

    • No real-time reading/writing on hard drive (RAM only)
      • The log can be exported in HDF5 or binary on demand
    • No real-time 3D rendering by default
    • Atlas: ~80 real-time factor
  • Highly parallelizable:

    • Thread safe (single process - single core)
    • Synchronous by default
    • No shared memory
  • Light weight:

    • About 5 minutes to compile from sources
    • Pre-compiled binaries are less than 20mo
  • Well-suited for Reinforcement Learning:

    • Fully compliant with OpenAI Gym API and any machine learning framework built on it

Limitations

  • Collision with vertical surface is impossible
  • No internal collision between links, only with the ground
  • Partial support of generic collision between primitive shapes and meshes

Development status

  • Open-source Jiminy core: stable
  • Open-source Gym/Jiminy interface: stable
  • Mock of a High-Level Controllers: none
  • Modelling still to be improved:
    • Only "perfect" sensor data with noise/delay/jitter is available
      • No complementary filter for IMUs, no voltage to force converter for Force sensors...
    • Only "perfect" torque motor control:
      • No voltage-current to torque-velocity conversion. No response time.
    • No advanced transmission between motors and joints
Clone this wiki locally