ROBOTICS 101Concept explainer

Contact, Collisions, and Restitution

Collisions happen in milliseconds, so simulators need a model of what happens during contact. One option is an instant rule that flips the velocity and keeps a fraction of it. Another is a stiff spring and damper that push the objects apart. Each has trade-offs.

Two contact models

The restitution rule reverses the speed at impact and keeps a fraction \(e\) of it, so each bounce reaches \(e^2\) of the previous height:

$$v^+ = -e\,v^- \qquad h_{n+1} = e^2\,h_n$$

The spring-damper model, also called penalty contact, lets objects overlap by a depth \(\delta\) and pushes back with

$$F = k\,\delta + c\,\dot\delta, \qquad c = 2\zeta\sqrt{k m}, \quad \zeta = \frac{-\ln e}{\sqrt{\pi^2 + \ln^2 e}}$$

Choosing the damping this way gives the same bounciness as the rule.

What to notice

With the same \(e\), both balls bounce to almost the same heights. But lower the stiffness and the spring ball visibly sinks into the floor before bouncing, which looks wrong, and its contact lasts longer. Raise the stiffness and the sinking disappears, but the simulator needs much smaller time steps to stay stable, as the next concept shows. Robot simulators like Gazebo, MuJoCo, and Isaac Sim each make their own choices here, which is one reason the same robot can behave differently in each.