Module: chebyPosEphem
Executive Summary
This module allows the user to specify a set of Chebyshev coefficients to fit a space ephemeris trajectory. Next the input time is used to determine where a given body is in space.
Message Connection Descriptions
The following table lists all the module input and output messages. The module msg connection is set by the user from python. 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 |
---|---|---|
posFitOutMsg |
output navigation message for pos/vel |
|
clockCorrInMsg |
clock correlation input message |
Functions
-
void SelfInit_chebyPosEphem(ChebyPosEphemData *configData, int64_t moduleID)
This method creates the output navigation message (translation only) for the ephemeris model
- Parameters:
configData – The configuration data associated with the ephemeris model
moduleID – The Basilisk module identifier
- Returns:
void
-
void Update_chebyPosEphem(ChebyPosEphemData *configData, uint64_t callTime, int64_t moduleID)
This method takes the current time and computes the state of the object using that time and the stored Chebyshev coefficients. If the time provided is outside the specified range, the position vectors rail high/low appropriately.
- Parameters:
configData – The configuration data associated with the ephemeris model
callTime – The clock time at which the function was called (nanoseconds)
moduleID – The Basilisk module identifier
- Returns:
void
-
void Reset_chebyPosEphem(ChebyPosEphemData *configData, uint64_t callTime, int64_t moduleID)
This method takes the chebyshev coefficients loaded for the position estimator and computes the coefficients needed to estimate the time derivative of that position vector (velocity).
- Parameters:
configData – The configuration data associated with the ephemeris model
callTime – The clock time at which the function was called (nanoseconds)
moduleID – The Basilisk module identifier
- Returns:
void
-
struct ChebyEphemRecord
- #include <chebyPosEphem.h>
Structure that defines the layout of an Ephemeris “record.” This is basically the set of coefficients for the body x/y/z positions and the time factors associated with those coefficients.
Public Members
-
uint32_t nChebCoeff
[-] Number chebyshev coefficients loaded into record
-
double ephemTimeMid
[s] Ephemeris time (TDB) associated with the mid-point of the curve
-
double ephemTimeRad
[s] “Radius” of time that curve is valid for (half of total range
-
double posChebyCoeff[3 * MAX_CHEB_COEFF]
[-] Set of chebyshev coefficients for position
-
double velChebyCoeff[3 * MAX_CHEB_COEFF]
[-] Set of coefficients for the velocity estimate
-
uint32_t nChebCoeff
-
struct ChebyPosEphemData
- #include <chebyPosEphem.h>
Top level structure for the Chebyshev position ephemeris fit system. e.
Public Members
-
EphemerisMsg_C posFitOutMsg
[-] output navigation message for pos/vel
-
TDBVehicleClockCorrelationMsg_C clockCorrInMsg
clock correlation input message
-
ChebyEphemRecord ephArray[MAX_CHEB_RECORDS]
[-] Array of Chebyshev records for ephemeris
-
uint32_t coeffSelector
[-] Index in the ephArray that we are currently using
-
EphemerisMsgPayload outputState
[-] The local storage of the outgoing message data
-
BSKLogger *bskLogger
BSK Logging.
-
EphemerisMsg_C posFitOutMsg