About this project

Generalized ADCS is an open-source Python framework designed for satellite attitude determination and control systems (ADCS), targeting research, prototyping, and flight-software development. It emphasizes generality, modularity, and transparency for modern spacecraft control and estimation workflows. Key features include fully generalized 6-DOF spacecraft attitude dynamics with RK4 integration, generalized orbit propagation, estimation frameworks (UKF, SRUKF, UAKF, SRUAKF, orbital estimators, custom filters), controller frameworks (PD, LQR, ALTRO, user-defined), sensor modeling (magnetometers, gyroscopes, sun sensors, GPS), and actuator modeling (reaction wheels, magnetorquers). It supports underactuated and overactuated systems and includes a growing catalog of CubeSat-scale components. Spacecraft states are represented via ADCS.State (angular velocity, quaternion, reaction-wheel momentum), with estimators using ADCS.EstimatorState for physical state, parameters, and covariance. Explicit array conversions preserve numerical ordering at SciPy and native-planner boundaries. Optional C++ add-ons (trajectory_planner, SALTRO) are available but not required for core functionality. Installation is via pip (Python 3.10+), with extras for visualization, development, docs, and C++ toolchain. The project is based on PhD research by Patrick McKeen and has been presented at SmallSat conferences.