## Untitled

• Detailed explanation of the method
• Mathematics
• Links to basic underlying geometric principles

Jubeidono (talk) 01:15, 24 April 2010 (UTC)

## Untitled2

Should this line:

${\displaystyle R_{I\rightarrow E}=(R_{I\rightarrow E})^{T}}$

Actually be:

${\displaystyle R_{I\rightarrow E}=(R_{E\rightarrow I})^{T}}$

Damien d (talk) 13:12, 26 July 2010 (UTC)

That seems true. The article is difficult to read : lack of definitions, missing words or even bouts of phrases. Could the editor (Snietfeld ?) take care of that ? Chessfan (talk) 13:37, 29 July 2010 (UTC)

Damien d is correct, and I've made the appropriate change. I also added a few of the missing words Chessfan mentioned. I'll try to comb through it in more detail soon to make it more coherent. --Snietfeld (talk) 06:48, 23 November 2010 (UTC)

Hi Mr. Editor. I am Manoranjan Majji, ( Assistant Professor of Mechanical and Aerospace engineering at University at Buffalo, expert in Guidance, Navigation and Control) working with John Junkins (Distinguished Professor of Aerospace Engineering at Texas A&M University, world renowned expert in Guidance, Navigation, Control and Smart Sensor Technologies) helping our friend Harold Black (the original inventor of Triad algorithm) to update your summary of his algorithm. I sincerely apologize for transgressing all boundaries and re-writing the article entirely. Kindly allow our inputs. As you will see, this is very clear, extremely coherent and quite useful. Hope that our inputs pass your muster. Please suggest if you would need any further changes, we will be happy to oblige. Thanks for the opportunity. Mmajji (talk) 06:45, 10 December 2011 (UTC)

Hi, Mr. Mmajji. The geometric algebra allows one to calculate immediately the rotation axis and the angle, like quaternions but easier to interprete. Could not that be very useful in Space technics ? I would be interested by your opinion. Thank you ! Chessfan (talk) 22:28, 1 February 2012 (UTC)

Hi, Mr. Chessfan Yes, the axis of rotation and angle calculations are indeed quite useful. The angle and axis can be used to compute the quaternion and the direction cosine matrix directly (using Euler's theorem). So it is quite useful in producing a nonsingular representation the spacecraft attitude. --Mmajji (talk) 15:16, 9 April 2012 (UTC)

## Help for rewriting of the article

The mathematical problem is the following:

-- In ${\displaystyle R^{3}}$ we have two frames, one called (e) with orthonormal basis vectors ${\displaystyle (e_{i})}$ which we know, the other whose rotated position is not known, called (f), with orthonormal basis vectors ${\displaystyle (f_{j})}$ ;

-- we know the position of a pair of vectors ${\displaystyle x}$ and ${\displaystyle y}$ in both frames, that is the coordinates ${\displaystyle (x^{i},\xi ^{j},y^{i},\eta ^{j})}$ respectively in (e) and (f) ;

-- we want to know the active rotation by which (e) has been transformed into (f).

Remember : the vectors ${\displaystyle x}$ and ${\displaystyle y}$ have not been rotated ; their coordinates are known by physical measures in both frames.

The trick is that with ${\displaystyle x}$ and ${\displaystyle y}$ we can define a third (intermediate) frame, which we call (g), with orthonormal basis vectors ${\displaystyle (g_{k})}$ which we are able to calculate as linear functions of either the ${\displaystyle (e_{i})}$ or the ${\displaystyle (f_{j})}$. Having done that we can immediately read on those relations the matrices of active rotations between respectively (e) and (g), and (g) and (f). By composing those matrices we get immediately the global matrice of an active rotation between (e) and (f). Of course we must be careful not to make errors in the precise definitions of the matrices, and last but not least in the order of their combination.

A little tensorial algebra will be helpful, and much easier than working directly with matrices. We can successively write, using Einstein contraction rule :

${\displaystyle (1)\qquad \qquad g_{k}=g_{k}.e^{i}e_{i}\qquad \qquad f_{j}=f_{j}.g^{k}g_{k}\qquad \qquad f_{j}=f_{j}.e^{i}e_{i}}$

${\displaystyle (2)\qquad \qquad f_{j}.e^{i}=g_{k}.e^{i}f_{j}.g^{k}}$

The ${\displaystyle \quad g_{k}.e^{i}}$ , ${\displaystyle \quad f_{j}.g^{k}}$ , ${\displaystyle \quad f_{j}.e^{i}}$ are respectively the coefficients of three matrices which we call ${\displaystyle \quad A,\quad B,\quad C}$. The upper indexes are the row indexes, the lower indexes correspond to the columns. So you may note that in accordance with matrix multiplication rules the relation (2) means :

${\displaystyle (3)\qquad \qquad C=AB}$

That order may seem surprising, but as with Euler rotations we must remember that a matrix is normally attached to the reference frame in which it is supposed to operate. Thus we must write :

${\displaystyle (4)\qquad \qquad A=(A)_{e}\qquad \qquad B=(B)_{g}\qquad \qquad C=(C)_{e}}$

Then we get, with the matrix transformation rules :

${\displaystyle (5)\qquad \qquad C=AB=(A)_{e}(B)_{g}=(A)_{e}[(A^{T})_{e}(B)_{e}(A)_{e}]=(B)_{e}(A)_{e}}$

which explains it all.

We have now to show how to calculate the intermediate frame (g) and its relationship with the (e) and (f) frames. That is easy ; we write :

${\displaystyle (6)\qquad \qquad g_{1}=x|x|^{-1}\qquad g_{2}=(x\times y)|x\times y|^{-1}\qquad g_{3}=g_{1}\times g_{2}=x\times (x\times y)|x|^{-1}|x\times y|^{-1}}$

Then we successively express the vectors ${\displaystyle x}$ and ${\displaystyle y}$ in terms first of ${\displaystyle e_{i}}$ and second of ${\displaystyle f_{j}}$, which gives of course linear expressions for the (g) basis vectors. Of course in the case ${\displaystyle f_{j}.g^{k}}$ we make use of the fact that ${\displaystyle g^{k}=g_{k}}$, but be careful to maintain nevertheless the ${\displaystyle k}$ in upper position when switching to the matrix.

Chessfan (talk) 08:47, 2 August 2010 (UTC)

## Determining the "attitude" with geometric algebra

We start again with the two known vectors :

${\displaystyle (1)\qquad \qquad x=x^{i}e_{i}=\xi ^{j}f_{j}\qquad \qquad y=y^{i}e_{i}=\eta ^{j}f_{j}}$

The (e) frame is known, the (f) frame is not. The coordinates of x and y in both frames are known. We want to determine the rotor which rotates (e) to (f). Let :

${\displaystyle (2)\qquad \qquad R=\alpha -A=\alpha -Ia=\cos(\theta /2)-I{\hat {a}}\sin(\theta /2)\qquad \qquad {\tilde {R}}=\alpha +A=\alpha +Ia}$

where ${\displaystyle I}$ is the pseudoscalar, ${\displaystyle \alpha }$ a scalar, and ${\displaystyle A}$ a bivector satisfying ${\displaystyle \alpha ^{2}-A^{2}=1}$. ${\displaystyle a}$ is the vector dual to ${\displaystyle A}$. Let us say immediately that we do not reduce the generality of the problem if we impose ${\displaystyle 0\leq \theta \leq \pi }$.

${\displaystyle R}$ is supposed to satisfy the following relations :

${\displaystyle (3)\qquad \qquad f_{j}=Re_{j}{\tilde {R}}}$

If we call ${\displaystyle \xi }$ and ${\displaystyle \eta }$ the vectors defined by :

${\displaystyle (4)\qquad \qquad \xi =\xi ^{j}e_{j}=\xi ^{j}{\tilde {R}}f_{j}R={\tilde {R}}xR\qquad \qquad \eta =\eta ^{j}e_{j}=\eta ^{j}{\tilde {R}}f_{j}R={\tilde {R}}yR}$

we get :

${\displaystyle (5)\qquad \qquad x=R\xi {\tilde {R}}\qquad \qquad y=R\eta {\tilde {R}}}$

That means that ${\displaystyle \xi ,\eta }$ are rotated to ${\displaystyle x,y}$ by the same rotation than (e) to (f).

It is obvious that the plane defined by ${\displaystyle (x-\xi )\wedge (y-\eta )}$ is the same as defined by ${\displaystyle A}$. Thus we can write :

${\displaystyle (6)\qquad \qquad {\hat {a}}=-I(x-\xi )\wedge (y-\eta )|(x-\xi )\wedge (y-\eta )|^{-1}}$

That vector can of course be immediately calculated in the (e) frame. If now we design by the subscript ${\displaystyle \parallel }$ the projections of vectors on the ${\displaystyle A}$ plane, we find :

${\displaystyle (7)\qquad \qquad (x-\xi )\wedge (y-\eta )=(x-\xi )_{\parallel }\wedge (y-\eta )_{\parallel }=(x_{\parallel }-\xi _{\parallel })\wedge (y_{\parallel }-\eta _{\parallel })=(R\xi _{\parallel }{\tilde {R}}-\xi _{\parallel })\wedge (R\eta _{\parallel }{\tilde {R}}-\eta _{\parallel })}$

${\displaystyle (7)\qquad \qquad \qquad \qquad \qquad =[(R^{2}-1)\xi _{\parallel }]\wedge [(R^{2}-1)\eta _{\parallel }]=(R^{2}-1)({\tilde {R}}^{2}-1)\xi _{\parallel }\wedge \eta _{\parallel }=4a^{2}\xi _{\parallel }\wedge \eta _{\parallel }}$

The following lines illustrate how easy it is to work with the geometric product. We can write, noting that ${\displaystyle {\hat {a}}}$ is orthogonal to ${\displaystyle A}$ :

${\displaystyle (8)\qquad \qquad \xi _{\parallel }\wedge \eta _{\parallel }={\hat {a}}{\hat {a}}(\xi _{\parallel }\wedge \eta _{\parallel })={\hat {a}}({\hat {a}}\wedge \xi \wedge \eta )}$

Thus :

${\displaystyle (10)\qquad \qquad (x-\xi )\wedge (y-\eta )=4a^{2}{\hat {a}}({\hat {a}}\wedge \xi \wedge \eta )=4a^{2}{\hat {a}}Idet({\hat {a}},\xi ,\eta )}$

${\displaystyle (11)\qquad \qquad 4\sin ^{2}(\theta /2)=2[1-\cos(\theta )]=|(x-\xi )\wedge (y-\eta )||det({\hat {a}},\xi ,\eta )|^{-1}}$

${\displaystyle (12)\qquad \qquad |a|=\sin(\theta /2)\qquad \qquad \alpha =[1-\sin ^{2}(\theta /2)]^{1/2}}$

The formulas (2), (6), (11), (12) answer the question. The detailed evaluations offer no complications. It is useful to remember that :

${\displaystyle (13)\qquad \qquad [(x-\xi )\wedge (y-\eta )]^{2}=[(x-\xi ).(y-\eta )]^{2}-(x-\xi )^{2}(y-\eta )^{2}\leqslant 0}$

The GA method offers many advantages, the most obvious being the immediate geometric knowledge of the attitude of (f) versus (e). The easy interpolation of trajectories is another one, etc ...

Chessfan (talk) 15:02, 4 August 2010 (UTC)Chessfan (talk) 07:44, 19 September 2013 (UTC)Chessfan (talk) 07:07, 20 September 2013 (UTC)

Chessfan thank you for your contributions. Please feel free to make a pdf of your method and post it in the external links section. Also feel free to improve the article any way you see fit however keep in mind that too many formulas on the article could discourage some readers. Jubeidono (talk) 15:22, 15 February 2011 (UTC)

It is the method upon which the GetRotationMatrix() method of the Android API is based, in which the orientation of the device is calculated based on the vectors from the accelerometer and the magnetometer.

True or not this is obscure, definately not for the lead if for the article at all. —Preceding unsigned comment added by 83.100.252.216 (talk) 19:17, 27 October 2010 (UTC)