rigid body simulation
play

Rigid body simulation Once we consider an object with spacial - PowerPoint PPT Presentation

Rigid body simulation Rigid body simulation Once we consider an object with spacial extent, particle system simulation is no longer sufficient Problems Problems Unconstrained system rotational motion torques and angular momentum


  1. Rigid body simulation Rigid body simulation Once we consider an object with spacial extent, particle system simulation is no longer sufficient Problems Problems Unconstrained system rotational motion torques and angular momentum Performance is important! Constrained system collision detection contact points and forces

  2. Problems Particle simulation � x ( t ) � Y ( t ) = Position in phase space v ( t ) � � v ( t ) ˙ Y ( t ) = Velocity in phase space f ( t ) /m Control is everything! Rigid body concepts Position and orientation Translation of the body   x Translation Rotation x ( t ) = y   Position Orientation z Angular velocity Linear velocity Mass tensor Inertia tensor Rotation of the body Linear momentum Angular momentum   r xx r yx r zx Force torque R ( t ) = r xy r yy r zy   r xz r yz r zz and are called spacial variables of a rigid body x ( t ) R ( t )

  3. Body space Position and orientation Body space Body space World space y 0 A fixed and unchanged space where the shape of a rigid body is r 0i R ( t ) y 0 y 0 defined r 0i r 0i z 0 x 0 The geometric center of the rigid y x 0 body lies at the origin of the x 0 x ( t ) body space z 0 z 0 x z Position and orientation Position and orientation Given a geometric description of the World space Let’s assume the rigid body has uniform density, what is body in body space, we can use x ( t ) the physical meaning of x ( t )? and R ( t ) to transform the body space y 0 description into world space r 0i R ( t ) How do we compute the world coordinate of an arbitrary point z 0 x 0 r 0i on the body? y x ( t ) What is the physical meaning of R ( t )? r i ( t ) = x ( t ) + R ( t ) r 0 i x z

  4. Position and Orientation Position and orientation Consider the x-axis in body space, (1, 0, 0), what is the direction of this vector in world space at time t ? So x ( t ) and R ( t ) define the position and the     1 r xx orientation of the body a time t  = R ( t ) 0 r xy    0 r xz Next we need to define how the position and orientation change over time which is the first column of R ( t ) R ( t ) represents the directions of x, y, and z axes of the rigid body in world space at time t Linear velocity Angular velocity x ( t ) Since is the position of the center of mass in world ˙ space, is the velocity of the center of mass in world x ( t ) space Imagine that we freeze the position of the COM in space, then any movement is due to the body spinning about some axis that passes through the v ( t ) = ˙ x ( t ) COM Otherwise, the COM would itself be moving

  5. Angular velocity Angular velocity We describe that spin as a vector ω ( t ) How are and related? R ( t ) ω ( t ) Direction of ω ( t ) Hint: Consider a vector at time t specified in world space, how r ( t ) Magnitude of | ω ( t ) | do we represent in terms of r ( t ) ˙ ω ( t ) ω ( t ) Linear velocity and position are related by v ( t ) = d | ˙ dt x ( t ) r ( t ) | = | b || ω ( t ) | = | ω ( t ) × b | r ( t )? ˙ r ( t ) = ω ( t ) × b = ω ( t ) × b + ω ( t ) × a ˙ b How are and related? a R ( t ) ω ( t ) r ( t ) r ( t ) = ω ( t ) × r ( t ) ˙ x ( t ) Angular velocity Angular velocity Given the physical meaning of , what does each R ( t )         r xx r yx r zx ˙ column of mean? R ( t ) ˙ R ( t ) =  ω ( t ) × ω ( t ) × ω ( t ) × r xy r yy r zy        r xz r yz r zz At time t , the direction of x-axis of the rigid body in world space is the first column of R ( t )   r xx This is the relation between angular velocity and the r xy   orientation, but it is too cumbersome r xz At time t , what is the derivative of the first column of ? R ( t ) (using the cross product rule we just discovered) We can use a trick to simply this expression

  6. Angular velocity Angular velocity Consider two 3 by 1 vectors: a and b , the cross product of                 r xx r xx r yx r yx r zx r zx ˙ ˙ them is R ( t ) = R ( t ) =  ω ( t ) ×  ω ( t ) ∗ ω ( t ) ∗ ω ( t ) × ω ( t ) ∗ ω ( t ) × r xy r xy r yy r yy r zy r zy                 a y b z − b y a z r xz r xz r yz r yz r zz r zz a × b = − a x b z + b x a z   a x b y − b x a y = ω ( t ) ∗ R ( t ) Given a , lets define a * to be the matrix   0 − a z a y 0 a z − a x Vector relation:   r ( t ) = ω ( t ) × r ( t ) ˙ 0 − a y a x ˙ Matrix relation: R = ω ( t ) ∗ R ( t )     0 − a z a y b x  = a × b then a ∗ b = a z − a x b y 0    − a y a x 0 b z Perspective of particles Velocity of a particle Imagine a rigid body is composed of a large number r ( t ) = d ˙ dt r ( t ) = ω ∗ R ( t ) r 0 i + v ( t ) of small particles = ω ∗ ( R ( t ) r 0 i + x ( t ) − x ( t )) + v ( t ) the particles are indexed from 1 to N = ω ∗ ( r i ( t ) − x ( t )) + v ( t ) each particle has a constant location r 0i in body space the location of i th particle in world space at time t is r i ( t ) = ω × ( r i ( t ) − x ( t )) + v ( t ) ˙ r i ( t ) = x ( t ) + R ( t ) r 0 i angular component linear component

  7. Velocity of a particle Mass The mass of the i th particle is m i ˙ r i ( t ) = ω × ( r i ( t ) − x ( t )) + v ( t ) N � Mass y 0 M = m i ω ( t ) i =1 ω ( t ) × ( r i ( t ) − x ( t )) r i ( t ) � m i r i ( t ) v ( t ) x ( t ) Center of mass in world space ˙ r i ( t ) M y x 0 z 0 v ( t ) What about center of mass in body space? x z Center of mass Inertia tensor Inertia tensor describes how the mass of a rigid body is distributed Proof that the center of mass at time t in word space is x ( t ) relative to the center of mass � m i r i ( t ) =   � 2 � 2 m i ( r iy + r iz ) − m i r � ix r � − m i r � ix r � M iy iz � � 2 � 2 I = − m i r � iy r � ( r ix + r iz ) − m i r � iy r �   ix iz   � 2 � 2 − m i r � iz r � − m i r � iz r � m i ( r iy + r iz ) i ix iy r � i = r i ( t ) − x ( t ) I ( t ) depends on the orientation of a body, but not the translation For an actual implementation, we replace the finite sum with = x ( t ) the integrals over a body’s volume in world space

  8. Inertia tensor Force and tor que By using body-space coordinates we can cheaply compute the inertia F i ( t ) denotes the total force from external forces acting tensor for any orientation by precomputing integrals in body space on the i th particle at time t    m i r � 2 m i r � ix r � m i r � ix r �  1 0 0 y 0 ix iy iz τ ( t ) = ( r i ( t ) − x ( t )) × F i ( t ) m i r � T r � � m i r � 2 I ( t ) = 0 1 0 m i r � iy r � m i r � iy r �  − t   ix iy iz  0 0 1 m i r � iz r � m i r � iz r � m i r � 2 � ix iy iz F ( t ) = F i ( t ) r i ( t ) x ( t ) i � F i ( t ) m i ( r � T i r � i ) 1 − r � i r � T I ( t ) = i ) � m i (( R ( t ) r 0 i ) T ( R ( t ) r 0 i ) 1 − ( R ( t ) r 0 i )( R ( t ) r 0 i ) T ) τ ( t ) = ( r i ( t ) − x ( t )) × F i ( t ) � = x 0 z 0 i 0 i r 0 i ) R ( t ) T 1 − R ( t ) r 0 i r T 0 i R ( t ) T ) � m i ( R ( t )( r T = �� � y m i (( r T 0 i r 0 i ) 1 − r 0 i r T R ( t ) T = R ( t ) 0 i ) x z I ( t ) = R ( t ) I body R ( t ) T � m i (( r T 0 i r 0 i ) 1 − r 0 i r T I body = 0 i ) i Force and tor que Linear momentum � P ( t ) = m i ˙ r i ( t ) Torque differs from force in that the torque on a particle i depends on the location of the particle relative to the center of � � = m i v ( t ) + ω ( t ) × m i ( r i ( t ) − x ( t )) mass i i F ( t ) conveys no information about where the various forces = M v ( t ) acted on the body, while � ( t ) contains the information about the distribution of the forces over the body Total linear moment of the rigid body is the same as if the body was simply a particle with mass M and velocity v ( t )

Recommend


More recommend