Skip to content

Mission Modes

Lauren Greenhill edited this page Feb 5, 2023 · 17 revisions

Class Contents

virtual void transition_to()

  • Sets all relevant settings in the SFR. Optionally sets the start time of the mode

virtual void dispatch()

  • Checks exit conditions

float start_time

void set_start_time(float new_start_time)

  • Stores when the mission mode started

virtual int get_id()

  • Returns numerical representation of mode for comparisons

virtual mode_type get_type()

  • Returns either NORMAL, TRANSMIT, LP, or OTHER

Mission Mode State Machine

Description of settings

Exchange between Low Power and Non-Low Power Modes

  • If currently in an Low Power mode, exit is the voltage sensor readings are valid and greater than 3.9V
  • If currently in a Non-Low Power Mode, exit if voltage sensor readings are invalid OR voltage sensor readings are valid and below 3.75V

Exchange between ACS and Non-ACS modes

  • If currently in an ACS mode, exit if the ACS mode max time has passed
  • If currently in a non ACS mode, exit if (orbit period - the ACS mode max time) has passed

For example, if the orbit period is 100 minutes and the ACS mode max time is 5 minutes, exit the ACS mode after 5 minutes and the non ACS mode after the next 95 minutes.

RockBLOCK Functionality

  • Downlinks if downlink period has been reached and in a transmit mode (normal report)
  • Downlinks if in a transmit mode and report is ready (imu and camera reports)
  • If RockBLOCK downlink hard faults once exit the transmit mode
  • In low power mode only allow normal reports
  • One downlink period but alternate between the types of reports
  • Reset downlink period if
    • have been attempting to downlink for 1 minute
    • successfully downlinked
    • hard faulted twice

TODO: Consider what happens if there are messages in the buffer when we downlink

Initialization

Exit conditions for Boot:

  • Two hours have elapsed

Exit conditions for Alive Signal and Low Power Alive Signal:

  • X minutes have elapsed in Alive Signal and/or Low Power Alive Signal
  • RockBLOCK downlink hard faults
Mode Description RockBLOCK Status ACS Mode IMU Status
Boot The RockBLOCK may not be on during this time due to CubeSat's proximity to the ISS. Sleep mode Off Off
Alive Signal This mode allows us to communicate with the CubeSat at one time before the ACS is activated. Attempting to successfully downlink once Off Off
Low Power Alive Signal This is the power saving version of Alive Signal. Attempting to successfully downlink once Off Off

Stabilization

Stabilization phase exit conditions:

  • IMU values determine that the CubeSat is stable
  • X minutes have elapsed in the Stabilization phase
Mode Description RockBLOCK Status ACS Mode IMU Status
Detumble & Spin This mode gives an opportunity for spin stabilization at the beginning of the mission. Sleep mode Detumble & Spin On
Low Power Detumble & Spin This is the power saving version of Detumble & Spin. Sleep mode Off Off

Standby

Standby phase exit conditions:

  • Deployment command received
  • X minutes have elapsed in the Standby phase
Mode Description RockBLOCK Status ACS Mode IMU Status
Normal The CubeSat performs Sleep mode Pointing or Simple On
Transmit TODO Downlink period of X minutes Off Off
Low Power TODO Downlink period of X minutes Off Off

Deployment

Deployment phase exit conditions:

  • Armed command received
  • X minutes have elapsed in the Deployment phase
Mode RockBLOCK Status ACS Mode IMU Status
Deployment Normal Sleep mode Pointing or Simple On
Deployment Transmit Downlink period of X minutes Off Off
Deployment Low Power Downlink period of X minutes Off Off

Armed

Armed phase exit conditions:

  • Fire command received
  • X minutes have elapsed in the Armed phase
Mode RockBLOCK Status ACS Mode IMU Status
Armed Normal Sleep Mode Pointing or Simple On
Armed Transmit Downlink period of X minutes Off Off
Armed Low Power Downlink period of X minutes Off Off

In Sun

In Sun phase exit conditions:

  • Temperature sensor readings are valid and the temperature determines the CubeSat is in sun
  • Temperature sensor readings are invalid, current sensor readings are valid and current determines the CubeSat is in sun
  • Temperature sensor readings are invalid and temperature sensor readings are invalid
  • X minutes have elapsed in the Armed phase
Mode RockBLOCK Status ACS Mode IMU Status
In Sun Normal Sleep mode Pointing or Simple On
In Sun Transmit Downlink period of X minutes Off Off
In Sun Low Power Downlink period of X minutes Off Off
In Sun Voltage Sensor Fault Downlink period of X minutes Off Off

Firing

Mode RockBLOCK Status ACS Mode IMU Status
Turn on Camera Sleep mode Off Off
Mandatory Burns Sleep mode Off On
Regular Burns Sleep mode Off On
Take Photo Sleep mode Off On

Diagram with entrance and exit conditions

Fix diagram to show transitions between each version of each mode rather than default mode

mission_modes-Page-2 drawio

Diagram notes

The transition from Mandatory Burns to Regular Burns is when the burn cycle has been completed X times.

Outstanding Questions

  • Should alive signal allow for multiple RockBLOCK hard faults?

    • Allow for 3 hard faults
  • Should IMU be on during boot?

    • IMU off
  • How does the IMU determine the CubeSat is stable during Detumble & Spin?

    • Good : gyro z > 1 rad/s && gyro x and gyro y are below 0.2 rad/s
    • So Bad : x gyro or y gyro are greater than 0.7 rad/s
  • What are all of the downlink period/timeouts?

    • detumble & spin timeout after 30 minutes
  • How do timeouts for phases work?

    • if armed times out go back to deployment mode
  • If IMU is in invalid state in detumble and spin do we just keep attempting reinitialization until the phase times out? How does that work with the power budget

    • retry imu initialization 5 times and then exit
    • times out
    • gyro values discussed
  • Should we always ignore the photoresistor?

    • button OR photoresistor- neither has precedence
  • If temperature sensor readings are invalid and current sensor readings are invalid should we really proceed straight from in sun?

    • we would know in armed if they were invalid so we know that we are overriding them
  • transition from pointing to simple

    • x gyro or y gyro are greater than 0.2 rad/s
  • no timeout for deployment phase

  • stay in armed for 48 hours

Clone this wiki locally