Rigid body dynamics simulation using maximal coordinates.
Author janbruedigam
22 Stars
Updated Last
1 Year Ago
Started In
April 2020


Build Status codecov Dev

! Development moved to Dojo.jl !

ConstrainedDynamics is a rigid body dynamics package written in Julia. In contrast to the RigidBodyDynamics package, it uses maximal coordinates instead of minimal coordinates to represent the states of a mechanism. This parametrization can be advantageous when simulating structures with additional explicit constraints. In terms of speed, ConstrainedDynamics and RigidBodyDynamics are roughly comparable, so for normal applications, both are valid options.

The package is largely built on StaticArrays and avoids allocations for improved performance. Convenience methods for setting up mechanical structures in maximal or minimal coordinates are provided and URDF parsing is also available. At the moment, there is a very basic documentation, but the provided examples should help with getting started with the package.

Related Packages

  • RigidBodyDynamics: Especially efficient for simulating unconstrained systems with single-degree-of-freedom joints
  • ConstrainedDynamicsVis: A package built on top of ConstrainedDynamics and MeshCat for visualization of simulations
  • ConstrainedControl: Experimental implementation of Linear-Quadratic Regulation (LQR) in maximal coordinates

Related Publications

Linear-Time Variational Integrators in Maximal Coordinates (accepted to WAFR 2020) Presentation

Linear-Quadratic Optimal Control in Maximal Coordinates (accepted to ICRA 2021)

Linear-Time Contact and Friction Dynamics in Maximal Coordinates using Variational Integrators