- Add spacecraft body to earth_mars_simple.toml config file
- Implement initialize_spacecraft_leo() to set circular LEO at 200km altitude
- Implement apply_transfer_burn() for Hohmann transfer impulse burn
- Implement calculate_phase_angle() for launch window verification
- Add comprehensive test case with SOI transition tracking
- Preserve debug printf statements from main branch investigation
- LEO initialization verified: position, velocity, energy all correct
- Issue identified: delta-v calculation doesn't account for spacecraft LEO phase
- Test completes 8/9 assertions (fails post-burn energy check)
- Session documented in docs/leospacecraft_impulse_burn_plan.md
Next: Fix apply_transfer_burn() to use vector-based delta-v instead of magnitude-based
Add core orbital mechanics calculations and spacecraft spawning infrastructure
for interplanetary trajectory planning. Enables calculation of realistic
transfer orbits with proper departure window timing.
New Module (mission_planning.h/cpp):
- calculate_hohmann_transfer(): Returns transfer orbit parameters
- calculate_angular_position(): Computes body angle in XY plane
- calculate_required_phase_angle(): Calculates optimal launch phase
- check_launch_window(): Tests if current phase allows optimal launch
- wait_for_launch_window(): Fast-forwards to launch window
- spawn_spacecraft_on_transfer(): Creates spacecraft on transfer trajectory
Simulation Extensions (simulation.cpp/h):
- add_body_to_simulation(): Dynamic body creation at runtime
- Properly handles local/global coordinate initialization
- SOI radius calculation for dynamically added bodies
Test Suite:
- test_mission_planning.cpp: Core calculations validated
- test_hohmann_transfer.cpp: Spacecraft spawning verified
- earth_mars_simple.toml: Test configuration for transfers
Validations:
- Transfer parameters match NASA references (±5%)
- Earth→Mars transfer: 259 days, 44.3° phase, 2.94 km/s Δv
- Spacecraft spawns with correct velocity and position
- Launch window detection works (waits ~94 days for optimal window)
Status: Phases 1-3 complete, Phase 4 debugging in progress
(trajectory divergence after first update_simulation() call)