Computational methods for the kinematic analysis of diarthrodial joints