Title: General rotation
1General rotation
2Objectives
- Rotations in general - define more
- flexible rotation specifications
3Representation of orientation
- Homogeneous coordinates (review)
- 4X4 matrix used to represent translation,
scaling, and rotation - a point in the space is represented as
- Treat all transformations the same so that they
can be easily combined
4Translation
translation matrix
new point
old point
5Scaling
scaling matrix
new point
old point
6Rotation
X axis
Y axis
Z axis
7Rotation about an arbitrary axis
- Rotating about an axis by theta degrees
- Rotate about x to bring axis to xz plane
- Rotate about y to align axis with z -axis
- Rotate theta degrees about z
- Unrotate about y, unrotate about x
- Can you determine the values of Rx and Ry?
M Rx-1 Ry-1 Rz(q) Ry Rx
8Composite Transformations
- Rotating about a fixed point
- - basic rotation alone will rotate about origin
- but we want
9Composite Transformations
- Rotating about a fixed point
- Move fixed point (px,py,pz) to origin
- Rotate by desired amount
- Move fixed point back to original position
M T(px, py, pz) Rz(q) T(-px, -py, -pz)
10Composite transformations
A series of transformations on an object can be
applied as a series of matrix multiplications
position in the global coordinate
position in the local coordinate
11Interpolation
- In order to move things, we need both
translation and rotation - Interpolating the translation is easy, but what
about rotations?
12Interpolation of orientation
- How about interpolating each entry of the
rotation matrix? - The interpolated matrix might no longer be
orthonormal, leading to nonsense for the
in-between rotations
13Interpolation of orientation
Example interpolate linearly from a positive 90
degree rotation about y axis to a negative 90
degree rotation about y
Linearly interpolate each component and halfway
between, you get this...
14Motivation
- Finding the most natural and compact way to
present rotation and orientations - Orientation interpolation which result in a
natural motion - A closed mathematical form that deals with
rotation and orientations (expansion for the
complex numbers)
15Representing Rotation
- Rotation matrix
- Euler angle
- Axis angle
- Quaternion
- Exponential map
16Joints and rotations
Rotational DOFs are widely used in character
animation
Each joint can have up to 3 DOFs
1 DOF knee
2 DOF wrist
3 DOF arm
17Euler Angle Representation
- Angles used to rotate about cardinal axes
- Orientations are specified by a set of 3 ordered
parameters that represent 3 ordered rotations
about axes, ie. first about x, then y, then z - Many possible orderings, dont have to use all 3
axes, but cant do the same axis back to back
18Euler Angles
- A general rotation is a combination of three
elementary rotations around the x-axis (x-roll)
, around the y-axis (y-pitch) and around the
z-axis (z-yaw).
19Euler Angles and Rotation Matrices
20Gimbal Lock
- A 90 degree rotation about the y axis essentially
makes the first axis of rotation align with the
third. - Incremental changes in x,z produce the same
results youve lost a degree of freedom
21Gimbal Lock
- Phenomenon of two rotational axis of an object
pointing in the same direction. - Result Lose a degree of freedom (DOF)
22Gimbal Lock
A Gimbal is a hardware implementation of Euler
angles used for mounting gyroscopes or expensive
globes
Gimbal lock is a basic problem with representing
3D rotation using Euler angles or fixed angles
23Euler angles interpolation
R(0,0,0),,R(?t,0,0),,R(?,0,0) t?0,1
R(0,0,0),,R(0,?t, ?t),,R(0,?, ?)
24Euler Angles Interpolation ?Unnatural movement !
25Representing Rotation
- Rotation matrix
- Euler angle
- Axis angle
- Quaternion
- Exponential map
26Axis angle
- Represent orientation as a vector and a scalar
- vector is the axis to rotate about
- scalar is the angle to rotate by
27Angle and Axis
- Any orientation can be represented by a 4-tuple
- angle, vector(x,y,z) where the angle is the
amount to rotate by and the vector is the axis to
rotate about - Can interpolate the angle and axis separately
- No gimbal lock problems!
- But, cant efficiently compose rotationsmust
convert to matrices first!
28Representing Rotation
- Rotation matrix
- Euler angle
- Axis angle
- Quaternion
- Exponential map
29Quaternion
4 tuple of real numbers
scalar
vector
Same information as axis angles but in a
different form
30Quaternions
- Extend the concept of rotation in 3D to 4D.
- Avoids the problem of "gimbal-lock" and allows
for the implementation of smooth and continuous
rotation. - In effect, they may be considered to add a
additional rotation angle to spherical
coordinates ie. Longitude, Latitude and Rotation
angles
31Quaternions Definition
- Extension of complex numbers
- 4-tuple of real numbers
- s,x,y,z or s,v
- s is a scalar
- v is a vector
- Same information as axis/angle but in a different
form - Can be viewed as an original orientation or a
rotation to apply to an object
32Quaternion Math
Unit quaternion
Multiplication
33Quaternion Rotation
proof see Quaternions by Shoemaker
34Matrix form
35Quaternion interpolation
1-angle rotation can be represented by a unit
circle
- Interpolation means moving on (n1)-D sphere
- Now imagine a 4-D sphere for 3-angle rotation
36Quaternion interpolation
- Moving between two points on the 4D unit sphere
- a unit quaternion at each step - another point on
the 4D unit sphere - move with constant angular velocity along the
great circle between the two points on the 4D
unit sphere
37Quaternion interpolation
Direct linear interpolation does not work
Linearly interpolated intermediate points are not
uniformly spaced when projected onto the circle
Spherical linear interpolation (SLERP)
Normalize to regain unit quaternion
38Rotations in Reality
- Its easiest to express rotations in Euler angles
or Axis/angle - We can convert to/from any of these
representations - Choose the best representation for the task
- inputEuler angles
- interpolation quaternions
- composing rotations quaternions, orientation
matrix
39- Rotation matrix
- Fixed angle and Euler angle
- Axis angle
- Quaternion
- Exponential map
40Exponential map
- Represent orientation as a vector
- direction of the vector is the axis to rotate
about - magnitude of the vector is the angle to rotate by
- Zero vector represents the identity rotation
41Properties of exponential map
- No need to re-normalize the parameters
- Fewer DOFs
- Good interpolation behavior
- Singularities exist but can be avoided
42Choose a representation
- Choose the best representation for the task
- input
- joint limits
- interpolation
- compositing
- rendering
Euler angles
Euler angles, quaternion (harder)
quaternion or exponential map
quaternions or orientation matrix
orientation matrix ( quaternion can be
represented as matrix as well)