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) Rq (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 Iq q q11q 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 Iq q p1 u p 2 p1 q11q 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 (q11q 2 )t t 1 t 1 1 2 q1exp(t log (q q )) Spherical Linear Interpolation slerp t (q1 , q 2 ) q1 (q11q 2 )t q1exp(t log (q11q 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