Drake
Drake C++ Documentation

Physical Model

Despite several numerical approximations that Drake provides, the underlying physical "model" is the same; Coulomb's law of friction coupled with the maximum dissipation principle (MDP).

Coulomb's law of friction can be stated in terms of forces for point contact as:

 ‖fₜ‖ ≤ μₛfₙ,

where μₛ is the "static" coefficient of friction and fₜ and fₙ are the tangential (friction) and normal components of the contact force, respectively.

For hydroelastic contact the same law can be stated in terms of stresses as:

 ‖Tₜ‖ ≤ μₛpₙ,

where Tₜ and pₙ are the tangential (friction) and normal stresses, respectively.

The friction force fₜ (or stress Tₜ) is perpendicular to the contact normal. It's direction within a plane perpendicular to the contact normal, is determined by MDP. The MDP states that the direction of the friction force is such that it maximizes the amount of dissipation due to friction. Therefore, for a sliding contact with a non-zero slip velocity vector vₜ, the friction force directly opposes vₜ and its magnitude is μₖfₙ (or μₖpₙ), where μₖ is the "dynamic" (or kinetic) coefficient of friction, with μₖ ≤ μₛ. This can be written as:

 
 fₜ = -μₖ vₜ/‖vₜ‖ fₙ.

Numerical Approximations

Drake can model multibody systems as being continuous or discrete. Each of these represent different numerical approximations of the same underlying physics.

In a nutshell, continuous models formulate the multibody physics at the acceleration level and use a regularized model of Coulomb friction. This model is a continuous function of state that can be integrated in time using standard error-controlled numerical methods.

Discrete models on the other hand, formulate the multibody physics at the velocity level, and incorporate friction as constraints. Now, these constraints can be regularized similarly to continuous models, to improve numerics and robustness. Drake's discrete non-convex model with regularized friction is presented in [Castro et al., 2019], and novel convex approximations are presented [Castro et al., 2022] and [Castro et al., 2023].

Please refer to Simulation of Multibody Systems for further details.

Note
Discrete models, formulated at the velocity level, cannot differentiate between static (μₛ) and dynamic (μₖ) friction; only dynamic friction can be resolved. Therefore the static coefficient of friction is ignored.