Table of Contents

Software: Relative Pointing

Description

This module is designed to work as the pointing program in an ADCS software chain as shown in the figure below.

Untitled

This model provides a general method to establish a pointing frame between two known positions. Specifically, this module constructs a reference frame \(\mathcal{R}\) that aligns a vector (\(^\mathcal{B}\mathbf{a}\)) defined by the user in the body frame \(\mathcal{B}\) of the parent object with a vector that points to a target object (\(^\mathcal{B}\mathbf{p}\)) in the body frame.

Example Use Cases

  • Space-based Observations: Establish a pointing reference frame between a nearby space object and an on-board sensor.
  • Terrestrial Observations: Establish a pointing reference frame between a plane based on received ADS-B (flight tracking) position information.

Module Implementation

The relative pointing frame is constructed about a principle pointing axis, which is derived from the inertial position of the parent spacecraft \(^\mathcal{N}\mathbf{r}_{p}\) and target \(^\mathcal{N}\mathbf{r}_{t}\):

\[ ^\mathcal{N}\mathbf{\hat{p}} = \frac{^\mathcal{N}\mathbf{r}_{p}-^\mathcal{N}\mathbf{r}_{t}}{||^\mathcal{N}\mathbf{r}_{p} - ^\mathcal{N}\mathbf{r}_{t}||} \]

A coordinate system about this principle axis is then built such that:

\[ \mathbf{\hat{x}} = \mathbf{\hat{p}} \\ \mathbf{\hat{y}} = \mathbf{\hat{z}}\times \mathbf{\hat{p}} \\ \mathbf{\hat{z}} = \mathbf{\hat{x}} \times \mathbf{\hat{y}} \]

Where \(\mathbf{\hat{z}} = [0, 0, 1]^T\) and the DCM is \([RN]=[\mathbf{\hat{x}}^T, \mathbf{\hat{y}}^T, \mathbf{\hat{z}}^T]\). The angular velocity of the frame may then simply be calculated from the time-step \(t\) as:

\[ \dot{\sigma}_{RN} = \frac{\sigma_{RN}(t) - \sigma_{RN}(t-1)}{\Delta t} \]

Using this result, and applying equation 3.164 in [1], the angular velocity of the \(\mathcal{R}\) frame with respect to \(\mathcal{N}\) in the \(\mathcal{R}\) frame components may be computed as:

\[ ^\mathcal{R}\omega_{RN}=\frac{4}{(1+\sigma^2)^2}\left[(1-\sigma^2)[I_{3\times3}]-2[\sigma]+2\sigma \sigma^T\right]\dot{\sigma}_{RN} \]
\[ ^\mathcal{N}\dot{\omega}_{RN} = \frac{^\mathcal{N}\omega_{RN}(t) - ^\mathcal{N}\omega_{RN}(t-1)}{\Delta t} \]

The above definitions will align the reference frame's x-axis with the target. To align with a user-specific vector, we create a second coordinate frame \(R_1\). In the case that the \(\mathcal{B}\) frame aligns with the \(R_1\) frame, \(^\mathcal{B}\mathbf{a}\) has to align with \(^\mathcal{N}\mathbf{p}\). For this reason, an \(\mathcal{A}\) frame is built around the \(^\mathcal{B}\mathbf{a}\) vector, such that:

\[ \mathbf{\hat{x}} = \mathbf{\hat{a}} \\ \mathbf{\hat{y}} = \mathbf{\hat{z}}\times \mathbf{\hat{a}} \\ \mathbf{\hat{z}} = \mathbf{\hat{x}} \times \mathbf{\hat{y}} \]

where all the above are in \(\mathcal{B}\). The resultant DCM \([AB]=[\mathbf{\hat{x}}^T, \mathbf{\hat{y}}^T, \mathbf{\hat{z}}^T]\). Converting to MRPs, the final rotation between \(\mathcal{R}_1\) and \(\mathcal{N}\) is simply:

\[ \sigma_{R_1N} = \sigma_{RN} + \sigma_{BA} \]

The angular velocity and angular acceleration remain the same.

References

[1] Hanspeter Schaub and John L. Junkins. Analytical Mechanics of Space Systems. AIAA Education Series, Reston, VA, 3rd edition, 2014.