I. Introduction
Contact allows robots to interact with objects and terrain, making it an essential component of almost any useful task they might be expected to perform. Robots are often modelled as tree-like systems of rigid bodies, which allows their dynamics to be described using a finite set of generalized coordinates and associated ordinary differential equations (ODEs) [1]. However, contact introduces discontinuities in the directions of allowable motion, corresponding to unilateral inequality constraints that preclude the use of numerical methods for simulating ODEs. For the assumption of rigidity to hold, collisions must be impulsive: relative motion must cease at the instant of contact, under the action of infinitely-large forces.