Overview
Impact and friction behaviors are modeled, along with the system’s dynamics, as a nonlinear complementarity problem (NCP). This model simulates hard contact without requiring system-specific solver tuning. Additionally, contacts between a system and the environment are treated as a single graph node connected to a rigid body (see below). As a result, the simulator retains efficient linear-time complexity for open-chain mechanical systems.

Three contact models are implemented in Dojo:
ImpactContactenforces frictionless contact,NonlinearContactenforces contact with a non-linear cone of friction (second-order cone),

LinearContactenforces contact with a linearized cone of friction (pyramidal cone).

All 3 of these contact models implement hard contact i.e., no interpenetration. This means that for both the nonlinear and linearized cones, we concatenate the constraints resulting from friction with the impact constraints.
Implementation
Dojo currently supports contact constraints occurring between a sphere and the ground i.e., a horizontal half-space of altitude 0.0. Each spherical contact is attached to a single Body.
To create a new point of contact, we need to define:
- the
Bodyto which the contact constraint is attached - radius of the sphere defining the spherical contact
- coefficient of friction (except for
ImpactContact)
Example
For the Quadruped model shown in the picture below, we defined 12 contacts spheres show in red:
- 4 for the feet,
- 4 for the knees,
- 4 for for the hips.
