A simulation-first GNC project for autonomous relative navigation, guidance, control, and docking of a chaser spacecraft with a target spacecraft.
- Model relative orbital motion and spacecraft states.
- Simulate noisy relative-navigation sensors.
- Estimate relative position/velocity with a Kalman filter.
- Generate approach trajectories through hold points and a docking corridor.
- Track guidance commands with closed-loop control.
- Evaluate docking safety, accuracy, propellant use, and robustness.
The initial vertical slice uses Clohessy-Wiltshire/Hill relative dynamics, a linear Kalman filter, waypoint guidance, and LQR control. Later milestones can add nonlinear orbital dynamics, EKF/UKF estimation, attitude dynamics, keep-out zones, constrained/MPC guidance, Monte Carlo testing, and hardware-in-the-loop work.
src/dynamics/— relative orbital and rigid-body dynamicssrc/navigation/— state estimation and filteringsrc/guidance/— rendezvous trajectory/waypoint generationsrc/control/— feedback controllers and actuator commandssrc/sensors/— sensor models and measurement simulationsrc/simulation/— scenario orchestrationsrc/visualization/— plots and diagnosticsconfigs/— reproducible scenario definitionsnotebooks/— investigations and derivationstests/— unit/integration testsdocs/— equations, architecture, and experiment notesresults/— generated outputs (ignored by Git)
python -m venv .venv
# Windows: .venv\\Scripts\\activate
# macOS/Linux: source .venv/bin/activate
pip install -e ".[dev]"
python -m src.simulation.run --config configs/baseline.yaml
pytest- Baseline CW relative-motion simulation.
- Noisy range/bearing or relative-position sensing.
- KF/EKF relative-state estimation.
- Waypoint/hold-point rendezvous guidance.
- LQR/PID tracking and docking corridor logic.
- Keep-out zones, abort logic, and actuator constraints.
- Monte Carlo robustness studies.
- Nonlinear orbital + 6-DOF attitude model and advanced guidance/control.
This repository is intentionally a scaffold: the architecture, interfaces, tests, and first runnable simulation are provided, while the deeper GNC algorithms are meant to be developed and documented as the project grows.