When you are working with robots, it is useful to dosimulations before building your robotar executing the commands. This wiki page is a non-exhaustive compilation of physics engines that are useful for robotics.
This Physics engines help us simulate entire worlds, and they are useful for testing robot actions before executing in the real world. They can also be used to design experiments, or interact with the robots in virtual environments. The main idea is to have feedback in real-time that obeys (at least to a certain degree) the laws of physics.
Name | Bullet | ODE | Dart | MuJoCo | SimBody | PhysX 4 | PhysX 5 | Unreal | Unity |
---|---|---|---|---|---|---|---|---|---|
License | Zlib | GPL/BSD | BSD | Propietary | Apache 2 | OpenSource | Nvidia | Propietary | Propietary |
OSI | ✓ | ✓ | ✓ | x | ✓ | ||||
Purpose | Games | Games | Robotics | Robotics | Robotics | Robotics | Games | Games | |
Development | Active | Stall | Active | No | Stall | Stall | Active | Active | Active |
Linux | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
API | C++/Python | C++ | C++/Python | C | C++ | C++ | C++ | C# | |
Solver | MLSP | LCP | LCP | PGS/ CG | |||||
Integrator | SI Euler | SI Euler | SI Euler | SI Euler | |||||
Rendering | Gazebo | Gazebo | Gazebo | Own | Gazebo | ||||
Photo real | x | x | x | x | x | ✓ | ✓ | ✓ | |
ROS | ✓ | ✓ | ✓ | x | ✓ | ✓ | ✓ | ||
ROS2 | ✓ | ✓ | ✓ | x | ✓ | ||||
Friction | |||||||||
Cloth | ✓ | ✓ | ✓ | ||||||
VR | x | x | x | x | x | ✓ | ✓ | ||
SI Euler: Semi Implicit Euler
Open source Initiative. They offer a list of approved Open Source Lincenses. For a complete list you can visit: https://opensource.org/licenses/alphabetical . For lincenses that are not in that list they also provide a definition of OpenSource here: https://opensource.org/osd. ✓ means OSI approved, x means not open source, means OSI compliant according to definition.
This engines are more usefull for static analysis. Foe example if you want to simulate the strees that a robotic part could experience.