You are browsing as a guest. Sign up (or log in) to start making projects!

Gateway Navigator

  • 1 Devlogs
  • 1 Total hours

CR3BP-based orbit maintenance simulator for NASA's Gateway lunar station — comparing LQR and PID station-keeping with Kalman filter state estimation

Open comments for this post

55m 19s logged

DEVLOG — SESSION 1
Date: June 28, 2026
Session: M1 Propagation Engine — Setup & Validation
Set up the full Gateway Navigator project structure from scratch — all 7 module files, core utilities, tests, data and figures directories. Wrote m1_propagator.py containing the CR3BP equations of motion, Jacobi constant function, and a propagate() wrapper around scipy.solve_ivp using the DOP853 integrator. Wrote tests/test_m1_validation.py to verify two gate conditions: position return error under 1 km after one orbital period, and Jacobi drift under 1e-10.
WHAT I LEARNED:
The CR3BP equations model Gateway’s motion in a rotating frame co-moving with the Earth-Moon system. In this frame both primaries are stationary and the spacecraft experiences Coriolis and centrifugal forces alongside gravity. The Jacobi constant is a conserved quantity along any uncontrolled trajectory — if it drifts, the integrator is losing energy, which means the physics is wrong. DOP853 is an 8th-order Runge-Kutta method that conserves energy far better than lower-order integrators.
WHAT BROKE / SURPRISED ME:
Initial conditions copied from blueprint literature failed the position return gate badly — 3415 km error on the first attempt, 362 km on the second. The Jacobi drift was perfect both times (below 1e-13), meaning the integrator itself was working correctly. The problem was that NRHO initial conditions are extraordinarily sensitive.FINAL VALIDATED ICs:
x0 = 1.0170375034517611
z0 = -0.1784174365278452
yd0 = -0.0921378916511874
T = 1.4451252712711455

0
0
15

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…