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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 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.
- 3.
The direction defined by the line connecting the closest points at t i .
- 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.
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.
There is no particular preference for which violated plane should be used in the event that there is more than one.
- 7.
We shall use the parameter λ to index the points on edge b 2.
- 8.
Recall that \(\vec{p}_{2}\) is the point on b 2 closest to b 1.
- 9.
- 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.
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.
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.
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.
Keep in mind that the velocities computed so far assume that the sliding motion continues throughout the collision.
- 15.
The local-coordinate frame is defined by the collision normal and tangent plane.
- 16.
Whenever a collision becomes a contact, the collision normal will be referred to as the contact normal.
- 17.
Notice that F t is zero if a t (t) is zero.
References
Baraff, D.: Analytical methods for dynamic simulation of non-penetrating rigid bodies. Comput. Graph. (Proc. SIGGRAPH) 23, 223–232 (1989)
Baraff, D.: Curved surfaces and coherence for non-penetrating rigid body simulations. Comput. Graph. (Proc. SIGGRAPH) 24, 19–28 (1990)
Baraff, D.: Coping with friction for non-penetrating rigid body simulation. Comput. Graph. (Proc. SIGGRAPH) 25, 31–40 (1991)
Baraff, D.: Dynamic simulation of non-penetrating rigid bodies. PhD Thesis, Cornell University (1992)
Baraff, D.: Fast contact force computation for non-penetrating rigid bodies. Comput. Graph. (Proc. SIGGRAPH) 28, 24–29 (1994)
Beer, F.P., Johnston, E.R.: Vector Mechanics for Engineers: vol. 2—Dynamics. McGraw-Hill, New York (1977)
Brach, R.M. (ed.): Mechanical Impact Dynamics: Rigid Body Collisions. Wiley, New York (1991)
Baraff, D., Witkin, A.: Partitioned dynamics. Technical Report CMU-RI-TR-97-33, The Robotics Institute at Carnegie Mellon University (1997)
Baraff, D., Witkin, A.: Physically based modeling. SIGGRAPH Course Notes 13 (1998)
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)
Campagna, S., Kobbelt, L., Seidel, H.-P.: Directed edges: a scalable representation for triangle meshes. J. Graph. Tools 3(4), 1–11 (1998)
de Berg, M., van Kreveld, M., Overmars, M., Schwartskopf, O.: Computational Geometry: Algorithms and Applications. Springer, Berlin (1997)
Duff, I.S., Erisman, A.M., Reid, J.K.: Direct Methods for Sparse Matrices. Oxford University Press, London (1986)
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)
Goldstein, H.: Classical Mechanics. Addison-Wesley, Reading (1950)
Hahn, J.K.: Realistic animation of rigid bodies. Comput. Graph. (Proc. SIGGRAPH), 299–308 (1988)
Keller, J.B.: Impact with friction. Trans. ASME J. Appl. Mech. 53, 1–4 (1986)
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)
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)
Mirtich, B.V.: Impulse-based dynamic simulation of rigid body systems. PhD Thesis, University of California, Berkeley (1996)
Mirtich, B.: V-clip: fast and robust polyhedral collision detection. Technical Report TR-97-05, MERL: A Mitsubishi Electric Research Laboratory (1997)
Mirtich, B.: Rigid body contact: collision detection to force computation. Technical Report TR-98-01, MERL: A Mitsubishi Electric Research Laboratory (1998)
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)
O’Rourke, J.: Computational Geometry in C. Cambridge University Press, Cambridge (1998)
Shabana, A.A.: Computational Dynamics. Wiley, New York (2010)
Skiena, S.: The Algorithm Design Manual. Springer, Berlin (1997)
Thürmer, G., Wüthrich, C.A.: Computing vertex normals from polygonal facets. J. Graph. Tools 3(1), 43–46 (1998)
van den Bergen, G.: A fast robust GJK implementation for collision detection of convex bodies. J. Graph. Tools 4(2), 7–25 (1999)
Author information
Authors and Affiliations
Rights 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)