Triad is one of the earliest and simplest solutions to the spacecraft attitude determination problem,[1][2] due to Harold Black. 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. As evident from the literature, TRIAD represents the state of practice in spacecraft attitude determination, well before the advent of the Wahba's problem [3] and its several optimal solutions. Given the knowledge of two vectors in the reference and body coordinates of a satellite, the TRIAD algorithm obtains the direction cosine matrix relating both frames. Covariance analysis for Black's classical solution was subsequently provided by Markley.[4]

## Summary

We consider 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. Then they are 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, we define 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 (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

$\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. Equation(8) shows that the matrices used for computing attitude are each composed of an orthogonal triad of basis vectors. "TRIAD" derives its name from this observation.

## Triad Attitude Matrix and Handed-ness 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. Let us re-write Eq. (8) in a matrix form given by

$\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 or left - handed respectively (similarly, $\Delta = \pm 1$ ). Taking determinant on both sides of the relation in Eq. (10), we conclude 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). It is interesting to note that the principles of the Transit system gave rise to what we now know as the GPS 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 the modern society.

2. ^ Black, Harold (July–Aug 1990). "Early Developments of Transit, the Navy Navigation Satellite System". Journal of Guidance, Control and Dynamics 13 (4): 577–585. Bibcode:1990JGCD...13..577B. doi:10.2514/3.25373. Check date values in: |date= (help)