# Reasoning Chain

## Dimension 1: GPS Accuracy (50m/80%, 20m/60%)

### Fact Confirmation
- YFS90 system achieves <7m MAE without IMU (Fact from Source DOAJ/GitHub)
- NaviLoc achieves 19.5m MLE at 50-150m altitude (Fact #4)
- Mateos-Ramirez achieves 143m mean error at >1000m altitude with IMU (Fact #1)
- Our GSD is 6cm/pixel at 400m altitude (Fact #11)
- ITU thesis achieves GPS-level accuracy with VO+SIM at 30-100m (Fact #3)

### Reference Comparison
- At 400m altitude, our camera produces much higher resolution imagery than typical systems
- YFS90 at <7m without IMU is the strongest reference — uses terrain-weighted constraint optimization
- NaviLoc at 19.5m uses trajectory-level optimization but at lower altitude
- The combination of VO + satellite matching with sliding window optimization should achieve 10-30m depending on satellite image quality

### Conclusion
- **50m / 80%**: High confidence achievable. Multiple systems achieve better than this.
- **20m / 60%**: Achievable with good satellite imagery. YFS90 achieves <7m. Our higher altitude makes cross-view matching harder, but 26MP camera compensates.
- **10m stretch**: Possible with zoom 19 satellite tiles (0.2m/px) and terrain-weighted optimization.

### Confidence: ✅ High for 50m, ⚠️ Medium for 20m, ❓ Low for 10m

---

## Dimension 2: No-IMU Heading Estimation

### Fact Confirmation
- Homography decomposition gives rotation between frames for planar scenes (multiple sources)
- Ground plane assumption is valid for flat terrain (eastern Ukraine steppe)
- Satellite matching provides absolute orientation correction (Sources #1, #2)
- YFS90 achieves <7m without requiring IMU (Source #3 DOAJ)

### Reference Comparison
- Most published systems use IMU for heading — our approach is less common
- YFS90 proves it's possible without IMU, but uses DEM data for terrain weighting
- The key insight: satellite matching provides both position AND heading correction, making intermittent heading drift from VO acceptable

### Conclusion
Heading estimation from homography decomposition between consecutive frames + periodic satellite matching correction is viable. The frame-to-frame heading drift accumulates, but satellite corrections at regular intervals (every 5-20 frames) reset it. The flat terrain of the operational area makes the ground plane assumption reliable.

### Confidence: ⚠️ Medium — novel approach but supported by YFS90 results

---

## Dimension 3: Processing Speed (<5s per image)

### Fact Confirmation
- LightGlue: ~20-50ms per pair (Fact #5)
- SuperPoint extraction: ~50-100ms per image
- GPU-accelerated ORB-SLAM3: 30 FPS (Fact #12)
- NaviLoc: 9 FPS on Raspberry Pi 5 (Fact #4)

### Pipeline Time Budget Estimate (per image on RTX 2060)
1. SuperPoint feature extraction: ~80ms
2. LightGlue VO matching (vs previous frame): ~40ms
3. Homography estimation + position update: ~5ms
4. Satellite tile crop (from cache): ~10ms
5. SuperPoint extraction on satellite crop: ~80ms
6. LightGlue satellite matching: ~60ms
7. Position correction + sliding window optimization: ~20ms
8. Total: ~295ms ≈ 0.3s

### Conclusion
Processing comfortably fits within 5s budget. Even with additional overhead (satellite tile download, perspective warping, GIM fallback), the pipeline stays under 2s. The 5s budget provides ample margin.

### Confidence: ✅ High

---

## Dimension 4: Sharp Turns & Route Disconnection

### Fact Confirmation
- At <5% overlap, consecutive feature matching will fail
- Satellite matching can provide absolute position independently of VO
- DUSt3R/MASt3R handle extreme low overlap (+50% completeness vs COLMAP)
- YFS90 handles positioning failures with re-localization

### Reference Comparison
- Traditional VO systems fail at sharp turns — this is expected and acceptable
- The segments-first architecture treats each continuous VO chain as a segment
- Satellite matching re-localizes at the start of each new segment
- If satellite matching fails too → wider search area → user input

### Conclusion
The system should not try to match across sharp turns. Instead:
1. Detect VO failure (low match count / high reprojection error)
2. Start new segment
3. Attempt satellite geo-referencing for new segment start
4. Each segment is independently positioned in the global satellite coordinate frame

This is architecturally simpler and more robust than trying to bridge disconnections.

### Confidence: ✅ High

---

## Dimension 5: Satellite Image Matching Reliability

### Fact Confirmation
- Google Maps at zoom 18: 0.40 m/px at lat 48° — meets AC requirement
- Eastern Ukraine imagery may be 2-5 years old (Fact #7)
- SuperPoint+LightGlue is best performer for satellite matching (Source comparison study)
- Perspective warping improves cross-view matching significantly
- 93% match rate achieved in ITU thesis (Fact #3)

### Reference Comparison
- The main risk is satellite image freshness in conflict zone
- Natural terrain features (rivers, forests, field boundaries) are relatively stable over years
- Man-made features (buildings, roads) may change due to conflict
- Agricultural field patterns change seasonally

### Conclusion
Satellite matching will work reliably in areas with stable natural features. Performance degrades in:
1. Areas with significant conflict damage (buildings destroyed)
2. Areas with seasonal agricultural changes
3. Areas with very homogeneous texture (large uniform fields)

Mitigation: use multiple scale levels, widen search area, accept lower confidence.

### Confidence: ⚠️ Medium — depends heavily on operational area characteristics

---

## Dimension 6: Architecture Selection

### Fact Confirmation
- YFS90 architecture (VO + satellite matching + terrain-weighted optimization) achieves <7m
- ITU thesis architecture (ORB-SLAM3 + SIM) achieves GPS-level accuracy
- NaviLoc architecture (VPR + trajectory optimization) achieves 19.5m

### Reference Comparison
- YFS90 is closest to our requirements: no IMU, satellite matching, drift correction
- Our system adds: segment management, real-time streaming, user fallback
- We need simpler VO than ORB-SLAM3 (no map building needed)
- We need faster matching than SuperGlue (LightGlue preferred)

### Conclusion
Hybrid architecture combining:
- YFS90-style sliding window optimization for drift correction
- SuperPoint + LightGlue for both VO and satellite matching (unified feature pipeline)
- Segments-first architecture for disconnection handling
- FastAPI + SSE for real-time streaming

### Confidence: ✅ High
