Fuse magnetometer, gyroscope, and coarse sun sensor data with a compact ML model to estimate attitude. Compare accuracy and stability against a classical filter approach using the same sensors.
Fuse magnetometer, gyroscope, and coarse sun sensor data with a compact ML model to estimate attitude. Compare accuracy and stability against a classical filter approach using the same sensors.
This is an advanced-level project with an estimated timeline of 16-22 months using a 0.5U form factor.
Determining a satellite's orientation in space its attitude is essential for pointing instruments, antennas, and solar panels in the right direction. Traditional approaches use well-established mathematical filters that combine magnetometer, gyroscope, and sun sensor data with physical models of Earth's magnetic field and the Sun's position. These work well when the models are accurate and the sensors are well-calibrated, but they degrade when conditions change sensor drift over time, magnetic interference from the satellite itself, or operating in unusual orbital regimes. A machine learning approach trains a model to map raw sensor readings directly to attitude estimates, potentially learning to compensate for systematic errors and sensor imperfections that classical filters cannot easily handle. This experiment runs both approaches simultaneously on the same sensor data, comparing accuracy, stability, computational cost, and robustness to sensor noise. The result is a rigorous head-to-head comparison with real orbital data a publishable contribution to the growing literature on ML-assisted spacecraft autonomy. The project requires knowledge of both spacecraft dynamics and machine learning, making it one of the more technically demanding options in the catalog.
Fuse data from PyCubed onboard IMU (ICM-20948 magnetometer + gyroscope) and coarse sun sensor (project 18 or simple photodiode array) using a compact neural network trained to output attitude quaternion. Compare against classical Extended Kalman Filter (EKF) or TRIAD algorithm using same sensor inputs. Train on simulated attitude data from 42 (NASA) or Basilisk (CU Boulder) attitude simulation tools. Deploy quantized model on ESP32-S3. Log both ML and classical estimates for ground truth comparison using star tracker or GPS-derived attitude if available.
Attitude determination is a core CubeSat challenge. Classical approaches (EKF, UKF, TRIAD) are well-understood but sensitive to sensor calibration errors and magnetic field model accuracy. ML approach potentially more robust to sensor drift and model uncertainty. CU Boulder has published on neural network attitude estimation for CubeSats. Key challenge: training data must be realistic requires validated attitude simulator. Basilisk (open-source, CU Boulder) or 42 (NASA Goddard, open-source) provide simulation environments. Publishable if ML approach shows measurable improvement over classical filter. Cost: $50-$200 (mostly software, may need ESP32-S3). Complexity: advanced requires spacecraft dynamics knowledge + ML + embedded systems.
This project spans 5 disciplines, making it suitable for interdisciplinary student teams.
Ready to take on this project? Here's a general roadmap that applies to most CubeSat missions:
Connect with a Blackwing chapter for mentorship, platform access, and a path to orbit.