🚀 Generalized ADCS
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
📦 Installation
pip install generalized-adcs
Optional 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.
✨ Key Features
- ✅ 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.
Papers
- 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.
📚 Academic Background
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
Metadata
Release files for Generalized-ADCS 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| generalized_adcs-0.2.0.tar.gz | 1.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| generalized_adcs-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.8 MB
Release files / generalized_adcs-0.2.0.tar.gz
| Download URL | generalized_adcs-0.2.0.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
19bbfbbf1912763230fe12baa7e531ab017d4b1d90517d47915393ba2b0abe68
|
|
BLAKE2b-256 checksum How to use checksums |
552a6b70d0f301347d61a7c34ab534dda0918a6b340341578c1e7909a92be5ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.
Transparency logRelease files / generalized_adcs-0.2.0-py3-none-any.whl
| Download URL | generalized_adcs-0.2.0-py3-none-any.whl |
|---|---|
| Size | 1.5 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
290c1f9e13eb9e4bba69c1c061b8d2debb1e2eb6c6f0f8bd9bd5bf90f4652ccb
|
|
BLAKE2b-256 checksum How to use checksums |
c3d8a099e5eb2c003cee7fb24c61b53d33ecba782fcb3b836272e87330b3fc9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.
Transparency log