Module: eulerRotation

This module guidance modules creates constant Euler angle rate rotations about a primary axis to create dynamic reference frames.


Functions

void SelfInit_eulerRotation(eulerRotationConfig *configData, int64_t moduleID)

This method initializes the configData for eulerRotation model. It creates the module output message.

Return

void

Parameters
  • configData: The configuration data associated with the null space control

  • moduleID: The ID associated with the configData

void CrossInit_eulerRotation(eulerRotationConfig *configData, int64_t moduleID)

This method performs the second stage of initialization for the module interface. It subscribes to the input reference frame message, and an optional desired attitude scanning message.

Return

void

Parameters
  • configData: The configuration data associated with the null space control

  • moduleID: The ID associated with the configData

void Reset_eulerRotation(eulerRotationConfig *configData, uint64_t callTime, int64_t moduleID)

This resets the module to original states.

Return

void

Parameters
  • configData: The configuration data associated with the null space control

  • callTime: The clock time at which the function was called (nanoseconds)

  • moduleID: The ID associated with the configData

void Update_eulerRotation(eulerRotationConfig *configData, uint64_t callTime, int64_t moduleID)

This method takes the input attitude reference frame, and and superimposes the dynamic euler angle scanning motion on top of this.

Return

void

Parameters
  • configData: The configuration data associated with the mrpRotation module

  • callTime: The clock time at which the function was called (nanoseconds)

  • moduleID: The ID associated with the configData

void checkRasterCommands(eulerRotationConfig *configData)

This function checks if there is a new commanded raster maneuver message available.

Return

void

Parameters
  • configData: The configuration data associated with the mrpRotation module

void computeTimeStep(eulerRotationConfig *configData, uint64_t callTime)

This function computes control update time.

Return

void

Parameters
  • configData: The configuration data associated with the mrpRotation module

  • callTime: The clock time at which the function was called (nanoseconds)

void computeEuler321_Binv_derivative(double angleSet[3], double angleRates[3], double B_inv_deriv[3][3])

This function computes the analytical derivative of the B_inv matrix for the 3-2-1 Euler Angle set.

Return

void

Parameters
  • configData: The configuration data associated with the mrpRotation module

  • angleSet[3]: 321 Euler angles

  • angleRates[3]: The 321 Euler angle rates

  • B_inv_deriv: the inv(B) matrix for 321 Euler angles

void computeEulerRotationReference(eulerRotationConfig *configData, double sigma_R0N[3], double omega_R0N_N[3], double domega_R0N_N[3], AttRefFswMsg *attRefOut)

This function computes the reference (Euler angle attitude set, angular velocity and angular acceleration) associated with a rotation defined in terms of an initial euler angle set and a constant euler angle rate.

Return

void

Parameters
  • configData: The configuration data associated with the mrpRotation module

  • sigma_R0N[3]: The input reference attitude using MRPs

  • omega_R0N_N[3]: The input reference frame angular rate vector

  • domega_R0N_N[3]: The input reference frame angular acceleration vector

  • attRefOut: The output message copy

struct eulerRotationConfig
#include <eulerRotation.h>

Top level structure for the sub-module routines.

Public Members

double angleSet[3]

[-] current euler angle 321 set R/R0 with respect to the input reference

double angleRates[3]

[rad/s] euler angle 321 rates

double cmdSet[3]

[] msg commanded initial Euler angle 321 set with respect to input reference

double cmdRates[3]

[rad/s] msg commanded constant 321 Euler angle rates

double priorCmdSet[3]

[] prior commanded 321 Euler angle set

double priorCmdRates[3]

[rad/s] prior commanded 321 Euler angle rates

uint64_t priorTime

[ns] last time the guidance module is called

double dt

[s] integration time-step

char attRefOutMsgName[MAX_STAT_MSG_LENGTH]

The name of the output message containing the Reference.

int32_t attRefOutMsgID

[-] ID for the outgoing Reference message

char attRefInMsgName[MAX_STAT_MSG_LENGTH]

The name of the guidance reference Input message.

int32_t attRefInMsgID

[-] ID for the incoming guidance reference message

char desiredAttInMsgName[MAX_STAT_MSG_LENGTH]

The name of the incoming message containing the desired EA set.

int32_t desiredAttInMsgID

[-] ID for the incoming EA set message

BSKLogger *bskLogger

BSK Logging.