1
05/04/21 15:55
Graphics II 91.547
Animation 2
Articulated Figures &
Deformation
Session 7
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
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
4
05/04/21 15:55
Forward vs. Inverse Kinematics
Forward Kinematics:
X f ( )
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.
5
05/04/21 15:55
A Simple 2-Link Articulated Structure
X( , )
x y
1
2
l
1
l
2
X
( 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:
6
05/04/21 15:55
A Simple 2-Link Articulated
Structure:
Two Solutions
X( , )
x y
1
2
l
1
l
2
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
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
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
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
. . .
(
)
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
( )
( )
( )
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
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
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
...
...
...
...
...
...
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
16
05/04/21 15:55
Application of Inverse Kinematics to
a Skeleton
Root node
Base node
Open node
End node
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)
18
05/04/21 15:55
Simple Legged Animation
Hip Rotation Script
19
05/04/21 15:55
Simple Legged Animation
Knee Rotation Script
20
05/04/21 15:55
Simple Legged Animation
Ankle Rotation Script
21
05/04/21 15:55
Simple Legged Animation
Resulting Animation
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”
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
24
05/04/21 15:55
Nonlinear Global Deformation
An Example
Undeformed
Taper
Twist
Bend
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
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
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
28
05/04/21 15:55
Factor Curves:
An Example
0
f w f t
w
t
( ) ( )
29
05/04/21 15:55
Factor Curves:
An Example: the Animated Spoon