Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Composition of Quaternions as rotations

  1. Oct 31, 2011 #1
    1. The problem statement, all variables and given/known data
    Hi, I am having problems in showing that in practise the composition of two rotations represented by quaternions is still a rotation.
    The example I have constructed is:
    Rotate (1,1,0) by 45 degrees about the z axis.
    The quaternion to use is thus q = cos(22.5)+ksin(22.5)
    This gives the vector (0,√2,0), as one would expect.
    Then, rotate this new vector by 45 degrees about the x acis.
    The quaternion to use is thus p = cos(22.5)+isin(22.5)
    This gives the vector (0,1,1), as expected.
    However, trying to find the single quaternion rotation to get from (1,1,0) to (0,1,1) is proving problematic..

    2. Relevant equations
    I know that composition of rotations is done in reverse order, ie to find the single quaternion that I need to use, I need to do pq and then apply this to (1,1,0) to give me (0,1,1)

    3. The attempt at a solution
    Now, I know that the answer is a rotation of 90 degrees about the y-axis, ie about (0,1,0), which is, in quaternion form, r = cos45+jsin45

    But when I multiply p with q, I do not get this.
    In fact, pq= cos^2(22.5) + isin(22.5)cos(22.5) + ksin(22.5)cos(22.5) - jsin^2(22.5)
    which I cannot get to equal what I want!

    By adding and subtracting another sin^2 , I can get the cos45, but then I am left with
    sin(22.5)(icos(22.5)+kcos(22.5)-jsin(22.5)) which is no closer!

    Could somebody please explain where I have gone wrong/what identities I have missed, as this should work, and I don't understand why it isn't!

    Many thanks.
  2. jcsd
  3. Oct 31, 2011 #2
    Having investigated further, I have found that multiplying (1,1,0) by that quaternion that I didn't like does actually give (0,1,1) , but I don't understand how I can interpret that geometrically - ie about what axis and by what angle is the rotation being performed?
    Because the usual way of writing that is in the form
    cos(θ/2)+Asin(θ/2) , where θ is the angle of rotation and A is the unit vector which is the axis of rotation...
    Unless, I write it out numerically:
    Therefore the angle of rotation is 2arccos(0.85355) = 62.8 degrees
    And the axis of rotation is the vector (0.35355, -0.14644, 0.35355) But this isn't a unit vector...

    Am I any closer?
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook