Chapter 5 Presentation and Analysis of My Practice
5.2 Artist Biography and Statement
The dynamics parameters used to compute object motions are the externally applied (xy) force vector ~Fext, the static coecient of friction, and the radius of gyration
13In some cases there may be a number of facets that coincide, in which case more elaborate steps must be taken to choose the proper one facet. These cases, which 13] refers to asmc0-edges, result from coincidental alignments between geometric features on the two polygons.
184
Chapter 5: Implementation of the moving object. With these parameters we can compute the reaction forces and static force equilibrium conditions for any point in a contact state. To combine the units of force and torque consistently, we must rst scale the torque components of the reaction forces with as:Fz = :
Similarly, we scale the components of the facet vectors with:14 u^z =u:
where ^u was introduced in Section 5.3.1.
Computing an incremental motion step involves the following basic steps:
1. Compute the conguration space friction cone at the current position in the contact state representing the set of possible reaction forces.
2. Use the friction cone to compute the reaction force for the given applied force.
3. Compute the instantaneous direction of motion using the net resultant force (if any).
4. Determine the appropriate integration step size and compute the incremental motion.
The detailed implementation of these four steps for computing motions in a free, facet, edge, and vertex contact state follows.
Friction Cone Construction
To determine the set of possible reaction forces we construct the (xyz) cong-uration space friction cone for each contacting facet. The friction cone for a single facet is shown in Figure 5.10, where~n is the surface normal of the facet at the contact point, and ~Fr1 ~Fr2 are the two extremal reaction forces that together span the range of reaction possible forces. The equations for ~Fr1 ~Fr2 are:
Fr1x = (nxcos + nysin) (5.26) Fr1y = (;nxsin + nycos) (5.27)
Fr1z = (nzcos + sin) (5.28)
Fr2x = (nxcos;nysin) (5.29) Fr2y = (nxsin + nycos) (5.30)
Fr2z = (nzcos; sin) (5.31)
14To ensure that the facet vectors remain unit vectors, we normalize themafterintroducing the scaling factor.
5.4: Computing Motions
185
where
sin =
p1 +2 (5.32)
cos = 1
p1 +2 (5.33)
= 1
q(n2x+n2y) (5.34)
=
v
u
u
t rc
!
2(1;n2z);n2z (5.35) and where is the coecient of friction, (nxnynz) are the normalized components of the scaled facet normal, is the radius of gyration, and rc is the distance from the
cg
of the moving polygon to the point of contact. For a type B facetrc is a constant measured from thecg
to the vertex of the moving polygon that is in contact with edge of the stationary polygon, and is given by:rc = ~RAj (5:36)
wherej is theturnindex of the facet. For a type A facet the value ofrc is a function of the facet parameter p and is given by:
rc = ~RAi;1+p~EAi (5:37)
where i is themove index of the facet.
For contact states with multiple contact facets it will be necessary to combine the friction cones for the individual facets to form the compound friction cone. For an edge contact state (two facets) we form the compound friction cone from the convex hull of the extremal friction cone reaction forces ~Fr1 and ~Fr2 for the two facets. Specically, we order the four extremal force vectors to form the edges of a convex polyhedral cone as shown in Figure 5.11. We do not form the compound friction cone for a vertex contact because, by denition, a vertex has zero degrees of freedom and hence no sliding motion is possible. We do, however, check for possible motions along the three edges forming the vertex to see if a motion out of the vertex is possible, as described in Section 5.4.2.2. Finally, for a free contact state (no facets) there can be no reaction forces and hence no friction cone.
Computation of Reaction Forces
After constructing the friction cone for a contact state, we use it to compute the reaction force due to the applied force. The reaction force for a single facet contact is determined by projecting the negated applied (xy) force onto the (xyfz = g) plane containing the conguration space friction cone. If the projected force vector is between the two extremal friction cone reaction force vectors then the reaction
186
Chapter 5: ImplementationX Y
θ X Y
n
csF
r1F
r2r
cFigure 5.10: The (xyfz = g) conguration space friction cone for a single facet contact.
Fx Fy
Fz = τθ / ρ
Fr1b
Fr1a Fr2b
Fr2a
Fx Fy
Fz = τθ / ρ
Fr1b Fr1a
Fr2b Fr2a
Figure 5.11: The compound conguration space friction cone for an edge contact between two facets.
5.4: Computing Motions
187
Fx Fy
Fz = τθ / ρ
Fr1
Fr2
Fnet - Fext
Freact
Figure 5.12: Computing the reaction force with the single facet friction cone.
force is the projected force vector. If the projected force vector is not between the two extremal force vectors, then the reaction force is equivalent to the projection of the projected force onto the closer of the two extremal force vectors. This process is illustrated in Figure 5.12.
To determine the reaction force for an edge contact, we rst check to see if the applied force is pointing into the compound cone by taking the dot-product of the force with the outward pointing normals of each of the four bounding planes of the convex cone. If all four dot-products are positive, the applied force points into the cone interior and the reaction force is exactly the negated applied force. If one or more of the dot-products is negative, then the applied force lies outside of the compound polyhedral cone, an we must project the negative applied force onto the surface of the cone. Specically, we project the negated applied force onto each the surfaces of the cone with which the dot-product was negative, and proceed in a manner similar to that for the single facet friction cone.
Computation of Instantaneous Motion Direction
To compute the force equilibrium state at the contact point we compute the net force by taking the dierence between the applied and reaction forces. A non-zero net force vector determines the instantaneous direction of motion from the current contact point. For a free contact state there is no reaction force so the net force is simply the applied force. For a single facet contact state a non-zero net force will be tangent to the facet surface, and the non-zero net force for an edge contact will be
188
Chapter 5: Implementation parallel to the edge vector formed by the cross-product of the two facet normals at the contact point.Computation of Integration Step Size and Incremental Motion
Following our assumption that quasi-static eects dominate the dynamics of ob-ject motion, we may write the following equations of motion:
Fx = m'x lim
t!0m (x(t2 (5.38)
Fy = m'y lim
t!0m (y(t2 (5.39)
Fz = = I
' lim
t!0I
(
(t2 (5.40)
where (FxFyFz) are the components of the net force at the point of contact, and (t is a time step that will chosen to scale the magnitude of the incremental motion appropriately.15
A motion in a free contact state will follow a straight line parallel to the applied force in the absence of any externally applied torques, which we have assumed in our model. An incremental motion in a single facet contact state will be in the direction of the net force, but should also remain on the surface of the facet in the course of the motion even though the surface may be curved. To ensure this, and at the same time avoid introducing linearization errors, we resolve the net force into components expressed in the ~u and ~v tangent vectors of the facet surface, and integrate the incremental motion in terms of the p and facet parameters.
To distinguish between displacements in translation and rotation, we denote the combined displacement inx and y as xy, which can be expressed in terms of the facet parameterp as xy = lp where l is the length of the polygon edge forming the contact facet. Substitutingm = I into the above equations we can write the rotational and translational displacements in terms of the facet parameters as:
(p = 1l
(t2 m
!
Fxy (5.41)
( = 1
(t2 m
!
Fz: (5.42)
To compute the instantaneous direction of motion we may normalize (p and (
15Due to the quasi-static assumption, the magnitude of the integration step may not be deter-mined directly from the equations of motion, as would be the case for standard Euler or Runge-Kutta numerical integration techniques. Rather, the integration step size will be derived from a consideration of the errors produced by straight line approximations to motions along the surfaces of curved contact facets. Hence, integration step size, like the friction cone, is computed directly from contact facet geometry.
5.4: Computing Motions
189
with respect to a third variable (T using
(T2 = (p2 + (2 (5.43)
(T = q(p2+ (2: (5.44)
The normalized displacements then become
(T =(p (p
p(p2 + (2 (5.45)
(T =( (
p(p2 + (2: (5.46)
Equations 5.45 and 5.46 allow us to express the instantaneous direction of motion on a facet surface in terms of p and . Because the dynamics are quasi-static, the magnitude of the incremental motion step is somewhat arbitrary. Since we are integrating linearly in the parameter space of the facet surface, the deviation of the motion from a straight line in (xyfz = g) conguration space will depend on the degree of curvature of the surface along the direction of motion. Hence, to bound the maximum deviation from a straight line we select the integration step size based on the curvature metric given by:
(Tmax=
s2Emax
n ;Emax2 (5:47)
where Emax is the maximum allowable error in (xyfz = g), and n is the cur-vature of the facet along the motion path, which is derived for type A and type B facets in Appendix B. Using this metric, we compute the motion step for a facet in p and as:
(Pmax =
(p
p(p2+ (2
!
(Tmax (5.48)
(max =
(
p(p2+ (2
!
(Tmax (5.49)
and compute the new (xy) position in conguration space using the facet equa-tions.
An incremental motion in an edge contact state will be in the direction of the net force along the edge vector, which like the single facet contact state may be curved.
Rather than attempting to derive a parameter to describe motion along the curve forming the edge, we will simply integrate the motion along the edge vector expressed in terms of the ~u and ~v tangent vectors of both facets. After integrating the two incremental facet motions individually, we choose the smaller of the two in terms