background image

1

05/04/21   15:55

 

 

Graphics II 91.547

Animation 2

Articulated Figures & 

Deformation

Session 7

background image

2

05/04/21   15:55

 

 

Animating Articulated Structures

0

Articulated structure

Figure that consists of a series of rigid links 

connected at joints.

Joints may be:

=Revolute (or rotary): only angles can vary
=Prismatic: sliding joint where length of link can 

vary

0

Kinematics

Specification or study of motion independent of the 

underlying forces that produce the motion.  It 

includes all geometrical and time related properties 

of the motion

0

Degrees of freedom (DOF)

Number of independent variables necessary to 

specify the state of the structure

background image

3

05/04/21   15:55

 

 

Animating Articulated Structures

0

State vector

Vector of all possible configurations of an 

articulated structure.  

A set of independent parameters defining the 

positions and orientations, and rotations of all 

joints constituting the figure forms a basis of 

the state space.  

The dimension of the state space = DOF of 

structure 

0

End effector

Free end of the chain of links

 

( , ,..., )

1

2

N

background image

4

05/04/21   15:55

 

 

Forward vs. Inverse Kinematics

Forward Kinematics:

 ( )

The motion of all 

joints

 is specified explicitly by the 

animator.  The motion of the end effector is the 
accumulation of all motions that lead to the end effector.

Inverse Kinematics:

 

f

1

( )

X

The animator defines the position of end effectors only.  
Inverse kinematics solves for the position and the orientation
of all joints in the link hierarchy that lead to the end effector.

background image

5

05/04/21   15:55

 

 

A Simple 2-Link Articulated Structure

X( , )

x y

1

2

l

1

l

2

( cos

cos(

), sin

sin(

))

cos

( sin )

(

cos )

( sin )

(

cos )

l

l

l

l

x

y

l

l

l l

l

x

l

l

y

l

y

l

l

x

1

1

22

1

2

1

1

2

1

2

2

1

2

2

1

2

2

2

1 2

1

2

2

1

2

2

2

2

1

2

2

2

Forward:

Inverse:

background image

6

05/04/21   15:55

 

 

A Simple 2-Link Articulated 

Structure:

Two Solutions

X( , )

x y

1

2

l

1

l

2

background image

7

05/04/21   15:55

 

 

Representing Articulated Figures:

Denavit-Hartenberg (DH) Notation




a

s

z

x

z

z

x

d

x

x

z

x

x

z

i

i

i

i

i

i

i

i

i

i

i

i

i

i

 is the distance from   to   measured along   (length of the link)

 is the angle between   and   measured about   (twist of the link)

 is the distance between the 

 and   axes, measured along   (distance between links)

 is the angle between 

 and   measured about 

i

i

1

1

1

1

background image

8

05/04/21   15:55

 

 

Representing Articulated Figures:

Denavit-Hartenberg (DH) Notation

Rotation   of angle   about the 

axis aligning the 

 axis with the   axis

R

z

x

x

z

i

i

i

i

1

1

cos

sin

sin

cos

i

i

i

i

0 0
0 0

0

0

1 0

0

0

0 1

Translation   along the   axis of a distance 

 to make the x - axes coincident

T

z

d

zd

i

i

 1

1 0 0 0
0 1 0 0
0 0 1
0 0 0 1

d

i

Translation   along the   axes of a distance

 making the two origins coincident

T

x

a

xi

i

i 1

1 0 0
0 1 0

0

0 0 1

0

0 0 0

1

1

a

i

background image

9

05/04/21   15:55

 

 

Representing Articulated Figures:

Denavit-Hartenberg (DH) Notation

Rotation 

 of an angle 

 about   finally

to make the coordinate frames coincident

i-1

R

x

x

i

1

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

cos

sin

sin

cos

i

i

i

i

Composing these four transformation into
a single transformation from frame   to  :

i

i-1

(

)

cos

sin

sin cos

cos cos

sin

sin

sin sin

cos sin

cos

cos

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

i

d

d

1

1

1

1

1

1

1

1

1

1

0

0

0

0

1

T

background image

10

05/04/21   15:55

 

 

Representing Articulated Figures:

Denavit-Hartenberg (DH) Notation

All frame-to-frame transformations can be concatenated to
form a single transformation that links frame 0 to frame N:

0

0

1

1

2

2

3

1

T

T T T

T

N

N

N

 . . . 

(

)

background image

11

05/04/21   15:55

 

 

The Jacobian

Given a function:

where   is of dimension   and   is of dimension  ,
the Jacobian   is the 

 matrix of partial derivatives:

Therefore:
d

Dividing by incremental time element gives:

ij

X

X

J

J

X J

X J

f

n

m

n m

f

d

i

j

( )

( )

( )



 

 

background image

12

05/04/21   15:55

 

 

The Jacobian:

Why is it Useful for Inverse 

Kinematics?

The inverse kinematics problem is stated:

 

f

1

( )

X

For complex articulated figures, this is too complex to solve
for 
analytically.  The problem can be solved incrementally by

localizing about the current state vector and inverting the Jacobian
to give:

d

d

 

J

X

1

background image

13

05/04/21   15:55

 

 

The Jacobian:

Why is it Useful for Inverse 

Kinematics?

X

dX

X

X

 d

X

goal

goal

 d

d

d

J

X

1

background image

14

05/04/21   15:55

 

 

The Jacobian:

How do you Construct it?

V

b

b

b

b

b

b

b

b

b

a

a

a

a

a

a

a

a

a

n

n

x

y

z

xi

yi

zi

x

y

z

x

y

z

xi

yi

zi

x

y

z

x

y

z

xi

yi

zi

x

y

z

n

n

n

n

n

n

n

n

n

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1



 



...

...

...

...

...

...



background image

15

05/04/21   15:55

 

 

The Jacobian:

How do you Construct it?

a a a

b

a

P P

b

a

P P

b

a

P P

P

xi

yi

zi

xi

n

i

yi

n

i

zi

n

i

i

x y

z

i

i

, ,

(

)

(

)

(

)

 are the  , , and   axes of frame [ ] transformed into frame [ ]

where   is the origin of frame [ ]

xi

yi

zi

0

background image

16

05/04/21   15:55

 

 

Application of Inverse Kinematics to 

a Skeleton

Root node

Base node

Open node

End node

background image

17

05/04/21   15:55

 

 

Simple Legged Animation

Using Forward Kinematics

Hip

Upper
Leg

Knee

Lower Leg

Ankle

Foot

Upper leg (hip rotate)

Hip rotate

Lower leg (knee rotate)

Hip rotate + knee rotate

Foot (ankle rotate)

background image

18

05/04/21   15:55

 

 

Simple Legged Animation

Hip Rotation Script

background image

19

05/04/21   15:55

 

 

Simple Legged Animation

Knee Rotation Script

background image

20

05/04/21   15:55

 

 

Simple Legged Animation

Ankle Rotation Script

background image

21

05/04/21   15:55

 

 

Simple Legged Animation

Resulting Animation

background image

22

05/04/21   15:55

 

 

Soft Object Animation

The Basic Approaches

0

Deforming the polygonal representation

Move the vertices defining the polygons as a 

function of time

Connectivity among vertices must be taken into 

account

Magnitude of deformation must be relatively 

small (or “simple”) with respect to vertex spacing

Can cause polygon “aliasing” problems

=Most noticeable when planar or near planar 

regions, represented with sparse vertices, are 

deformed

0

Deforming the parametric representation

Accomplished by deforming the control points
Object still “well defined”

background image

23

05/04/21   15:55

 

 

Nonlinear Global Deformation

Barr 1984

Barr’s notation:

( , , )

( , , )

X Y Z

F x y z

Deformed vertex

Undeformed vertex

Taper along z axis:

( , , ) ( , , )

( )

X Y Z

rx ry z

r

f z

 

where 

Axial twisting:  

( , , ) ( cos

sin , sin

cos , )

( )

X Y Z

x

y

x

y

z

f z

where  

background image

24

05/04/21   15:55

 

 

Nonlinear Global Deformation

An Example

Undeformed

Taper

Twist

Bend

background image

25

05/04/21   15:55

 

 

Free Form Deformation

(Sederburg 1986)

A tricubic Bezier hyperpatch is defined:  

Q u v w

p B u B v B w

ijk i

j

k

k

j

i

( , , )

( ) ( ) ( )

0

3

0

3

0

3

An 

FFD block

 is a rectangular lattice of l x m x n Bezier hyperpatches,

consisting of an array of                                                   control points. 

(

) (

) (

)

3 1

3

1

3

1

l

m

n

 

 

S

T

U

X

0

X s t u

X

sS tT uU

s t u

( , , )

, ,

[ , ]

0

0 1

background image

26

05/04/21   15:55

 

 

Free Form Deformation

The Algorithm

1.  Determine the positions of the vertices in 

lattice space

.

2.  Deform the FFD block.  This is accomplished by moving the
     control points.  The control points are initially located at:

p

X

i

l

S

j

m

T

k

n

U

i

l

j

m

k

n

ijk

 






 






 






 

 

 

0

3

3

3

0

3

0

3

0

3

,

,

,

3.  Determine the deformed position of the vertices
       -  Given the lattice space coordinates of the vertices, find the
           relevant hyperpatch
       -  convert 
(s,t,u) to the local parameter coordinate of the hyperpatch,
           
(u,v,w)
        
-  Evaluate the position using:

Q u v w

p B u B v B w

ijk i

j

k

k

j

i

( , , )

( ) ( ) ( )

0

3

0

3

0

3

background image

27

05/04/21   15:55

 

 

Animating the Deformation:

Factor Curves

0

Extension of the concept of weighted 

transformation introduced by Barr

0

Animator breaks down the problem of animating a 

deformation into two components:

A set of transformations that can accomplish the 

range of deformation required along with a 

parameterization of these transformations

A set of factor curves in both space and time 

that modify the parameters of the deforming 

transformation according to where and when 

they are applied

background image

28

05/04/21   15:55

 

 

Factor Curves:

An Example

 

0

f w f t

w

t

( ) ( )

background image

29

05/04/21   15:55

 

 

Factor Curves:

An Example: the Animated Spoon


Document Outline