arXiv · 2611.03957
A Modular Open-Source Python Framework for Small Satellite Attitude Determination and Control
Abstract
Advanced attitude determination and control (ADCS) techniques can be difficult for small satellite teams to adopt: tightly coupled implementations require substantial code changes to evaluate different actuators, sensors, orbits, mission goals, and control laws. Existing tools often emphasize orbit mechanics or flight software rather than closed-loop ADCS. This paper presents an open-source, modular ADCS framework in pure Python for rapid development, repeatable testing, and flight-oriented integration across heterogeneous spacecraft. The package supports torque- and command-level control, bound-respecting allocation, and full- and reduced-attitude objectives. Interchangeable estimation, control, planning, and actuator/sensor modules are reconfigured through configuration changes. Integrated simulation includes attitude and orbit propagation, sensor and actuator bias and noise, and environmental disturbances. An actuator-aware planner supports underactuated architectures, while hardware-in-the-loop (HIL) capability enables testing on mission-representative computers. Case studies include a 3U CubeSat with three magnetorquers and one reaction wheel, a magnetorquer-only 1U, and a 6U with three reaction wheels and thrusters. These demonstrate actuator and sensor failures, full- and reduced-attitude goals, and momentum management. HIL testing on a Raspberry Pi uses the same package. Adapting a published control law to a new actuator configuration requires fewer than five lines of configuration changes. The framework underpins flight software for an Earth-observing CubeSat with visible and long-wave infrared imagers, three magnetorquers, and one reaction wheel, without star trackers or propulsion.
Explore related subjects
Keep this discovery
Explore connections, maps & timelines
Patrick McKeen, Niclas Scheuer, Kerri Cahoy. 2026-11-02. A Modular Open-Source Python Framework for Small Satellite Attitude Determination and Control. https://arxiv.org/abs/2611.03957
Cite the original work for its findings. Save a collection to share your selection of sources.