Difference between revisions of "Sequoia Satellite Software"

From Stanford SSI Wiki
Jump to navigation Jump to search
Line 24: Line 24:
  
 
Keywords & Projects:
 
Keywords & Projects:
- Microservice Architecture
+
* Microservice Architecture
- Camera drivers
+
* Camera drivers
- Radio driver/comms protocol
+
* Radio driver/comms protocol
- Image processing
+
* Image processing
- Train AI models
+
* Train AI models
- Performance optimization
+
* Performance optimization
- Containerizing
+
* Containerizing

Revision as of 19:45, 22 August 2020

The software on the Sequoia satellite is designed to control the satellite and run machine learning models.

On Boarding

Help us modify our satellite to complete our mission!

Sequoia Software Technical Overview

Sequoia's software systems are logically split into two areas. There is a flight computer, the PyCubed, which controls all the low-level flight control functionality, including receiving commands from the ground, downlinking telemetry, running most GNC algorithms, controlling the power systems, and supervising our payload. The payload is a Raspberry Pi SoC that is equipped with two cameras and S-Band radio. It collects images, processes them using ML models specific to a given research objective, and downlinks the results and images over its high-bandwidth radio.


PyCubed (Flight Controller)

The PyCubed is essentially the brain of the satellite. It is a circuit board specially made (at Stanford!) for use with satellites. It is responsible for controlling things like the radio used to command the satellite and has sensors on the board to detect the satellite orientation (with the IMU) and the position (with GPS). It is written in CircuitPython, a variant of python written for use with microcontrollers. We have a board that we can use for development as well as other microcontrollers that are compatible with Circuit Python, so everyone can get their hands dirty!

Keywords & Projects:

  • State Machine
  • Radio protocol
  • GNC Integration
  • Sensor integration

Raspberry Pi (Payload)

The RaspberryPi is the payload computer: it helps us fulfill the science and technical goals we have. It is not critical to flying the satellite, but it is what makes the satellite interesting. This is where all the code relating to AI is housed, and also has the radio that sends large packets (like images) to the ground. What is even more exciting is that we implement functionality to upload new models to the satellite once it is already in orbit, making it the first truly software-defined CubeSat. The Raspberry Pi Code is mostly written in Python and follows a microservice architecture that borrows heavily from traditional robotics frameworks.

Keywords & Projects:

  • Microservice Architecture
  • Camera drivers
  • Radio driver/comms protocol
  • Image processing
  • Train AI models
  • Performance optimization
  • Containerizing