Skip to main content

Part of the book series: Simulation Foundations, Methods and Applications ((SFMA))

  • 1579 Accesses

Abstract

This chapter presents the theoretical and practical aspects of designing and implementing dynamic-simulation engines for rigid-body systems. It covers both generic and specialized algorithms for non-convex and convex objects, respectively, including the special cases of thin and fast moving objects. Special attention is given to one of the most difficult and least understood topics in physically based modeling, namely, the computational techniques needed for determining all impulsive and contact forces between bodies with multiple simultaneous collisions and contacts.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 54.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    The algorithm presented in Appendix F (Chap. 11) limits the set of valid cut faces to simple polygons (without holes or double edges). This, in turn, makes the algorithm unsuitable for decomposing complex geometric shapes.

  2. 2.

    This issue has been already discussed in Sect. 1.4.4 of Chap. 1, but it is revisited here for completeness.

  3. 3.

    The direction defined by the line connecting the closest points at t i .

  4. 4.

    Since an edge is shared by two faces, the underlying implementation data structure representing the rigid body’s face must have its own edge structure because the same edge has one direction for one of its faces, and the reverse of this direction for the adjacent face.

  5. 5.

    This owes to the fact that the bodies have convex shapes. Unfortunately, the same does not apply for the case in which the bodies have non-convex shapes.

  6. 6.

    There is no particular preference for which violated plane should be used in the event that there is more than one.

  7. 7.

    We shall use the parameter λ to index the points on edge b 2.

  8. 8.

    Recall that \(\vec{p}_{2}\) is the point on b 2 closest to b 1.

  9. 9.

    Equation (4.33) is the same as Eq. (4.29), and is repeated here for convenience.

  10. 10.

    The plane in this case is defined as \(\pi_{\vec{p}_{i}, \vec{q}_{i}} = \{\vec{x}: (\vec {n}_{i} \cdot \vec{x} + d_{i}) = 0\}\), as opposed to \(\{\vec{x} : (\vec{n}_{i} \cdot \vec{x} - d_{i}) = 0\}\). The latter is the definition used in all other sections of this book.

  11. 11.

    We will use the vector-based notation as much as possible to keep the equations concise. However, there are cases in which we do need to rewrite the equations using the individual components of each vector, such as when computing the critical-friction coefficient covered later in this section.

  12. 12.

    Even though the use of the indexes is not particularly useful for the single-collision case, they will be extensively applied in the block-matrix representation of multiple collisions to distinguish between equations associated with collisions involving different rigid bodies.

  13. 13.

    If the actual coefficient of friction is equal to the critical coefficient of friction, then the sliding motion will stop exactly at the instant corresponding to the end of the collision.

  14. 14.

    Keep in mind that the velocities computed so far assume that the sliding motion continues throughout the collision.

  15. 15.

    The local-coordinate frame is defined by the collision normal and tangent plane.

  16. 16.

    Whenever a collision becomes a contact, the collision normal will be referred to as the contact normal.

  17. 17.

    Notice that F t is zero if a t (t) is zero.

References

  1. Baraff, D.: Analytical methods for dynamic simulation of non-penetrating rigid bodies. Comput. Graph. (Proc. SIGGRAPH) 23, 223–232 (1989)

    Article  Google Scholar 

  2. Baraff, D.: Curved surfaces and coherence for non-penetrating rigid body simulations. Comput. Graph. (Proc. SIGGRAPH) 24, 19–28 (1990)

    Article  Google Scholar 

  3. Baraff, D.: Coping with friction for non-penetrating rigid body simulation. Comput. Graph. (Proc. SIGGRAPH) 25, 31–40 (1991)

    Article  Google Scholar 

  4. Baraff, D.: Dynamic simulation of non-penetrating rigid bodies. PhD Thesis, Cornell University (1992)

    Google Scholar 

  5. Baraff, D.: Fast contact force computation for non-penetrating rigid bodies. Comput. Graph. (Proc. SIGGRAPH) 28, 24–29 (1994)

    Article  Google Scholar 

  6. Beer, F.P., Johnston, E.R.: Vector Mechanics for Engineers: vol. 2—Dynamics. McGraw-Hill, New York (1977)

    Google Scholar 

  7. Brach, R.M. (ed.): Mechanical Impact Dynamics: Rigid Body Collisions. Wiley, New York (1991)

    Google Scholar 

  8. Baraff, D., Witkin, A.: Partitioned dynamics. Technical Report CMU-RI-TR-97-33, The Robotics Institute at Carnegie Mellon University (1997)

    Google Scholar 

  9. Baraff, D., Witkin, A.: Physically based modeling. SIGGRAPH Course Notes 13 (1998)

    Google Scholar 

  10. Cameron, S.: Enhancing GJK: computing minimum and penetration distances between convex polyhedra. In: Proceedings IEEE International Conference on Robotics and Automation, pp. 3112–3117 (1997)

    Chapter  Google Scholar 

  11. Campagna, S., Kobbelt, L., Seidel, H.-P.: Directed edges: a scalable representation for triangle meshes. J. Graph. Tools 3(4), 1–11 (1998)

    Article  Google Scholar 

  12. de Berg, M., van Kreveld, M., Overmars, M., Schwartskopf, O.: Computational Geometry: Algorithms and Applications. Springer, Berlin (1997)

    MATH  Google Scholar 

  13. Duff, I.S., Erisman, A.M., Reid, J.K.: Direct Methods for Sparse Matrices. Oxford University Press, London (1986)

    MATH  Google Scholar 

  14. Gilbert, E.G., Johnson, D.W., Keerthi, S.S.: A fast procedure for computing the distance between complex objects in three-dimensional space. IEEE J. Robot. Autom. 4(2), 193–203 (1988)

    Article  Google Scholar 

  15. Goldstein, H.: Classical Mechanics. Addison-Wesley, Reading (1950)

    Google Scholar 

  16. Hahn, J.K.: Realistic animation of rigid bodies. Comput. Graph. (Proc. SIGGRAPH), 299–308 (1988)

    Google Scholar 

  17. Keller, J.B.: Impact with friction. Trans. ASME J. Appl. Mech. 53, 1–4 (1986)

    Article  MathSciNet  MATH  Google Scholar 

  18. Kawachi, K., Suzuki, H., Kimura, F.: Simulation of rigid body motion with impulsive friction force. In: Proceedings IEEE International Symposium on Assembly and Task Planning, pp. 182–187 (1997)

    Google Scholar 

  19. Lötstedt, P.: Numerical simulation of time-dependent contact friction problems in rigid-body mechanics. SIAM J. Sci. Stat. Comput. 5(2), 370–393 (1984)

    Article  MATH  Google Scholar 

  20. Mirtich, B.V.: Impulse-based dynamic simulation of rigid body systems. PhD Thesis, University of California, Berkeley (1996)

    Google Scholar 

  21. Mirtich, B.: V-clip: fast and robust polyhedral collision detection. Technical Report TR-97-05, MERL: A Mitsubishi Electric Research Laboratory (1997)

    Google Scholar 

  22. Mirtich, B.: Rigid body contact: collision detection to force computation. Technical Report TR-98-01, MERL: A Mitsubishi Electric Research Laboratory (1998)

    Google Scholar 

  23. Ong, C.J., Gilbert, Elmer G.: The Gilbert–Johnson–Keerthi distance algorithm: a fast version for incremental motions. In: Proceedings IEEE International Conference on Robotics and Automation, pp. 1183–1189 (1997)

    Google Scholar 

  24. O’Rourke, J.: Computational Geometry in C. Cambridge University Press, Cambridge (1998)

    Book  MATH  Google Scholar 

  25. Shabana, A.A.: Computational Dynamics. Wiley, New York (2010)

    Book  MATH  Google Scholar 

  26. Skiena, S.: The Algorithm Design Manual. Springer, Berlin (1997)

    MATH  Google Scholar 

  27. Thürmer, G., Wüthrich, C.A.: Computing vertex normals from polygonal facets. J. Graph. Tools 3(1), 43–46 (1998)

    Article  MATH  Google Scholar 

  28. van den Bergen, G.: A fast robust GJK implementation for collision detection of convex bodies. J. Graph. Tools 4(2), 7–25 (1999)

    Article  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag London

About this chapter

Cite this chapter

Coutinho, M.G. (2013). Rigid-Body Systems. In: Guide to Dynamic Simulations of Rigid Bodies and Particle Systems. Simulation Foundations, Methods and Applications. Springer, London. https://doi.org/10.1007/978-1-4471-4417-5_4

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-4417-5_4

  • Publisher Name: Springer, London

  • Print ISBN: 978-1-4471-4416-8

  • Online ISBN: 978-1-4471-4417-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics