Drake
Drake C++ Documentation
Multibody Dynamics Constraints

Detailed Description

This documentation describes the types of multibody constraints supported in Drake, including specialized constraint types- namely point-based contact constraints that allow Drake's constraint solver to readily incorporate the Coulomb friction model.

Drake's constraint system helps solve computational dynamics problems with algebraic constraints, like differential algebraic equations:

ẋ = f(x, t, λ)
0 = g(x, t, λ)

where g() corresponds to one or more constraint equations and λ is typically interpretable as "forces" that enforce the constraints. Drake's constraint system permits solving initial value problems subject to such constraints and does so in a manner very different from "smoothing methods" (also known as "penalty methods"). Smoothing methods have traditionally required significant computation to maintain g = 0 to high accuracy (and typically yielding what is known in ODE and DAE literature as a "computationally stiff system").

We also provide the core components of an efficient first-order integration scheme for a system with both compliant and rigid unilateral constraints. Such a system arises in many contact problems, where the correct modeling parameters would yield a computationally stiff system. The integration scheme is low-accuracy but very stable for mechanical systems, even when the algebraic variables (i.e., the constraint forces) are computed to low accuracy.

This discussion will provide necessary background material in:

and will delve into the constraint solver functionality in:

A prodigious number of variables will be referenced throughout the discussion on constraints. Variables common to both acceleration-level constraints and velocity-level constraints will be covered in Variable definitions.

References for this discussion will be provided in References.

Modules

 Variable definitions
 
 Constraint types
 Constraints can be categorized as either bilateral ("two-sided" constraints, e.g., g(q) = 0) or unilateral ("one-sided" constraints, e.g., g(q) ≥ 0).
 
 Constraint stabilization
 Both truncation and rounding errors can prevent constraints from being exactly satisfied.
 
 Constraint Jacobian matrices
 Much of the problem data necessary to account for constraints in dynamical systems refers to particular Jacobian matrices.
 
 Contact surface constraints
 Consider two points pᵢ and pⱼ on rigid bodies i and j, respectively, and assume that at a certain configuration of the two bodies, ᶜq, the two points are coincident at a single location in space, p(ᶜq).
 
 A stable discretization strategy
 To be written.
 
 References
 Sources referenced within the multibody constraint documentation.