Working with Contacts in Drake
Collaboration diagram for Working with Contacts in Drake:

The behavior of a simulation with contact will depend on three factors:

The three factors are interdependent; specific choices for one factor may require supporting changes in the other factors.

Contact Parameters


The determination of contact forces is a combination of per-object contact material parameters and global model parameters. See The Details of Computing Contact Forces for elaboration on the parameters.

Per-object Contact Material Parameters

Global Model Parameters

Issues with Parameter Values

Choice of Integrator

Empirical evidence suggests that any integrator except ExplicitEulerIntegrator can work with this contact model. Generally, the RungeKutta2Integrator and SemiExplicitEulerIntegrator require similar time steps to produce equivalent behavior. Generally, for a vₛ value of 1e-2 m/s, a timestep on the order of 1e-4 is required for both of these. The error-controlled RungeKutta3Integrator will choose very small steps and accuracy must be set tight enough to ensure stability. There is also a first-order, fully-implicit integrator: ImplicitEulerIntegrator that can be considered for handling stiff systems.

Choosing the Right Collision Geometry

The compliant point contact model only reports a single contact between bodies. More particularly, the contact is characterized by a single point. The point is associated with a characteristic area in the model (see above). This has two implications:

Next topic: The Details of Computing Contact Forces