Generalized ADCS is a Python framework for satellite attitude determination and control (ADCS), designed for research, prototyping, and flight-software development. The framework emphasizes generality, modularity, and transparency for modern spacecraft control and estimation workflows.
🛠 Documentation • 📘 Installation • 🧪 Tutorials • 🤝 Contributing
pip install generalized-adcsOptional extras: viz (3-D orbit animation), dev (test tooling), docs
(documentation build), cpp (toolchain for the optional C++ add-ons).
pip install "generalized-adcs[viz]"Requires Python 3.10 or newer. For deterministic reproduction of published
campaign results, see requirements-repro.txt in the repository.
- ✅ Fully generalized 6-DOF spacecraft attitude dynamics (RK4 integration)
- ✅ Fully generalized orbit propagation
- ✅ Estimation frameworks: EKF, MEKF, UKF, SRUKF, augmented EKF/MEKF/UKF/SRUKF, orbital estimators, and custom filters
- ✅ Controller frameworks: PD, LQR, ALTRO, and user-defined controllers
- ✅ Sensor modeling: magnetometers, gyroscopes, sun sensors, GPS
- ✅ Actuator modeling: reaction wheels and magnetorquers
- ✅ Growing catalog of CubeSat-scale sensors and actuators
- ✅ Designed for underactuated and overactuated systems
Optional add-ons:
- trajectory_planner (tplaunch/pysat) and SALTRO (saltro_py) are optional C++ extensions.
- Core ADCS functionality works without them.
- Build instructions are in docs/Install_WSL.md and docs/Install_Windows.md.
- A Modular Open-Source ADCS Framework for Small Satellite Development and Testing — presented at SmallSat Europe 2026 in Amsterdam, Netherlands.
- Generalized Attitude Control for Small Spacecraft — presented at the 40th Annual Small Satellite Conference, Poster Session 2, in Salt Lake City, Utah.
- A Feasibility-Aware Attitude Trajectory Planner for Small Satellites — presented at the 40th Annual Small Satellite Conference, Flash Talks Session 3, in Salt Lake City, Utah.
This project is based on the PhD research of Patrick McKeen:
- 🔗 Source Code:
https://github.com/patrickmckeen/PhD_Dissertation_Code - 📄 Dissertation:
Computational Methods to Improve Satellite Attitude Determination and Control with a Focus on Autonomy, Generalizability, and Underactuation
https://dspace.mit.edu/handle/1721.1/158874