Multibody Dynamics Constraints

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. | |