Graphics Reference
In-Depth Information
where R i is the rotation matrix specifying the orientation of the j th coordinate frame
with respect to the i th coordinate frame, and O j
i gives the coordinates of the j th joint
in the i th coordinate frame.
A key issue for working with motion capture data is the parameterization of the
rotation matrix at each joint. Using three Euler angles (i.e., rotations about the x , y ,
and z axes) is a poor choice since they are difficult to naturally interpolate and suffer
from “gimbal lock,” a singularity (loss of a degree of freedom) that results when one
of the angles is near a critical value. Instead, pose is typically parameterized using
quaternions or twists .
A quaternion represents a rotation with a unit vector in
4 , and is closely related
to the axis-angle parameterization discussed in Section 22 . In particular, the unit
quaternion given by
R
cos 2 , v 1 sin 2 , v 2 sin 2 , v 3 sin 2
q
=
(7.9)
3 . We convert between quater-
nions and rotation matrices using the Rodrigues formula in Equation ( 6.58 ) and the
equations in Problem 6.21 . In a kinematic model, the rotation axis for each joint is
defined with respect to a local coordinate system, as discussed earlier. Quaternions
were introduced to the animation community by Shoemake [ 444 ], though they had
been used in mechanical engineering (e.g., spacecraft design) for some time.
The twist parameterization combines a rotation and translation (i.e., a rigid
motion) into a vector
represents a rotation of
θ
around the unit vector v in
R
6 . It uses the key observation that any rigid motion can be
expressed as a rotation around some axis followedby a translation along the same axis
(known as Chasles' theorem [ 342 ]). This so-called screw transformation is illustrated
in Figure 7.10 .
ξ
in
R
s
w
. The
3 , i.e.,
We break the twist vector into two vectors s and w in
R
ξ =
first vector s encodes the direction of the screw axis (given by a unit vector v in
R
3 ) and the amount of rotation around it (given by a scalar
ψ
) using the axis-angle
parameterization. That is, s
v . The vector w encodes the origin in space of the
screw axis, and the distance along the axis that must be traveled to accomplish the
translation. For a translation in world coordinates t
= ψ
3 , the vector w is computed as
∈ R
w
= ρ ×
v
(7.10)
ρ v
where
ρ
is a point on the axis satisfying
=
0, which can be computed as described
in Problem 7.5 .
Thematrices needed for the forwardkinematics equation ( 7.8 ) canbe conveniently
represented in terms of the twist vector
ξ i , namely
R i 1
i
exp
O i 1
i
ψ
[
v i
] ×
ψ
i w i
i
=
(7.11)
0
0
1
0
exp
v i w i ψ i v i
i [
v i ] × )(
I 3 × 3
exp
i [
v i ] × ))(
v i ×
w i ) +
=
(7.12)
0
1
Search WWH ::




Custom Search