Moby is a GNU GPL 2.0 licensed, multi-body dynamics simulation library written in C++.
Its primary purpose is to serve as the most robust and accurate tool for dynamic robotic simulation.
Features
- Two optional convex solvers: fast (active set QP-based) or accurate (interior-point quadratically constrained quadratic program-based)
- Multiple joint constraints:
- revolute
- prismatic
- universal
- spherical
- fixed
- Simulations serializable using XML file format
- Multiple integrator types::
- Euler (implicit, fixed and variable step)
- 4th-order Runge-Kutta (implicit/explicit)
- 4th-order Runge-Kutta-Fehlberg (variable step)
- ODEPACK (variable step, implicit/explicit, multi-order)
- Articulated bodies supported using both independent coordinate (reduced coordinate) and absolute coordinate (maximal coordinate) representations
- Mass-spring-damper based deformable bodies (plus interactions with rigid/articulated bodies) supported
- Forward kinematics and manipulator Jacobian computation
- Inverse dynamics for robots with both fixed and floating bases
- Graphics can be displayed in OpenSceneGraph, output to VRML, or connected to an arbitrary engine.
What's new
- Bugtesting for imminent version 3.0 release (6/12)
- New methods for integrating large step sizes added (6/12)
- Removed Anitescu-Potra, Mirtich, Newton collision models (12/11)
- Maximal coordinate articulated bodies added (7/09)
- Numerically robust LCP solving method of Nakamura and Yamane added (6/09)
- Structural enhancements of Lloyd added to to Anitescu-Potra contact model (6/09)
- Anitescu-Potra contact model added (12/08)
- Continuous collision detection method added (11/08)
We welcome feedback from researchers in the robotics community (particularly, with respect to bugs!) Please contact us via the email below: