This page describes the architecture for the Guidance, Navigation, and Control (GNC) system for the Sequoia project. Since this system is primarily focused on determining and controlling attitude, we also may refer to it as ADCS.

Sequoia GNC Onboarding

No matter what background you have, you can contribute to Sequoia GNC! You can learn about the intersection between physics, CS, and engineering and especially control theory. Here's a few aspects of our system we currently need someone to work on:

Chose a Project!
Project Background Skills/Knowledge Involved
Write Script to Evaluate Kalman Filter Performance A Kalman Filter is an algorithm that takes a series of noisy measurements from multiple sources over time, adds in some physics and probability theory, and estimates the current state of the satellite, with uncertainties. Currently, we have an in-progress code that simulates the physics of the satellite's rotation and a Kalman filter that gets simulated measurements from that code and estimates the orientation of the satellite. However, we need a code that runs the Kalman filter multiple times in different scenarios and evaluates its performance. This will be needed as we progress with the Kalman Filter development to evaluate its performance and identify problems. Basic knowledge of coding (particularly Python), physics, and probability theory are helpful, but by no means necessary. We expect that this project will be a good chance to learn about these.
Write Code to Simulate Star Images to test the Star Tracker A star tracker takes pictures of the sky and identifies constellations of stars in the images to determine the orientation of the camera that took the image, an, by extension, the satellite. We need a comprehensive package that helps us test the performance of the star tracker. Working on this project can involve designing and coding up plots and other diagnostics as well as testing our code on real images of the sky in addition to (later on) simulating synthetic images of the sky that take into account the properties of our camera. We will explain all the plots and diagnostics necessary for star tracker development and guide you through how to use all of the image analysis and simulation packages. Over time, we expect you will learn about how to use these tools and how the star tracker works. In addition, this project is a great way to learn about positional and photometric astronomy, image analysis, and some miscellaneous computer science and probability stuff used in astronomy, image processing, and elsewhere.
Design Binary Message Format to Send Compressed GNC Messages between Microcontrollers Example Example
Write Algorithm to Search Nearby Magnetic Field Map to Determine Location based on Measured Magnetic Field Duck Duck
Write Python B-dot Algorithm Routine Duck Duck
Write an Evaluation Pipeline for Star Tracker Algorithm Duck Duck
Write/improve our plotting software for satellite orbits and learn about orbital mechanics on the way! Duck Duck
Something New! We are always looking for better ideas for our sattelite! Either better ways to achieve our current aims or (potentially) adding some new feature you want to work on. We do not know what skills will be involved but we guess that churning butter will not be one of them.

If you're interested in working on the GNC components of the satellite, you can email the leads Alec Lessing (aml2023@stanford.edu) or Rodrigo Castellon (rjcaste@stanford.edu)!

Overview of Sequoia GNC Architecture

Below is a diagram of our GNC architecture for the Sequoia satellite. Our system is split between two microcontrollers (PyCubed and Raspberry Pi), with more computation-heavy algorithms running on the Raspberry Pi.