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:
- Ignition Gazebo: How gazebo finds and loads physics engine
- Ignition Physics: Understanding physics plugin
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.