# Triad method

The TRIAD method is the earliest published algorithm for determining spacecraft attitude, which was first introduced by Harold Black in 1964. Given the knowledge of two vectors in the reference and body coordinates of a satellite, the TRIAD algorithm obtains the direction cosine matrix relating to both frames. Harold Black played a key role in the development of the guidance, navigation, and control of the U.S. Navy's Transit satellite system at Johns Hopkins Applied Physics Laboratories. TRIAD represented the state of practice in spacecraft attitude determination before the advent of Wahba's problem. and its several optimal solutions. Covariance analysis for Black's solution was subsequently provided by Markley.

## Summary

Firstly, one considers the linearly independent reference vectors ${\vec {R}}_{1}$ and ${\vec {R}}_{2}$. Let ${\vec {r}}_{1},{\vec {r}}_{2}$ be the corresponding measured directions of the reference unit vectors as resolved in a body fixed frame of reference. Following that, they are then related by the equations,
| ${\vec {R}}_{i}=A{\vec {r}}_{i}$ | (1) |
for $i=1,2$, where $A$ is a rotation matrix (sometimes also known as a proper orthogonal matrix, i.e., $A^{T}A=I,det(A)=+1$). $A$ transforms vectors in the body fixed frame into the frame of the reference vectors. Among other properties, rotational matrices preserve the length of the vector they operate on. Note that the direction cosine matrix $A$ also transforms the cross product vector, written as,
| ${\vec {R}}_{1}\times {\vec {R}}_{2}=A\left({\vec {r}}_{1}\times {\vec {r}}_{2}\right)$ | (2) |
TRIAD proposes an estimate of the direction cosine matrix $A$ as a solution to the linear system equations given by
| $\left[{\vec {R}}_{1}~\vdots ~{\vec {R}}_{2}~\vdots ~\left({\vec {R}}_{1}\times {\vec {R}}_{2}\right)\right]=A\left[{\vec {r}}_{1}~\vdots ~{\vec {r}}_{2}~\vdots ~\left({\vec {r}}_{1}\times {\vec {r}}_{2}\right)\right]$ | (3) |
where $\vdots$ have been used to separate different column vectors.
The solution presented above works well in the noise-free case. However, in practice, ${\vec {r}}_{1},{\vec {r}}_{2}$ are noisy and the orthogonality condition of the attitude matrix (or the direction cosine matrix) is not preserved by the above procedure. TRIAD incorporates the following elegant procedure to redress this problem. To this end, one defines unit vectors,
| ${\hat {S}}={\frac {{\vec {R}}_{1}}{||{\vec {R}}_{1}||}}$ | (4) |
| ${\hat {s}}={\frac {{\vec {r}}_{1}}{||{\vec {r}}_{1}||}}$ | (5) |
and
| ${\hat {M}}={\frac {{\vec {R}}_{1}\times {\vec {R}}_{2}}{||{\vec {R}}_{1}\times {\vec {R}}_{2}||}}$ | (6) |
| ${\hat {m}}={\frac {{\vec {r}}_{1}\times {\vec {r}}_{2}}{||{\vec {r}}_{1}\times {\vec {r}}_{2}||}}$ | (7) |
to be used in place of the first two columns of equation (3). Their cross product is used as the third column in the linear system of equations obtaining a proper orthogonal matrix for the spacecraft attitude given by the following:
| $\left[{\hat {S}}~\vdots ~{\hat {M}}~\vdots ~{\hat {S}}\times {\hat {M}}\right]=A\left[{\hat {s}}~\vdots ~{\hat {m}}~\vdots ~{\hat {s}}\times {\hat {m}}\right]$ | (8) |
While the normalizations of equations (4) - (7) are not necessary, they have been carried out to achieve a computational advantage in solving the linear system of equations in (8). Thus an estimate of the spacecraft attitude is given by the proper orthogonal matrix as
| ${\hat {A}}=\left[{\hat {S}}~\vdots ~{\hat {M}}~\vdots ~{\hat {S}}\times {\hat {M}}\right].\left[{\hat {s}}~\vdots ~{\hat {m}}~\vdots ~{\hat {s}}\times {\hat {m}}\right]^{T}$ | (9) |
Note that computational efficiency has been achieved in this procedure by replacing the matrix inverse with a transpose. This is possible because the matrices involved in computing attitude are each composed of a TRIAD of orthonormal basis vectors. "TRIAD" derives its name from this observation.

## TRIAD Attitude Matrix and Handedness of Measurements

It is of consequence to note that the TRIAD method always produces a proper orthogonal matrix irrespective of the handedness of the reference and body vectors employed in the estimation process. This can be shown as follows: In a matrix form given
| $\Gamma =A\Delta$ | (10) |
where $\Gamma :=\left[{\hat {S}}~\vdots ~{\hat {M}}~\vdots ~{\hat {S}}\times {\hat {M}}\right]$ and $\Delta =\left[{\hat {s}}~\vdots ~{\hat {m}}~\vdots ~{\hat {s}}\times {\hat {m}}\right].$ Note that if the columns of $\Gamma$ form a left-handed TRIAD, then the columns of $\Delta$ are also left-handed because of the one-one correspondence between the vectors. This is because of the simple fact that, in Euclidean geometry, the angle between any two vectors remains invariant to coordinate transformations. Therefore, the determinant $det\left(\Gamma \right)$ is $1$ or $-1$ depending on whether its columns are right-handed or left-handed respectively (similarly, $\Delta =\pm 1$ ). Taking determinant on both sides of the relation in Eq. (10), one concludes that
| $det\left(A\right)=1.$ | (11) |
This is quite useful in practical applications since the analyst is always guaranteed a proper orthogonal matrix irrespective of the nature of the reference and measured vector quantities.

## Applications

TRIAD was used as an attitude determination technique to process the telemetry data from the Transit satellite system (used by the U.S. Navy for navigation). The principles of the Transit system gave rise to the global positioning system satellite constellation. In an application problem, the reference vectors are usually known directions (e.g. stars, Earth magnetic field, gravity vector, etc.). Body fixed vectors are the measured directions as observed by an on-board sensor (e.g. star tracker, magnetometer, etc.). With advances in micro-electronics, attitude determination algorithms such as TRIAD have found their place in a variety of devices (e.g. smart phones, cars, tablets, UAVs, etc.) with a broad impact on modern society.