Hard constraints represent absolute limitations imposed on the system. One example of a kinematic constraint is a skeletal joint. Lagrangian dynamics can be used to satisfy such hard constraints by choosing a state vector the describes only the degrees of freedom left to the system[7]. This requires that the constraints be solved analytically at model-building time.
While this formulation is very efficient, it requires an analytical
solution of the constraints to exist. It also precludes modification of the
constraint structure at run-time. Our model instead follows the virtual work formulation [21]. In a virtual work formulation,
all the links in a model have full range of unconstrained motion. Hard
kinematic constraints on the system are be represented as a special set of
forces :
This system, in general, has many solutions. One method of chosing a
solution is the concept of virtual work. Stated simply, virtual work
requires that constraints never change the energy of the system;
constraints must do no work. This can be accomplished by insuring that
.
Since
is required to be in
the null space of the constraint Jacobian: