timeClosestApproach#
Executive Summary#
This module computes the time of closest approach estimation and its covariance during a rectilinear flyby. It was written based on the paper “Attitude Uncertainty Quantification Of Rectilinear Asteroid Flyby For The Emirates Mission Th The Asteroid Belt” that was presented by Thibaud Teil and Riccardo Calaon in 2023. Because the filter may not estimate both position and velocity, the TCA module uses the navigation message as well which is populated regardless of the filter state vector. It then checks the size of the state to perform the covariance mapping.
Message Connection Descriptions#
The following table lists all the module input and output messages. The msg type contains a link to the message structure definition, while the description provides information on what this message is used for.
Msg Variable Name |
Msg Type |
Description |
---|---|---|
filterInMsg |
FilterMsgPayload |
Input message containing the relative spacecraft state (position and velocity) and it’s covariance. “of the spacecraft with respect to the small body, estimated from a filter” |
navFilterMsg |
NavTransMsgPayload |
Input message containing the spacecraft navigation information. All information is present regardless of what the filter estimates. |
tcaOutMsg |
TimeClosestApproachMsgPayload |
Output time of closest approach message containing time of closest approach during the flyby and the covariance. |
Detailed Module Description#
The relative position and velocity vector and the covariance of the spacecraft with respect to the small body are obtained as filter estimates. The input parameter filterInMsg
that provides an initial spacecraft state and covariance. This module assumes a rectilinear flyby and receives a current state and output the time of closest approach estimate and it’s covariance.
Rectilinear Motion Model#
In this case the flyby is modeled as rectilinear motion of the spacecraft, i.e., the spacecraft moves with a constant velocity. At every filter read, the relative position and velocity vectors \(\boldsymbol{r}\) and \(\boldsymbol{v}\) of the spacecraft with respect to the small body are provided. The following coefficients are defined: the flight path angle \(\gamma_0= \theta - \frac{\pi}{2}\) of the spacecraft, and the ratio between velocity and radius magnitudes \(f_0 = \frac{v_0}{r_0}\). From these quantities, the angle between -\(\boldsymbol{r}\) and \(\boldsymbol{v}\) of the spacecraft with the respect to the asteroid which is defined as \(\theta\) the following equation shows how it can be found:
By replacing the values of \(\gamma_0\) and \(f_0\) we can obtain the time of closest approach through this equation:
The following equation solves for time of closest approach uncertainty where \(P\) is the spacecraft state covariance.
The covariance mapping only occurs with the position components if the covariance is a 3x3 matrix, meaning the filter only estimated the position
Module Assumptions and Limitations#
This module assumes the flyby to be a rectilinear motion of the spacecraft, meaning the spacecraft moves with a constant velocity. The limitations of this module are inherent to the geometry of the problem, which determines whether or not all the constraints can be satisfied. For example, one constraint for this module to work is that the target should have a small gravitational influence, implying its mass is relatively low. Another constraint is that the distance between the target and the spacecraft should be large enough to minimize the gravitational effects of the target on the spacecraft
User Guide#
The required module configuration is:
tca_module = timeClosestApproach.TimeClosestApproach()
tca_module.modelTag = "TimeClosestApproach"
unitTestSim.AddModelToTask(unitTaskName, tca_module)
The module is configurable with the following parameters:
Parameter |
Default |
Description |
---|---|---|
|
π / 2 |
The flight path angle is the orientation of the velocity vector with the respect to the position vector. |
|
0 |
Ratio between relative velocity and position norms at time of read |
|
0 |
Time of closest approach. |
|
0 |
Standard deviation of Time closest approach |
Class TimeClosestApproach#
-
class TimeClosestApproach : public SysModel#
A class to perform time of closest approach estimation during a rectilinear flyby.
Public Functions
-
TimeClosestApproach()#
Module constructor
-
~TimeClosestApproach() override#
Module destructor
-
void updateState(uint64_t currentSimNanos) override#
This method is the main carrier for the time of closest approach calculation
- Parameters:
currentSimNanos – The current simulation time for system
- Returns:
void
-
TimeClosestApproach()#