3d orientation
Download
1 / 65

3D orientation - PowerPoint PPT Presentation


  • 66 Views
  • Uploaded on

3D orientation. Rotation matrix Fixed angle and Euler angle Axis angle Quaternion Exponential map. 3 translational DOFs. 48 rotational DOFs. Joints and rotations. Rotational DOFs are widely used in character animation. Each joint can have up to 3 DOFs. 1 DOF: knee. 2 DOF: wrist.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '3D orientation' - mead


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  • Rotation matrix

  • Fixed angle and Euler angle

  • Axis angle

  • Quaternion

  • Exponential map


Joints and rotations

3 translational DOFs

48 rotational DOFs

Joints 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


Representation of orientation
Representation 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


Translation
Translation

translation

matrix

new point

old point


Scaling
Scaling

new point

scaling matrix

old point


Rotation
Rotation

X axis

Y axis

Z axis


Composite transformations
Composite 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


Interpolation
Interpolation

  • In order to “move things”, we need both translation and rotation

  • Interpolating the translation is easy, but what about rotations?


Motivation
Motivation

  • 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)


Rotation matrix
Rotation Matrix

  • A general rotation can be represented by a single 3x3 matrix

    • Length Preserving (Isometric)

    • Reflection Preserving

    • Orthonormal


Fixed angle representation
Fixed Angle Representation

  • Angles used to rotate about fixed axes

  • Orientations are specified by a set of 3 ordered parameters that represent 3 ordered rotations about fixed axes, ie. first about x, then y, then z

  • Many possible orderings, don’t have to use all 3 axes, but can’t do the same axis back to back


Fixed angle representation1
Fixed Angle Representation

  • A rotation of 10,45, 90 would be written as

    • Rz(90) Ry(45), Rx(10) since we want to first rotate about x, y, z. It would be applied then to the point P…. RzRyRx P

  • Problem occurs when two of the axes of rotation line up on top of each other. This is called “Gimbal Lock”


Gimbal lock
Gimbal 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 – you’ve lost a degree of freedom


Gimbal lock1
Gimbal Lock

  • Phenomenon of two rotational axis of an object pointing in the same direction.

  • Simply put, it means your object won't rotate how you think it ought to rotate.


Interpolation of orientation
Interpolation 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


Interpolation of orientation1
Interpolation 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...


Properties of rotation matrix
Properties of rotation matrix

  • Easily composed?

  • Interpolate?


  • Rotation matrix

  • Fixed angle and Euler angle

  • Axis angle

  • Quaternion

  • Exponential map


Fixed angle
Fixed angle

  • Angles used to rotate about fixed axes

  • Orientations are specified by a set of 3 ordered parameters that represent 3 ordered rotations about fixed axes

  • Many possible orderings


Fixed angle1
Fixed angle

  • A rotation of Rz(90)Ry(60)Rx(30) looks like


Euler angle
Euler angle

  • Same as fixed angles, except now the axes move with the object

  • An Euler angle is a rotation about a single Cartesian axis

  • Create multi-DOF rotations by concatenating Euler angles

    • evaluate each axis independently in a set order


Euler angle vs fixed angle

Z

Y

X

Euler angle vs. fixed angle

  • Rz(90)Ry(60)Rx(30) = Ex(30)Ey(60)Ez(90)

  • Euler angle rotations about moving axes written in reverse order are the same as the fixed axis rotations


Gimbal lock again

z

z

z

3

/2

1

1

y

y

y

1

1

x

x

x

x’

x’

Gimbal Lock (again!)

  • Rotation by 90o causes a loss of a degree of freedom


Gimbal lock2
Gimbal Lock

  • Phenomenon of two rotational axis of an object pointing in the same direction.

  • Simply put, it means your object won't rotate how you think it ought to rotate.


Gimbal lock3
Gimbal 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


Gimbal lock4
Gimbal lock

When two rotational axis of an object point in the same direction, the rotation ends up losing one degree of freedom


Properties of euler angle
Properties of Euler angle

  • Easily composed?

  • Interpolate?

  • How about joint limit?

  • What seems to be the problem?


Euler angles
Euler Angles

  • A general rotation is a combination of three elementary rotations: around the x-axis (x-roll) , around the y-axis (y-roll) and around the z-axis (z-roll).




Euler angles interpolation

y

y

π

x

x

x-roll π

y

y

y

z

z

x

π

x

x

z-roll π

y-roll π

π

z

z

z

Euler 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,, )


Euler angles interpolation unnatural movement
Euler Angles Interpolation Unnatural movement !


  • Rotation matrix

  • Fixed angle and Euler angle

  • Axis angle

  • Quaternion

  • Exponential map


Goal

  • Find a parameterization in which

    • a simple steady rotation exists between two key orientations

    • moves are independent of the choice of the coordinate system


Axis angle
Axis angle

  • Represent orientation as a vector and a scalar

    • vector is the axis to rotate about

    • scalar is the angle to rotate by


Angle and axis
Angle 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, can’t efficiently compose rotations…must convert to matrices first!


Angular displacement
Angular displacement

  • (,n) defines an angular displacement of  about an axis n


Properties of axis angle
Properties of axis angle

  • Can avoid Gimbal lock. Why?

  • Can interpolate the vector and the scalar separately. How?



  • Rotation matrix

  • Fixed angle and Euler angle

  • Axis angle

  • Quaternion

  • Exponential map


Quaternion
Quaternion

4 tuple of real numbers:

scalar

vector

Same information as axis angles but in a different form


Quaternions
Quaternions ?

  • 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

  • A Quaternion is defined using four floating point values |x y z w|. These are calculated from the combination of the three coordinates of the rotation axis and the rotation angle.


How do quaternions relate to 3d animation
How do quaternions relate to 3D animation?

  • Solution to "Gimbal lock"

  • Instead of rotating an object through a series of successive rotations, a quaternion allows the programmer to rotate an object through a single arbitary rotation axis.

  • Because the rotation axis is specifed as a unit direction vector, it may be calculated through vector mathematics or from spherical coordinates ie (longitude/latitude).

  • Quaternions interpolation : smooth and predictable rotation effects.


Quaternion to rotation matrix
Quaternion to Rotation Matrix


Quaternions definition
Quaternions 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



Quaternions properties
Quaternions properties

  • The conjugate and magnitude are similar to complex numbers

  • Quaternions are non commutative

q1 = (s1,v1) q2 = (s2,v2)

q1*q2 = (s1s2 – v1.v2 , s1v2 + s2v1 + v1x v2)

  • inverse:

  • unit quaternion:


Quaternion rotation
Quaternion Rotation

To rotate a vector, v using quaternion math

  • represent the vector as [0,v]

  • represent the rotation as a quaternion, q


Quaternions as rotations
Quaternions as Rotations

  • Rotation of P=(0,r) about the unit vector n by an angle θ using the unit quaternion q=(s,v)

but q=(cos½θ, sin½θ•n) where |n|=1


Quaternions as rotations1

Quaternions as Rotations


Quaternion math
Quaternion math

Unit quaternion

Multiplication


Quaternion math1
Quaternion math

Conjugate

Inverse

the unit length quaternion


Quaternion rotation1

then results in rotating about by

If is a unit quaternion and

Quaternion Rotation

proof: see Quaternions by Shoemaker



Quaternion composition
Quaternion composition

If and are unit quaternion

the combined rotation of first rotating by and then by is equivalent to



Quaternion interpolation

2-angle rotation can be represented by a unit sphere

Quaternion interpolation

  • Interpolation means moving on n-D sphere

  • Now imagine a 4-D sphere for 3-angle rotation

1-angle rotation can be represented by a unit circle


Quaternion interpolation1
Quaternion 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


Quaternion interpolation2
Quaternion 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


Rotations in reality
Rotations in Reality

  • It’s 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

    • input:Euler angles

    • interpolation: quaternions

    • composing rotations: quaternions, orientation matrix


  • Rotation matrix

  • Fixed angle and Euler angle

  • Axis angle

  • Quaternion

  • Exponential map


Exponential map
Exponential 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


Properties of exponential map
Properties of exponential map

  • No need to re-normalize the parameters

  • Fewer DOFs

  • Good interpolation behavior

  • Singularities exist but can be avoided


Choose a representation
Choose 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)


ad