How Can I Apply a Quaternion Rotation on a Local Axis After an Initial Rotation?

Join the discussion
Registration is free. Start your own thread to ask a follow-up.
1 reply · 3K views
Registred
Messages
4
Reaction score
0
Hey,

Once again, I got a question about quaternions.
Say I have an initial rotation Q1. I now want to rotate Q1 on the X and then on the Y axis. BUT: The Y rotation should apply to the local Y axis which was given in Q1.

The problem is:
If i rotate Q1 by the X-rotation Q2, then the Y axis changes for Q1*Q2. So, since quaternion multiplication is noncommutativ, if I then apply the Y-rotation Q3, I don't rotate about the original Y axis of Q1.

How can I rotate quaternions this way?

Greetings!
 
Mathematics news on Phys.org
I assume that the rotations around X and Y will be achieved by applying by two separate quaternion increments, call them QX and QY. Assuming this is the case I think you need to proceed as follows;

1. apply the QX rotation to Q1, call the result R1.
2. apply the QX rotation to the QY rotation increment - this transforms the Y axis rotation from the original frame of reference to the frame that exists after you've done the X rotation. Call the modified QY increment QY'
3. apply QY' to R1