# Comparative Study of Physics Engines for Robot Simulation with Mechanical Interaction
## 1 Introduction  
With the recent development of robotic technology, there is a growing movement to use robots for the efficiency and safety of tasks in real industrial fields [1]. To perform various and complex industrial scenarios using robots, a simple hand-tuned controller cannot achieve a high level of performance, which leads robots to perform tasks using model-based controllers. Furthermore, recently, data-driven approaches have been widely used for controlling robots, especially reinforcement learning [2], to enable robots to react to an unexpected environment. However, the development of control algorithms requires preprocessing such as validating the controller for model-based approaches, and obtaining a large number of data for meaningful generalization to various environments for data-driven approaches, which is time-consuming and dangerous when using a real robot. Simulation with a reasonable physical model can overcome these challenges by allowing for users to develop control algorithms for robots in a variety of environments without the possibility of damaging the associated physical systems. For this, a large number of physics engines (e.g., ODE [3], Bullet [4], Vortex [5], MuJoCo [6]) that provide an approximate simulation of certain physical systems have been developed, but simulation results often show unstable or inaccurate behavior when performing complex multipoint contact simulations. To address these problems, a fast and physically accurate contact simulation framework should be developed, but currently developed physics engines still have many limitations. In a situation with such limitations, it is necessary to select a physics engine that is close to the real one for performing realistic simulations, but none of the physics engines has been consistently better than the others when considering various scenarios. There is also no well-organized document on the properties of each physics engine, and it is not intuitive how the properties of each physics engine affect the simulation results. Therefore, it is difficult to select a suitable physics engine for a specific project to be simulated. In this paper, we compare the performance of four widely used physics engines for various scenarios to help users in deciding which physics engine to use by referring to the performance of each analyzed physics engine in this paper when simulating a given project. More precisely, we performed a variety of scenarios ranging from simple scenarios for which an analytic solution exists to complex scenarios used in the real industrial field (e.g., peg-in-hole assembly [7], bolt assembly [8]), and various object-to-object contact scenarios ranging from simple contact between primitive-shape objects to complex multipoint contacts between mesh objects. We also analyze how accurately physics engines simulate real-world physics by observing the contact force, which is important for the behavior of the object. These results can help many researchers in choosing a physics engine for a specific application, and in determining new research directions through the identified limitations. Numerous studies have been proposed to compare the properties or performance of robotic simulators or physics engines. However, most studies have only tested simulators for simple scenarios for which analytic solutions exist, such as sliding an object on a slope or dropping an object to bounce using simple primitive-shape objects such as a sphere, box, and cylinder [9; 10]. While there are studies that performed simulations for complex scenarios and analyzed the characteristics of each physics engine [11; 12], these studies showed that the simulated objects were simple with a primitive shape, and the simulated scenarios did not cover widely performed tasks in real industries (e.g., assembly).