-
Notifications
You must be signed in to change notification settings - Fork 26
Home
Alexis DUBURCQ edited this page Dec 9, 2020
·
23 revisions
-
Highly and easily configurable:
- Mechanical flexibility and motor inertia modelling
- Sensor noise, jitter and delay modelling
- Support external forces on frames (both impulse or via time-continuous callback)
- Support multi-robot simulation with interaction forces
- Support contact point and collision geometries (both primitives and meshes)
- Support user-defined internal dynamics
- Support both finite time and time-continuous update period for each sensor and the controller independently
- Model uncertainties regarding the kinematics and dynamics properties
- 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 step-by-step (optimized for performance) or one-shot simulation
- Fully wrapped in Python. Designed for (almost) never have to recompile C++.
- Add variables to the logger on-the-fly
- Useful to debugging and dynamic plots updated over time (not implemented so far)
-
Fast Python Interface:
- C++ / Python shared pointers to avoid copy back-and-forth
-
Very fast:
- No real-time reading/writing on hard drive (only in CPU cache then RAM)
- The log can be exported in CSV, HDF5 or binary on demand later on
- No real-time display by default
- Although Gym Jiminy offers this functionality
- Cartpole: 30ms for 1000 integration steps, corresponding to at most 3s of simulation
- No real-time reading/writing on hard drive (only in CPU cache then RAM)
-
Highly parallelizable:
- Thread safe (single process - single core)
- Synchronous by default
- Gym Jiminy offers asynchronous controller update
- No shared memory
-
Light weight:
- It takes about 5 minutes to compile from sources
- Pre-compiled binaries are about 10mo
-
Well-suited for Reinforcement Learning:
- Fully compliant with OpenAI Gym API and therefore any machine learning framework built on top of it
- Collision with vertical surface is impossible
- The simulation will fail if it happens
- No modelling of internal collisions contrary to Gazebo, ie for rotary joints
- No collision between links
- 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.
- Only "perfect" sensor data with noise/delay/jitter is available
- Error handling could be improved
- Old-fashioned message + return code