Sign in to follow this  
fpsgamer

Euler Angles and Matrix Concatenation....

Recommended Posts

To summarize: - Euler angles represent an angular displacement along three axes. - It is noted that the order of these transformations doesn't matter as long as one is consistent. - Also it is said that each rotation occurs about object space axes, not the inertial axes. My confusion is related to that last point. Lets say we have the following rotation matrices H, P, B, which represent heading, pitch and bank respectively. Also we have a row vector p representing the point that is to be transformed. --- Situation A: Lets concatenate H,P and B into a single matrix T = HPB. Now we transform our point by pT. Situation B: Lets transform our point by (((pH)P)B). --- The way I see it, situation A seems like the correct method. My intuitaition says that using this method we will be able to rotate about all three axes "all at once", allowing us to rotate about object space axes while they're still aligned with the inertial axes. Whereas situation B looks like we'll end up rotating the vector about inertial axes after the first rotation. However I am not entirely sure about my statements or reasoning, since mathematically they look the same, but my intuition says otherwise.

Share this post


Link to post
Share on other sites
Mathematically it is the same whether one applies
( p * M1 ) * M2
or else
p * ( M1 * M2 )
and hence there is no difference in the result.

The 1st is how one interprets the transformation (e.g. "first" comes M1, then M2; that is the understanding of local and global w.r.t. transformations), while the latter one is how the API is set-up (i.e. first set the matrix, then push all the vertices into).

Share this post


Link to post
Share on other sites
In this reply I follow more or less the notation of the two preceding articles.

Let H, P and B be the matrices of the three Euler angle rotations in the Earth-fixed coordinate system ECS.
Let H', P' and B' be the matrices of the same three Euler angle rotations in the body-fixed coordinate system BCS.

Then the overall rotation (H first, then P, finally B) has in the EC system the matrix R = B.P.H, i.e. in space-fixed coordinates successive attitudes are calculated by matrix pre-multiplication.

We want to prove that R expressed in terms of body-based matrices equals R = H'.P'.B', i.e. if body-based matrices are given and the space-based rotation matrix has to be calculated, then successive attitudes are calculated by matrix post-multiplication.

This is indeed counter-intuitive, but as it happens so often in aerospace theory, a mathematical proof or a physical explanation always helps us out.
In this Euler rotations case it is mathematics, of course.

Well, starting with the heading rotation we observe that then BCS and the ECS coincide, therefore H' = H. In Maple notation (row-by-row):
H = [[cosPsi, -sinPsi, 0], [sinPsi, cosPsi, 0], [0, 0, 1]].

Now for the pitch rotation. Its body-based matrix reads in Maple notation (row-by-row)
P' = [[cosTheta, 0, sinTheta], [0, 1, 0], [-sinTheta, 0, cosTheta]].

The heading-pitch rotation has the space-based matrix P.H; express this in terms of P' and H'.

To this end, calculate P from P':
(A) transform coordinate system from BCS to ECS by heading rotation; matrix H^-1
(B) apply P';
(C) transform coordinate system back from ECS to BCS; matrix H.
Result of (A)-(C) is P = H.P'.H^-1,
Intermediate result is P.H = H'.P'
In linear algebra and in group theory this process is known as conjugation of P' by H.


Finally the bank rotation. Its body-based matrix reads in Maple notation (row-by-row)
B' = [[1, 0, 0], [0, cosPhi, -sinPhi], [0, sinPhi, cosPhi]].

The overall (heading-pitch-bank) rotation has the space-based matrix B.P.H; express this in terms of B', P' and H'.

To this end, calculate B from B'
(A) transform coordinate system from BCS to ECS by heading-pitch rotation; matrix (H'.P')^-1
(B) apply B';
(C) transform coordinate system back from ECS to BCS; matrix H'.P'
This is the conjugation of B' by H'.P'

Result of (A)-(C) is B = (H'.P').B'.(H'.P')^-1,

Overall result is B.P.H = (H'.P').B'.(H'.P')^-1.(H'.P') = H'.P'.B' QED


BTW, this kind of transformations is so to say butter and bread in all applied mathematics and mechanics.


More on Euler angles and an extension of Euler angles to avoid the singularities of vertical flight see http://www.xs4all.nl/~jemebius/9505.htm , reachable from http://www.xs4all.nl/~jemebius/Eea.htm

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this