Robotics: Science and Systems III
An Implicit Time-Stepping Method for Multibody Systems with Intermittent Contact
Nilanjan Chakraborty, Stephen Berard, Srinivas Akella, and Jeff TrinkleAbstract: In this paper we present a fully implicit time-stepping scheme for multibody systems with intermittent contact by incorporating the contact constraints as a set of complementarity and algebraic equations within the dynamics model. Two primary sources of stability and accuracy problems in time stepping schemes for differential complementarity models of multibody systems are the use of polyhedral representations of smooth bodies and the approximation of the distance function (arising from the decoupling of collision detection from the solution of the dynamic time-stepping subproblem). We illustrate this with the simple example of a disc rolling on a table without slip. We model the objects as an intersection of convex inequalities and write the contact constraints as a complementarity constraint between the contact force and a distance function dependent on the closest points on the objects. The closest points satisfy a set of algebraic constraints obtained from the KKT conditions of the minimum distance problem. These algebraic equations and the complementarity constraints taken together ensure satisfaction of the contact constraints. This enables us to formulate a fully implicit time-stepping scheme ($i.e.$, we do not need to approximate the distance function) as a nonlinear complementarity problem (NCP). The resulting time-stepper is therefore more accurate and is the first fully implicit time-stepper (leaving aside the handful of cases when a closed form expression for the distance function is available). We further show examples validating our approach.
Bibtex:
@INPROCEEDINGS{ Chakraborty-RSS-07, AUTHOR = {N. Chakraborty and S. Berard and S. Akella and J. Trinkle}, TITLE = {An Implicit Time-Stepping Method for Multibody Systems with Intermittent Contact}, BOOKTITLE = {Proceedings of Robotics: Science and Systems}, YEAR = {2007}, ADDRESS = {Atlanta, GA, USA}, MONTH = {June}, DOI = {10.15607/RSS.2007.III.023} }