SSC26 · The code¶
Repository: https://github.com/nscheuer/Generalized_ADCS
git clone https://github.com/nscheuer/Generalized_ADCS.git
cd Generalized_ADCS
pip install .
Run the poster’s code¶
Every snippet printed on the poster is executed verbatim by a verification script:
python papers/SSC26_poster/verify_snippets.py
It exits non-zero if any printed block stops working, so the poster and the library cannot drift apart.
Where each stage lives¶
Note
The adapter’s source sits under papers/Generalized_ACS/pipeline/ because
it is that paper’s artifact, while installing and importing as
ADCS.pipeline — so pip install generalized-adcs gives you the
adapter either way. The legacy controllers
(ADCS/controller/mtq_w_rw_LP.py and friends) remain as the validated
baselines it is checked against.
Stage |
Module |
|---|---|
1 · Goal formulation |
|
2 · Control law |
|
4 · Compensation |
|
5 · Allocation |
|
Orchestration |
|
PipelineController subclasses the framework’s Controller, so it drops
into ADCS.simulate and ADCS.mc.monte_carlo_runner.MonteCarloRunner
without changes to either.
Design documents¶
The block interfaces are specified before they are implemented:
pipeline_spec.md— stage contracts and theLawInterfacestructgoal_formulation_spec.md— goal → error-signal routingallocation_spec.md— allocator formulations and momentum management
Tests¶
pytest testing/test_pipeline/
Includes test_pipeline_vs_lovera.py, which asserts the pipeline reproduces
the published MTQ_Lovera controller to machine precision across six states
including actuator saturation.
Reproducing published numbers¶
pyproject.toml declares compatible version ranges so the package installs
into an existing environment. For deterministic campaign reruns use the exact
pins instead:
pip install -r requirements-repro.txt
pip install -e . --no-deps
Also on the poster¶
Test any published attitude control law on your bus. — what the adapter is, and the code
SSC26 · Run it in your browser — run it in your browser, no install
SSC26 · The paper — the paper and how to cite it
SSC26 · Contact — questions, collaboration, bug reports