Drake
Compliant Contact in Drake
Collaboration diagram for Compliant Contact in Drake:


This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.

## Modules

Detecting Contact
Given two posed geometric shapes in a common frame, the collision detection system is responsible for determining if those shapes are penetrating and characterizing that penetration.

Computing Contact Forces
Consider the definition of a contact with interpenetrating collision elements A and B.

Working with Contacts in Drake
The behavior of a simulation with contact will depend on three factors:

The Details of Computing Contact Forces
Drake includes a compliant contact model.

Drake Contact Implementation
Drake's compliant point contact model is a coarse approximation of the previous discussion.

## Detailed Description

Drake is concerned with the simulation of physical phenomena, including contact between simulated objects.

Drake approximates real-world physical contact phenomena with a combination of geometric techniques and response models. Here we discuss the parameterization and idiosyncracies of a particular contact response model, based on point contact with compliance and dissipation, and a Stribeck friction model approximating Coulomb stiction and sliding friction effects.

This document gives an overview of the state of the implementation of compliant contact in Drake (as of Q4 2017) with particular emphasis on how to account for its particular quirks in a well-principled manner. What works in one simulation scenario, may not work equally well in another scenario. This discussion will encompass:

## Definition of contact

Before getting into the details of how contacts are detected and responses are modeled, it is worthwhile to define what a contact means to Drake.

First, contact conceptually occurs between two surfaces, one on each of two independently moving bodies. The contact produces forces on those two surfaces, which can then affect the motion of the bodies. In practice, surfaces are represented by one or more drake::multibody::collision::Element objects – geometric shapes rigidly affixed to a body, whose surfaces can engage in contact.

This document discusses a compliant contact model. In compliant models, the bodies are considered rigid with a thin, deformable shell. The collision geometry represents an object in its undeformed state. As two objects collide, the contact forces cause them to deform. Compliant models compute the forces that would cause the deformation. The deformed geometry is not modeled explicitly. Instead, the contact forces are computed based on the degree of penetration of the non-deforming collision geometry; greater penetration implies larger contact forces. One can think of largely rigid objects which have slightly deformable surfaces. For this model to be useful in practice, the deformations should be small relative to the whole body, so that we can (a) use simple models for the relationship between deformation and forces, and (b) neglect the change in mass properties induced by the deformation. As such, all discussion of collision geometry/elements refers to this undeformed geometry.

Contacts are defined in terms of these collision Element instances and not RigidBody instances. For Drake's purposes, a "contact":

• describes a relationship between two drake::multibody::collision::Element instances, denoted elements A and B,
• only exists if the Element instances overlap,
• quantifies the degree that the two Element instances are overlapping,
• is characterized by a single contact point and a normal direction that are used to define a contact frame C, and
• leads to the generation of two equal-but-opposite forces acting on the RigidBody instances to which the corresponding Elements belong.

Handling physical contact is decomposed into (1) the detection and quantification of overlap (penetration) through the use of geometric techniques applied to collision geometry, and (2) the generation of the resultant forces based on models of material and surface properties resulting in deformation and frictional forces.

Next topic: Detecting Contact