Abstract

We describe a new physics engine tailored to model-based control. Multi-joint dynamics are represented in generalized coordinates and computed via recursive algorithms. Contact responses are computed via efficient new algorithms we have developed, based on the modern velocity-stepping approach which avoids the difficulties with spring-dampers. Models are specified using either a high-level C++ API or an intuitive XML file format. A built-in compiler transforms the user model into an optimized data structure used for runtime computation. The engine can compute both forward and inverse dynamics. The latter are well-defined even in the presence of contacts and equality constraints. The model can include tendon wrapping as well as actuator activation states (e.g. pneumatic cylinders or muscles). To facilitate optimal control applications and in particular sampling and finite differencing, the dynamics can be evaluated for different states and controls in parallel. Around 400,000 dynamics evaluations per second are possible on a 12-core machine, for a 3D homanoid with 18 dofs and 6 active contacts. We have already used the engine in a number of control applications. It will soon be made publicly available.

Keywords

Physics engineCompilerComputer scienceInverse dynamicsComputationActuatorExecutableDamperAlgorithmControl (management)Computational scienceControl theory (sociology)SimulationControl engineeringProgramming languageArtificial intelligenceEngineeringKinematics

Affiliated Institutions

Related Publications

Theory of Ground Vehicles

Preface. Preface to the Third Edition. Preface to the Second Edition. Preface to the First Edition. Conversion Factors. Nomenclature. Introduction. 1. MECHANICS OF PNEUMATIC TIR...

2022 2238 citations

Publication Info

Year
2012
Type
article
Pages
5026-5033
Citations
4151
Access
Closed

External Links

Social Impact

Social media, news, blog, policy document mentions

Citation Metrics

4151
OpenAlex

Cite This

Emanuel Todorov, Tom Erez, Yuval Tassa (2012). MuJoCo: A physics engine for model-based control. , 5026-5033. https://doi.org/10.1109/iros.2012.6386109

Identifiers

DOI
10.1109/iros.2012.6386109