Introduction to quaternions Definition: A quaternion q consists of a scalar part s, s, and a vector part v ( xyz,,, v 3 : q where, [ s, v q [ s, ( xyz,, q s+ ix + jy + kz i 2 j 2 k 2 1 ij ji k k Quaternion properties: addition Definition: q [ s, v [ s, ( x, yz, q' [ s', v' [ s',( x', y', z' q+ q' [ s + s', v+ v' ( s + s' + i( x+ x' + j( y+ y' + k( z + z' Addition is: associative commutative Quaternion properties: multiplication Definition: qq' [ ss' v v', v v' + sv' + s'v qq' [ s, v [ s', v' Derivation of multiplication ( s + ix + jy + kz ( s' + ix' + jy' + kz' qq' ss' + s( ix' + jy' + kz' + ixs' + ix( ix' + jy' + kz' + ( jys' + jy( ix' + jy' + kz' + kzs' + kz( ix' + jy' + kz' Note: qq' ss' + sv' + s'v+ ix( ix' + jy' + kz' + a b a x b x + a y b y + a z b z b a jy( ix' + jy' + kz' + kz( ix' + jy' + kz' a b ( a y b z a z b y, a z b x a x b z, a x b y a y b x b a qq' ss' + sv' + s'v ( xx' + yy' + zz' + ix( jy' + kz' + jy( ix' + kz' + kz( ix' + jy'
Derivation of multiplication (continued qq' ss' + sv' + s'v ( xx' + yy' + zz' + ix( jy' + kz' + jy( ix' + kz' + kz( ix' + jy' Derivation of multiplication (continued qq' ss' + sv' + s'v ( xx' + yy' + zz' + xy'k xz'j yx'k + yz'i + zx'j zy'i Now: ij k, ik j, ji k, jk i, ki j, kj i qq' ss' + sv' + s'v ( xx' + yy' + zz' + ( yz' zy' i + ( zx' xz' j + ( xy' yx' k qq' ss' + sv' + s'v ( xx' + yy' + zz' + xy'k xz'j yx'k + yz'i + zx'j zy'i qq' ss' + sv' + s'v v v' + v v' [ ss' v v', v v' + sv' + s'v Quaternion properties Quaternion properties Conjugate: q qq Inverse: q q 2 q 1 Note: qq [ s 2 ( v ( v, v ( v + sv + s( v [ + v v, 0 s 2 Note: qq 1 q 1 q qq q 2 q 2 q 2 [ 1, 0 q s 2 + x 2 + y 2 + z 2 Unit quaternion: q 1
Quaternion rotations Quaternion rotation Let, Any unit quaternion can be expressed as: q [ cos( θ 2, sin( θ 2 kˆ where, p ( p x, p y, p z denote the Cartesian coordinates of a point in 3-space. otation of p by θ about the vector kˆ to : kˆ ( k x, k y, k z. p [ 0, p [ 0, Such a unit quaternion represents a rotation of vector kˆ. θ about the qpq Quaternion rotation: angle-axis equivalence emember: qpq qq' [ ss' v v', v v' + sv' + s'v [ s, v [ 0, p [ s, v Quaternion rotation: angle-axis equivalence Scalar part: (Why? Mathematica Vector part I: [ s( v p + ( v p v + s( p v, ( v p v s( p v + s( v p + s 2 p+ v( v p s( v p + ( v p v + s( p v 0 [ v p, v p+ sp [ s, v s( p v + s( v p 2s( v p [ s( v p + ( v p v + s( p v, ( v p v s( p v + s( v p + s 2 p+ v( v p [ 0, ( v p v + 2s( v p + s 2 p+ v( v p
Quaternion rotation: angle-axis equivalence [ 0, ( v p v + 2s( v p + s 2 p+ v( v p Quaternion rotation: angle-axis equivalence ( s 2 v vp + 2s( v p + 2( v pv Vector part II: ( v p v ( v vp ( v pv (Why? Mathematica emember unit quaternion: q [ cos( θ 2, sin( θ 2 kˆ [ 0, ( s 2 v vp + 2s( v p + 2( v pv ( s 2 v vp + 2s( v p + 2( v pv [ cos 2 ( θ 2 sin 2 ( θ 2 p + 2cos( θ 2 sin( θ 2 kˆ p + 2sin 2 ( θ 2 ( kˆ pkˆ Quaternion rotation: angle-axis equivalence Quaternion rotation: angle-axis equivalence cosθ cos 2 ( θ 2 sin 2 ( θ 2 ( cosθp + ( sinθkˆ p + ( 1 cosθ ( kˆ pkˆ sinθ 2cos( θ 2 sin( θ 2 ( cθp + ( sθkˆ p + ( vθ ( kˆ pkˆ ( 1 cosθ ( 1 cos 2 ( θ 2 + sin 2 ( θ 2 2sin 2 ( θ 2 [ cos 2 ( θ 2 sin 2 ( θ 2 p + 2cos( θ 2 sin( θ 2 kˆ p + 2sin 2 ( θ 2 ( kˆ pkˆ ( cosθp + ( sinθkˆ p + ( 1 cosθ ( kˆ pkˆ where, cθ sθ cosθ sinθ vθ 1 cosθ Equivalent to ( θp? kˆ (Best answered by Mathematica.
Quaternion rotation: angle-axis equivalence Answer from Mathematica: ( θp kˆ Quaternion rotation: summary otation through quaternions: qpq ( k 2 x vθ + cθ ( k x k y vθ k z sθ ( k x k z vθ + k y sθ ( θ kˆ ( k x k y vθ + k z sθ ( k 2 y vθ + cθ ( k y k z vθ k x sθ odrigues formula: ( k x k z vθ k y sθ ( k y k z vθ + k x sθ ( k 2 y vθ + cθ ( cθp + ( sθkˆ p + ( vθ ( kˆ pkˆ Conclusion: same as derived earlier! Composite quaternion rotations Conjugate multiplication Assume two rotations: q o followed by q 1 : p (first rotation qq' [ ss' v v', v v' + sv' + s'v ( q 1 [ s 0, v 0 [ s 1, v 1 (multiplication ' q 1 q 1 (second rotation [ s 0 s 1 v 0 v 1, v 0 v 1 s 0 v 0 s 1 v 1 ' q 1 ( p q 1 ' ( q 1 pq ( 0 q 1 ' ( q 1 pq ( 0 q 1 ' ( q 1 pq ( 1 ( q 1 ([ s 1, v 1 [ s 0, v 0 [ s 1 s 0 v 1 v 0, v 1 v 0 + s 0 v 1 + s 1 v 0 [ s 1 s 0 v 1 v 0, ( v 1 v 0 + s 0 v 1 + s 1 v 0 [ s 0 s 1 v 0 v 1, v 0 v 1 s 0 v 0 s 1 v 1 ( q 1 ( q 1
Quaternion to angle-axis representation Quaternion to rotation matrix Unit quaternion: q [ s, v q [ cos( θ 2, sin( θ 2 kˆ θ 2atan( v, s kˆ v v Given: q [ s, ( xyz,, what is r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33? Quaternion to rotation matrix Quaternion to rotation matrix (cont. ( s 2 v vp + 2s( v p + 2( v pv Now: ( s 2 v vp s 2 x 2 ( y 2 z 2 100 010 001 0 z y 2s( v p 2s z 0 x p 2( v pv 2 y x 0 p x 2 xy xz xy y 2 yz p xz yz z 2 ( s 2 x 2 y 2 z 2 2 x 2 xy xz xy y 2 yz xz yz z 2 p 100 010 001 0 z y + 2s z 0 x + y x 0 (...see Mathematica
Quaternion to rotation matrix (cont. otation matrix to quaternion 1 2( y 2 + z 2 2( xy sz 2( xz + sy 2( xy + sz 1 2( x 2 + z 2 2( yz sx 2( xz sy 2( yz + sx 1 2( x 2 + y 2 p Given: r 12 r 13 r 21 r 22 r 23 Therefore, a unit quaternion q [ s, ( xyz,, corresponds to: 1 2( y 2 + z 2 2( xy sz 2( xz + sy 2( xy + sz 1 2( x 2 + z 2 2( yz sx 2( xz sy 2( yz + sx 1 2( x 2 + y 2 r 31 r 32 r 33 what is q [ s, ( xyz,,? otation matrix to quaternion otation matrix to quaternion 1 2( y 2 + z 2 2( xy sz 2( xz + sy 2( xy + sz 1 2( x 2 + z 2 2( yz sx 2( xz sy 2( yz + sx 1 2( x 2 + y 2 s 2 + x 2 y 2 z 2 2( xy sz 2( xz + sy 2( xy + sz s 2 x 2 + y 2 z 2 2( yz sx 2( xz sy 2( yz + sx s 2 x 2 y 2 + z 2 or s 2 + x 2 y 2 z 2 2( xy sz 2( xz + sy 2( xy + sz s 2 x 2 + y 2 z 2 2( yz sx 2( xz sy 2( yz + sx s 2 x 2 y 2 + z 2 3s 2 x 2 y 2 z 2 + 1 3s 2 x 2 y 2 z 2 + ( s 2 + x 2 + y 2 + z 2 + 1 4s 2
otation matrix to quaternion otation matrix to quaternion + 1 4s 2 s 2 ( 1 4 ( 1 + 1 2( y 2 + z 2 2( xy sz 2( xz + sy 2( xy + sz 1 2( x 2 + z 2 2( yz sx 2( xz sy 2( yz + sx 1 2( x 2 + y 2 Similarly: x 2 ( 1 4 ( 1 + r 22 r 33 y 2 ( 1 4 ( 1 r 33 z 2 ( 1 4 ( 1 r 22 r 32 r 23 2( yz + sx 2( yz sx 4sx sx ( 1 4 ( r 32 r 23 sy ( 1 4 ( r 13 r 31 sz ( 1 4 ( r 21 r 12 xy ( 1 4 ( r 12 + r 21 xz ( 1 4 ( r 13 + r 31 yz ( 1 4 ( r 23 + r 32 otation matrix to quaternion s 2 ( 1 4 ( 1 + x 2 ( 1 4 ( 1 + r 22 r 33 y 2 ( 1 4 ( 1 r 33 Quaternion advantages 1. Do not suffer from singularities, as 3-angle conventions do. 2. Most compact way of representing rotations without redundancy or singularity. z 2 ( 1 4 ( 1 r 22 sx ( 1 4 ( r 32 r 23 sy ( 1 4 ( r 13 r 31 sz ( 1 4 ( r 21 r 12 xy ( 1 4 ( r 12 + r 21 xz ( 1 4 ( r 13 + r 31 yz ( 1 4 ( r 23 + r 32 Now what?
Quaternion advantages (cont. 3. Distance metric between rotations: dqp (, min[ Eqp (,, Eq (, p Eqp (, ( s q s p 2 + ( x q x p 2 + ( y q y p 2 + ( z q z p 2 4. Finite-precision re-normalization of compound rotations. 5. For simulation purposes, easy to generate a uniformly random distribution of rotations in quaternion space. Trajectory generation between rotations Linear interpolation (Lerp: where, Lerp(, h fq ( 0, h -------------------------------, h [ 01,, fq ( 0, h fq ( 0, h ( 1 h + q 1 h. 6. Computation of shortest-path, smooth, continuous-velocity trajectories between two rotations (represented as unit quaternions. Trajectory generation between rotations Spherical Linear interpolation (Slerp: Constant velocity Shortest path Linear interpolation (Lerp velocity Slerp(, h ( q 1 q 1 0 h, h [ 01, or equivalently as, Slerp(, h ( q 1 h, h [ 01, (why? Nonconstant velocity... So what s the difference?
Why nonconstant velocity? Spherical linear interpolation (Slerp velocity Constant velocity...