This repository contains a demonstrator project for an Attitude Determination and Control System (ADCS) applied to a CubeSat. The goal is to provide a learning and portfolio project that showcases skills in dynamics modeling, control, and sensor fusion, relevant for aerospace and defense applications.
This project has not been updated in a long time and latest updates are still to be validated and pushed
- CubeSat rotational dynamics simulation (Euler’s equations)
- PD controller for attitude stabilization
- Simulated sensors: gyroscope, magnetometer, sun sensor
- Extended Kalman Filter (EKF) for sensor fusion and state estimation
- Visualization of results: angles, angular velocities, estimation errors
python adcs_simulation.pyOutputs:
- Attitude dynamics with external disturbances
- Stabilization using PD control
- Plots of true angles vs controlled response
python ekf_estimation.pyOutputs:
- Simulated noisy sensor measurements
- EKF estimates of angle and angular velocity
- Comparison plots (true vs estimated states)
cubesat-adcs/
│
├── adcs_simulation.py # CubeSat dynamics + PD controller
├── ekf_estimation.py # EKF-based attitude estimation
│
├── plots/ # Saved figures from simulations
├── docs/ # Background notes and references
└── README.md
- CubeSat stabilizes to target attitude despite disturbances
- Response plotted as angle vs time
- EKF successfully tracks true angle and angular velocity
- Estimation error decreases over time despite sensor noise
- Add advanced controllers (LQR, Sliding Mode)
- Include realistic perturbations (gravity gradient, aero, solar pressure)
- Full CubeSat mission simulation
With this personal project I try to demonstrate practical skills in nonlinear dynamics modeling, real-time control laws, sensor fusion with Kalman filtering, documentation and reproducibility of simulations.
It serves as a portfolio project for applications in aerospace and defense industries.
- Markley & Crassidis, Fundamentals of Spacecraft Attitude Determination and Control
- Schaub & Junkins, Analytical Mechanics of Space Systems
- Simon, Optimal State Estimation
Created by Riccardo Legnini.
Feel free to connect via LinkedIn or open an issue for discussion!