Discrepancy in a Law for Successive Rotations using Euler-Rodrigues Parameters and Other Kinematic Variables

45 Views Asked by At

Recently I've been working on a note set on spacecraft dynamics. I'm using several different resources, but one I am using heavily is Spacecraft Dynamics by Kane, Levinson, and Likins from 1983. The book presents Direction cosines, Principal Rotation Parameters (axis-angle), Euler-Rodrigues Parameters (not sure if everyone uses this name, they're like the quaternions but only the coefficients), Rodrigues Parameters, and Euler Angles as the primary kinematic variables. Having taken a class in this subject I am already familiar, however, I've discovered a discrepancy in my own derivation. The book proves a "law of successive rotations" for both Rodrigues Parameters and then Euler Parameters.

The setup is the following: A rigid body undergoes rotation from frame A to intermediate frame B', then undergoes another rotation from intermediate frame B' to frame B. It presents a law (which I completed the derivation for and came to the same conclusion) as the following: the Rodrigues vector that represents a single rotation as a function of the Rodrigues vectors of each individual rotation is

$${}^A\vec\rho^B = \frac{({}^A\vec\rho^{B'} +{}^{B'}\vec\rho^B) - ({}^{A}\vec\rho^{B'}\times{}^{B'}\vec\rho^{B})}{1-({}^{A}\vec\rho^{B'}\cdot{}^{B'}\vec\rho^{B})}$$

From this you can get a law for Euler Parameters,

$$ {}^A\vec\epsilon^B = {}^A\vec\epsilon^{B'}{}^{B'}\epsilon^{B}_4 + {}^A\epsilon^{B'}_4{}^{B'}\vec\epsilon^{B} - {}^A\vec\epsilon^{B'}\times{}^{B'}\vec\epsilon^{B} $$

$$ {}^A\epsilon^B_4 = {}^A\epsilon_4^{B'}{}^{B'}\epsilon_4^{B} - {}^A\vec\epsilon^{B'}\cdot{}^{B'}\vec\epsilon^{B} $$

I should mention that the book uses row vectors to represent the vector transformation if you were to construct the DCM for the rotations. The derivation was done without any matrices however, only using the vector definitions of the Rodrigues and Euler Parameters. In my notes, I use column vectors though. This essentially means I must transpose everything I find in the book to check if my work produces the same result. Another book I use as a reference gives the following formula for successive rotations of Principal Rotation Parameters:

$$ \cos\frac{\theta}{2} = \cos\frac{\theta_1}{2}\cos\frac{\theta_2}{2} - \sin\frac{\theta_1}{2}\sin\frac{\theta_2}{2}\hat{\lambda}_1\cdot\hat{\lambda}_2 $$ $$ \hat{\lambda} = \frac{1}{\sin\frac{\theta}{2}}(\cos\frac{\theta_2}{2}\sin\frac{\theta_1}{2}\hat\lambda_1 + \cos\frac{\theta_1}{2}\sin\frac{\theta_2}{2}\hat\lambda_2 + \sin\frac{\theta_1}{2}\sin\frac{\theta_2}{2}\hat\lambda_1\times\hat\lambda_2) $$

where the first angle and axis correspond to the first rotation, the second set with the second rotation, and the absolute one representing a single composite rotation. Using the definition of the Euler Parameters, the second equation is evidence, except for the fact that the order of their cross product is switched since there is a sign difference in the cross product term. This book uses column vectors though, so the DCM is the transpose of the row-vector multiplication form. However, no matrices were even used in the book derivation or my derivation of the law; they only use vector components. Considering this, how can they be any different? I put a crude MATLAB code together to test this, and the Euler Parameter Law actually fails using that formulation. When I switch the order of the cross product, it then produces the correct composite rotation. This is where the discrepancy lies, and I cannot understand why this is occurring.

I would like to clarify that the row-vector form gives successive rotations in a DCM as $$ {}^A C^B = {}^A C^{B'}\ {}^{B'}C^{B} $$ and column-vector form is $$ {}^A C^B = {}^{B'} C^{B}\ {}^{A}C^{B'} $$ which represent the same vector transform when you transpose them to match the form of the other.