Module: boreAngCalc
Executive Summary
A class to perform a range of boresight related calculations. The module PDF Description
contains further information on this module’s function, how to run it, as well as testing.
Message Connection Descriptions
The following table lists all the module input and output messages. The module msg variable name 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 |
---|---|---|
scStateInMsg |
spacecraft state input message |
|
celBodyInMsg |
(optional) celestial body state msg at which we pointing at |
|
angOutMsg |
bore sight output message |
-
class BoreAngCalc : public SysModel
- #include <boreAngCalc.h>
A class to perform a range of boresight related calculations.
Public Functions
-
BoreAngCalc()
The constructor. Note that you have to overwrite the message names.
-
~BoreAngCalc()
The destructor.
-
void Reset(uint64_t CurrentSimNanos)
This method is used to reset the module.
- Returns:
void
-
void UpdateState(uint64_t CurrentSimNanos)
This method is the main carrier for the boresight calculation routine. If it detects that it needs to re-init (direction change maybe) it will re-init itself. Then it will compute the angles away that the boresight is from the celestial target.
- Parameters:
CurrentSimNanos – The current simulation time for system
- Returns:
void
-
void computeCelestialAxisPoint()
This method computes the vector specified in the input file in the LVLH reference frame of the spacecraft above the target celestial body. This is used later to compute how far off that vector is in an angular sense.
- Returns:
void
-
void computeCelestialOutputData()
This method computes the output structure for messaging. The miss angle is absolute distance between the desired body point and the specified structural vector. The aximuth angle is the angle between the y pointing axis and the desired pointing vector projected into the y/z plane.
- Returns:
void
-
void computeInertialOutputData()
This method computes the output structure for messaging. The miss angle is computed using the body heading and the provided inertial heading
- Returns:
void
-
void WriteOutputMessages(uint64_t CurrentClock)
This method writes the output data out into the messaging system.
- Parameters:
CurrentClock – The current time in the system for output stamping
- Returns:
void
-
void ReadInputs()
This method reads the input messages in from the system and sets the appropriate parameters
- Returns:
void
Public Members
-
ReadFunctor<SCStatesMsgPayload> scStateInMsg
(-) spacecraft state input message
-
ReadFunctor<SpicePlanetStateMsgPayload> celBodyInMsg
(-) celestial body state msg at which we pointing at
-
Message<BoreAngleMsgPayload> angOutMsg
(-) bore sight output message
-
Eigen::Vector3d boreVec_B
(-) boresight vector in structure
-
Eigen::Vector3d boreVec_Po
(-) pointing vector in the target relative point frame
-
Eigen::Vector3d inertialHeadingVec_N
(-) inertial boresight vector
Private Members
-
SpicePlanetStateMsgPayload localPlanet
(-) planet that we are pointing at
-
SCStatesMsgPayload localState
(-) observed state of the spacecraft
-
BoreAngleMsgPayload boresightAng = {}
(-) Boresight angles relative to target
-
bool inputsGood = false
(-) Flag indicating that inputs were read correctly
-
bool useCelestialHeading = false
(-) Flag indicating that the module should use the celestial body heading
-
bool useInertialHeading = false
(-) Flag indicating that the module should use the inertial heading
-
BSKLogger bskLogger
— BSK Logging
-
BoreAngCalc()