13.07.2015 Views

Using Rotations to Build Aerospace Coordinate Systems - Defence ...

Using Rotations to Build Aerospace Coordinate Systems - Defence ...

Using Rotations to Build Aerospace Coordinate Systems - Defence ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

DSTO–TN–0640We are always free <strong>to</strong> construct any quantity from those three numbers. For instance wecould specify a rotation through θ around (n 1 , n 2 , n 3 ) by a new object written as (θ, n 1 , n 2 ).This is very concise, but the catch is that we would also have <strong>to</strong> define how this objectacts on a vec<strong>to</strong>r <strong>to</strong> rotate it. The result is not anything simple, so we gain nothing bydoing this.But all is not lost. If we allow a little more complexity, and construct a new object Q n (θ)from θ, n 1 , n 2 , n 3 along with a sine and cosine, then this turns out <strong>to</strong> be simple enough <strong>to</strong>offset the more complicated way it has <strong>to</strong> interact with vec<strong>to</strong>rs. Here n is taken <strong>to</strong> be theunit row vec<strong>to</strong>r (n 1 , n 2 , n 3 ):(Q n (θ) ≡ cos θ 2 , nsin θ ). (3.14)2This new object Q n (θ) is called a rotation quaternion. More general quaternions (not forrotating) are composed of a number and a vec<strong>to</strong>r: (a 0 , a). Two quaternions multiply inthe following way:(a 0 , a)(b 0 , b) ≡ (a 0 b 0 − a·b, a 0 b + b 0 a + a×b) , (3.15)so that the squared length of a quaternion is defined <strong>to</strong> be (in analogy <strong>to</strong> the length of avec<strong>to</strong>r):∣∣(a 0 , a) ∣ 2 ≡ a 2 0 + |a| 2 . (3.16)We can see straight away that a rotation quaternion Q n (θ) has unit length, which is theequivalent property of rotation quaternions as orthogonality and a unit determinant is ofrotation matrices.<strong>Using</strong> rotation quaternions, a row vec<strong>to</strong>r x can be rotated through an angle θ arounda unit vec<strong>to</strong>r n by applying a double multiplication:(0, x ′ ) = Q n (θ) (0, x)Q −n (θ), (3.17)where quaternion multiplication is associative, so either product can be done first. Asan example, in (3.12) we used a matrix <strong>to</strong> rotate (2, 0, 0) by 90 ◦ about the y-axis <strong>to</strong>give (0, 0, −2). Contrast the matrix approach with the quaternion approach:(0, x ′ ) =( )1 1 √2 , √ (0, 1, 0) 2(0, 2, 0, 0)= (1, 0, 1, 0)(0, 1, 0, 0)(1, 0, −1, 0)so that the result is (0, 0, −2) as expected.( 1 √2 , √ −1 )(0, 1, 0) 2= (0, 0, 0, −2), (3.18)Combining two rotations using quaternions is straightforward. Just as a matrix rotationR 1 followed by R 2 is equivalent <strong>to</strong> a single matrix rotation R 2 R 1 , a quaternionrotation Q 1 followed by Q 2 is equivalent <strong>to</strong> a single quaternion rotation Q 2 Q 1 .Finally, just as a rotation matrix will slowly lose orthogonality under repeated iterationsin a software routine, so a rotation quaternion’s length will slowly wander from one in thesame circumstances. It can be periodically reset by dividing each of the quaternion’s fourelements by the length calculated from (3.16), which is a very much simpler task thanre-orthogonalising a matrix in (3.13).10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!