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