Transcript ppt

Rotation and Orientation:
Fundamentals
Jehee Lee
Seoul National University
What is Rotation ?
• Not intuitive
– Formal definitions are also confusing
• Many different ways to describe
–
–
–
–
–
–
Rotation (direction cosine) matrix
Euler angles
Axis-angle
Rotation vector
Helical angles
Unit quaternions
Orientation vs. Rotation
• Rotation
– Circular movement
• Orientation
– The state of being oriented
– Given a coordinate system, the orientation of an
object can be represented as a rotation from a
reference pose
Analogy
(point : vector) is similar to (orientation : rotation)
Both represent a sort of (state : movement)
Reference coordinate system
Analogy
(point : vector) is similar to (orientation : rotation)
Both represent a sort of (state : movement)
point : the 3d location of the bunny
vector : translational movement
Reference coordinate system
Analogy
(point : vector) is similar to (orientation : rotation)
Both represent a sort of (state : movement)
point : the 3d location of the bunny
vector : translational movement
orientation : the 3d orientation of the bunny
rotation : circular movement
Reference coordinate system
2D Orientation

2


or

0
Polar Coordinates


2
2D Orientation

2

 (t )

or


Time
0


2

Although the motion is continuous,
its representation could be discontinuous
2D Orientation

2

 (t )

or


Time
0 


2
Many-to-one correspondences
between 2D orientations and their
representations
Extra Parameter
Y
x  y 1
2
2
( x, y )

X
Extra Parameter
2x2 Rotation matrix is yet
another method of using
extra parameters
 cos 

 sin 
Y
x  y 1
2
 sin  

cos  
2
( x, y )

X
Complex Number
Imaginary
x  iy

Real
Complex Exponentiation
x  iy  cos   i sin 
Imaginary
e
x  iy

Real
i
2D Rotation
• Complex numbers are good for representing 2D
orientations, but inadequate for 2D rotations
• A complex number cannot distinguish different rotational
movements that result in the same final orientation
Imaginary
– Turn 120 degree counter-clockwise
– Turn -240 degree clockwise
– Turn 480 degree counter-clockwise

Real
  2
2D Rotation and Orientation
• 2D Rotation
– The consequence of any 2D rotational movement can be
uniquely represented by a turning angle
• 2D Orientation
– The non-singular parameterization of 2D orientations requires
extra parameters
• Eg) Complex numbers, 2x2 rotation matrices
Operations in 2D
• (orientation) : complex number
• (rotation) : scalar value
• exp(rotation) : complex number
2D Rotation and Displacement
Imaginary
c1  x  iy
Real
2D Rotation and Displacement
c2  c1  e
Imaginary
c2

c1  x  iy
Real
i
or
1
1 2
c c e
i
2D Orientation Composition
Imaginary
c2
c1  c2  (undefined )
c1
Real
2D Rotation Composition
Imaginary
e
i (  )


Real
i
 e e
i
Analogy
3D Rotation
• Given two arbitrary orientations of a rigid object,
X
X
Z
Z
Y
Y
3D Rotation
• We can always find a fixed axis of rotation and
an angle about the axis
vˆ

Euler’s Rotation Theorem
The general displacement of a rigid body with
one point fixed is a rotation about some axis
Leonhard Euler (1707-1783)
In other words,
• Arbitrary 3D rotation equals to one rotation
around an axis
• Any 3D rotation leaves one vector unchanged
Euler angles
• Gimble
– Hardware implementation of
Euler angles
– Aircraft, Camera
Euler Angles
• Rotation about three
orthogonal axes
– 12 combinations
• XYZ, XYX, XZY, XZX
• YZX, YZY, YXZ, YXY
• ZXY, ZXZ, ZYX, ZYZ
• Gimble lock
– Coincidence of inner most
and outmost gimbles’
rotation axes
– Loss of degree of freedom
Euler Angles
• Euler angles are ambiguous
– Two different Euler angles can represent the same
orientation
R1  (rx ,ry ,rz )  (θ ,

2
,0) and
R2  ( 0,

2
, )
– This ambiguity brings unexpected results of animation
where frames are generated by interpolation.
Ranges
• Euler angles in ZXZ
– Z-axis by a  (  ,  ]
– X’-axis by b  ( /2 , /2 ]
– Z’’-axis by g  (  ,  ]
Dependence
• Compare
– Rotation about z-axis by 180 degree
– Rotation about y-axis by 180 degree, followed by
another rotation about x-axis by 180 degree
• Rotations about x-, y-, and z-axes are
dependent
Rotation Vector
vˆ
vˆ : unit vector
 : scalar angle

• Rotation vector (3 parameters) v   vˆ  ( x, y, z )
( , vˆ )
• Axis-Angle (2+1 parameters)
3D Orientation
• Unhappy with three parameters
– Euler angles
• Discontinuity (or many-to-one correspondences)
• Gimble lock
– Rotation vector (a.k.a Axis/Angle)
• Discontinuity (or many-to-one correspondences)


Using an Extra Parameter
• Euler parameters
 
e0  cos 
 2
 e1 
e   vˆ sin   
 
 2
 2
e3 
 : rotation angle
vˆ : rotation axis
Quaternions
• William Rowan Hamilton (1805-1865)
– Algebraic couples (complex number) 1833
x  iy
where
i 2  1
Quaternions
• William Rowan Hamilton (1805-1865)
– Algebraic couples (complex number) 1833
x  iy
where
i 2  1
– Quaternions 1843
w  ix  jy  kz where
i  j  k  ijk  1
2
ij  k ,
2
2
jk  i, ki  j
ji  k , kj  i, ik   j
Quaternions
William Thomson
“… though beautifully ingenious, have been an
unmixed evil to those who have touched them in
any way.”
Arthur Cayley
“… which contained everything but had to be
unfolded into another form before it could be
understood.”
Unit Quaternions
• Unit quaternions represent 3D rotations
q  w  ix  jy  kz
S
3
 ( w, x, y, z )
 ( w, v)
w2  x 2  y 2  z 2  1
Rotation about an Arbitrary Axis
• Rotation about axis vˆ by angle 
vˆ
( x, y , z )
( x, y, z)

1

p  qpq
where



q   cos , vˆ sin 
2
2

p  (0, x, y, z )
Purely Imaginary Quaternion
Unit Quaternion Algebra
• Identity
• Multiplication
• Inverse
q  (1,0,0,0)
q1q 2  ( w1 , v1 )( w2 , v 2 )
 ( w1w2  v1  v 2 , w1 v 2  w2 v1  v1  v 2 )
q 1  ( w, x, y, z ) /( w2  x 2  y 2  z 2 )
 ( w, x, y, z ) /( w2  x 2  y 2  z 2 )
– Opposite axis or negative angle
• Unit quaternion space is
– closed under multiplication and inverse,
– but not closed under addition and subtraction
Unit Quaternion Algebra
• Antipodal equivalence
– q and –q represent the same rotation
Rq (p)  Rq (p)
– ex) rotation by  about opposite direction
– 2-to-1 mapping between S3 and SO(3)
– Twice as fast as in SO(3)
3D Orientations and Rotations
Orientations and rotations are different in
coordinate-invariant geometric programming
Use unit quaternions for orientation representation
– 3x3 orthogonal matrix is theoretically identical
Use 3-vectors for rotation representation
Tangent Vector
(Infinitesimal Rotation)
TqS
q
3
Tangent Vector
(Infinitesimal Rotation)
q
1
TqS
q
3
Tangent Vector
(Infinitesimal Rotation)
TI S
3
I  ( 1,0,0,0)
( 0, x, y, z )
Angular Velocity
1 1
  q q
2
Exp and Log
I
log
exp
exp( v)  exp( vˆ )  (cos  , vˆ sin  )
Exp and Log
I
log
exp
exp( v)  exp( vˆ )  (cos  , vˆ sin  )
Euler
parameters
 
e0  cos 
 2
 e1 
e   vˆ sin   
 
 2
 2
e3 
Rotation Vector
R
3
p1
3
S q
1
u  p 2  p1
p2
q2
p 2  p1  u
 p1  (p 2  p1 )
q 2  q1exp( v)
( (
1
1
2
 q1exp log q q

Rotation Vector
R
3
p1
u  p 2  p1
S
3
1
1
1
Iq q
q11q 2
p2
p 2  p1  u
 p1  (p 2  p1 )
q 2  q1exp( v)
( (
1
1
2
 q1exp log q q

Rotation Vector
R
3
(
1
1
2
v  log q q

1
1
1
Iq q
p1
u  p 2  p1
q11q 2
p2
p 2  p1  u
 p1  (p 2  p1 )
q 2  q1exp( v)
( (
1
1
2
 q1exp log q q

Rotation Vector
• Finite rotation
– Eg) Angular displacement
– Be careful when you add two rotation vectors
e e e
u v
u v
• Infinitesimal rotation
– Eg) Instantaneous angular velocity
– Addition of angular velocity vectors are meaningful
Spherical Linear Interpolation
• SLERP [Shoemake 1985]
– Linear interpolation of two orientations
slerp t (q1 , q 2 )  q1 (q11q 2 )t
t
1 t
1
1
2
 q1exp(t  log (q q ))
Spherical Linear Interpolation
slerp t (q1 , q 2 )  q1 (q11q 2 )t
 q1exp(t  log (q11q 2 ))
Coordinate-Invariant Operations
Adding Rotation Vectors
Affine Combination of Orientations
Analogy
• (point : vector) is similar to (orientation : rotation)
Rotation Matrix vs. Unit Quaternion
• Equivalent in many aspects
– Redundant, No singularity
– Exp & Log, Special tangent space
• Why quaternions ?
– Fewer parameters, Simpler algebra
– Easy to fix numerical error
• Cf) matrix orthogonalization (Gram-shmidt process, QR, SVD
decomposition)
• Why rotation matrices ?
– One-to-one correspondence
– Handle rotation and translation in a uniform way
• Eg) 4x4 homogeneous matrices
Rotation Conversions
• In theory, conversion between any
representations is always possible
• In practice, conversion is not straightward
because of difference in convention
• Quaternion to Matrix
 q02  q x2  q y2  q z2

 2q x q y  2q 0 q z
R
 2q x q z  2q 0 q y

0

2q x q y  2q 0 q z
2q x q z  2q 0 q y
q02  q x2  q y2  q z2
2q y q z  2q 0 q x
2q y q z  2q 0 q x
q02  q x2  q y2  q z2
0
0
0

0
0 
1 