Announcing new physics engine TPE (Trivial Physics Engine)

Ignition now supports a new physics engine - TPE, besides the default DARTsim, on both Citadel and Dome. TPE is developed in house by Open Robotics. The motivation is to focus on fast simulation of higher-order fleet dynamics without real physics and multi-machine synchronization.

Alongside this new physics engine development, Ignition Gazebo library also extended support for any custom physics engine with a set of minimum feature list implemented.

Some features TPE supports:

  • model, link, collision(shape)
  • position
  • Set model velocity vs. set force on joint (DARTSim)
  • Nested models
  • AABB tree powered collision detection

Features TPE does not support:

  • Frame, joint
  • kinematics other than position and velocity, like inertia, acceleration, inverse-kinematics solver and etc.
  • dynamics like forces, mass, rigid/soft body, friction, constraint and etc.

Note: some of the features (performance benchmark points and AABB tree) are not released yet. Users will need to build from source to use them. Citadel is the recommended version with the most update to date changes.

If you would like to prototype a simulation world with a large number of entities up and running efficiently without any realistic physics effect, TPE is the perfect candidate. The source code of TPE can be found in both Citadel and Dome (Default) branches. More information on implementation details, feature comparisons and how to load custom engine can be found in our new tutorials below:

To gather statistical evidence of TPE’s performance, We did some performance benchmarking against DARTsim using the Profiler tool. The following are key data takeaways from the full report:

Dartsim vs. TPE

3000 shapes Simulation Runner Step Physics Update Physics WorldForwardStep Physics Update Sim Physics Check Collisions RTF ~500 iterations
Dartsim 165.312 134.236 118.447 15.738 n/a 0.62%
TPE 59.416 30.601 16.305 14.249 14.110 1.65%
9000 shapes Simulation Runner Step Physics Update Physics WorldForwardStep Physics Update Sim Physics CheckCollisions RTF ~500 iterations
Dartsim 336.204 235.437 187.983 47.419 n/a 0.29%
TPE 187.521 86.162 43.129 42.991 37.641 0.57%

Memory Consumption

  • TPE: 8.04GB ->13.4GB; DART: 8.04GB -> 13.7GB. ~300MB difference

Demos (using Citadel)

Velocity Control by TPE

ign gazebo velocity_control.sdf --physics-engine ignition-physics-tpe-plugin

9000 shapes by DARTSim

9000 shapes by TPE

To try TPE with your own entity population world, check out our latest ERB template tutorial.

6 Likes