mirror of
https://github.com/azaion/gps-denied-desktop.git
synced 2026-04-22 11:06:36 +00:00
fix issues
This commit is contained in:
@@ -185,7 +185,7 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
|
||||
**Sequence**:
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
┌──────────────────────────────────────────────────────────────────────────┐
|
||||
│ F02 Flight Processor │
|
||||
│ │
|
||||
│ ┌─────────────┐ │
|
||||
@@ -265,15 +265,15 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
|
||||
**Sequence**:
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ F06 Image Rotation Manager │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
│ │ try_rotation_steps(image, satellite_tile, tile_bounds) │ │
|
||||
│ └──────────────────────────────┬──────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ┌───────────────────────┴───────────────────────────┐ │
|
||||
│ │ For angle in [0°, 30°, 60°, ... 330°]: │ │
|
||||
┌───────────────────────────────────────────────────────────────────────────┐
|
||||
│ F06 Image Rotation Manager │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
│ │ try_rotation_steps(image, satellite_tile, tile_bounds) │ │
|
||||
│ └──────────────────────────────┬──────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ┌───────────────────────┴────────────────────────────┐ │
|
||||
│ │ For angle in [0°, 30°, 60°, ... 330°]: │ │
|
||||
│ │ │ │
|
||||
│ │ ┌─────────────────────────────────────┐ │ │
|
||||
│ │ │ H07 rotate_image(image, angle) │ │ │
|
||||
@@ -300,11 +300,11 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
│ │ │ │
|
||||
│ └────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ┌────────────┴────────────┐ │
|
||||
│ │ Return RotationResult │ │
|
||||
│ │ or None │ │
|
||||
│ └─────────────────────────┘ │
|
||||
└──────────────────────────────────────────────────────────────────────────┘
|
||||
│ ┌────────────┴────────────┐ │
|
||||
│ │ Return RotationResult │ │
|
||||
│ │ or None │ │
|
||||
│ └─────────────────────────┘ │
|
||||
└───────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Output**: RotationResult with precise heading angle
|
||||
@@ -319,7 +319,7 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
|
||||
**Sequence**:
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
┌──────────────────────────────────────────────────────────────────────────┐
|
||||
│ F11 Failure Recovery Coordinator │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
@@ -337,34 +337,34 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
│ │ ├─ F06 requires_rotation_sweep() → trigger sweep │ │
|
||||
│ │ ├─ F08 retrieve_candidate_tiles() (DINOv2) │ │
|
||||
│ │ └─ Progressive tile search (1→4→9→16→25): │ │
|
||||
│ │ │ │
|
||||
│ │ ┌───────────────────────────────────────────────────┐ │ │
|
||||
│ │ │ For grid_size in [1, 4, 9, 16, 25]: │ │ │
|
||||
│ │ │ ├─ F04 expand_search_grid() │ │ │
|
||||
│ │ │ ├─ For each tile: │ │ │
|
||||
│ │ │ │ ├─ F04 compute_tile_bounds() │ │ │
|
||||
│ │ │ │ └─ F09 align_to_satellite(img, tile, bounds)│ │ │
|
||||
│ │ │ │ │ │ │
|
||||
│ │ │ └─ If match found: BREAK │ │ │
|
||||
│ │ └───────────────────────────────────────────────────┘ │ │
|
||||
│ │ │ │
|
||||
│ │ │ │
|
||||
│ │ ┌───────────────────────────────────────────────────┐ │ │
|
||||
│ │ │ For grid_size in [1, 4, 9, 16, 25]: │ │ │
|
||||
│ │ │ ├─ F04 expand_search_grid() │ │ │
|
||||
│ │ │ ├─ For each tile: │ │ │
|
||||
│ │ │ │ ├─ F04 compute_tile_bounds() │ │ │
|
||||
│ │ │ │ └─ F09 align_to_satellite(img, tile, bounds)│ │ │
|
||||
│ │ │ │ │ │ │
|
||||
│ │ │ └─ If match found: BREAK │ │ │
|
||||
│ │ └───────────────────────────────────────────────────┘ │ │
|
||||
│ │ │ │
|
||||
│ └──────────────────────────────┬──────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ┌────────────────────┴────────────────────┐ │
|
||||
│ │ Single-image match found? │ │
|
||||
│ ▼ ▼ │
|
||||
│ ┌─────────────────────┐ ┌─────────────────────────────┐ │
|
||||
│ │ EMIT RecoverySucceeded│ │ Continue chunk building │ │
|
||||
│ │ Resume normal flow │ │ → Flow 7 (Chunk Building) │ │
|
||||
│ └─────────────────────┘ │ → Flow 8 (Chunk Matching) │ │
|
||||
│ │ (Background) │ │
|
||||
│ └─────────────────────────────┘ │
|
||||
│ ┌─────────────────────┐ ┌────────────────────────────┐ │
|
||||
│ │ EMIT RecoverySucceeded│ │ Continue chunk building │ │
|
||||
│ │ Resume normal flow │ │ → Flow 7 (Chunk Building) │ │
|
||||
│ └─────────────────────┘ │ → Flow 8 (Chunk Matching) │ │
|
||||
│ │ (Background) │ │
|
||||
│ └────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────┐ │
|
||||
│ │ If all strategies exhausted: │ │
|
||||
│ │ → Flow 10 (User Input Recovery) │ │
|
||||
│ └─────────────────────────────────────┘ │
|
||||
│ ┌─────────────────────────────────────┐ │
|
||||
│ │ If all strategies exhausted: │ │
|
||||
│ │ → Flow 10 (User Input Recovery) │ │
|
||||
│ └─────────────────────────────────────┘ │
|
||||
└──────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
@@ -376,42 +376,42 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
|
||||
**Sequence**:
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
│ F12 Route Chunk Manager │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
│ │ create_chunk(flight_id, start_frame_id) │ │
|
||||
│ │ ├─ F10 create_new_chunk() ← Factor graph subgraph │ │
|
||||
│ │ ├─ Initialize chunk state (unanchored, active) │ │
|
||||
│ │ └─ F03 save_chunk_state() │ │
|
||||
│ └──────────────────────────────┬──────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ┌───────────────────────┴───────────────────────────┐ │
|
||||
│ │ For each frame in chunk: │ │
|
||||
┌───────────────────────────────────────────────────────────────────────────┐
|
||||
│ F12 Route Chunk Manager │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
│ │ create_chunk(flight_id, start_frame_id) │ │
|
||||
│ │ ├─ F10 create_new_chunk() ← Factor graph subgraph │ │
|
||||
│ │ ├─ Initialize chunk state (unanchored, active) │ │
|
||||
│ │ └─ F03 save_chunk_state() │ │
|
||||
│ └──────────────────────────────┬──────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ┌───────────────────────┴────────────────────────────┐ │
|
||||
│ │ For each frame in chunk: │ │
|
||||
│ │ │ │
|
||||
│ │ ┌─────────────────────────────────────┐ │ │
|
||||
│ │ │ F07 compute_relative_pose_in_chunk()│ │ │
|
||||
│ │ └───────────────────┬─────────────────┘ │ │
|
||||
│ │ ▼ │ │
|
||||
│ │ ┌─────────────────────────────────────┐ │ │
|
||||
│ │ │ F12 add_frame_to_chunk() │ │ │
|
||||
│ │ ┌──────────────────────────────────────┐ │ │
|
||||
│ │ │ F12 add_frame_to_chunk() │ │ │
|
||||
│ │ │ └─ F10 add_relative_factor_to_chunk│ │ │
|
||||
│ │ └───────────────────┬─────────────────┘ │ │
|
||||
│ │ └───────────────────┬──────────────────┘ │ │
|
||||
│ │ ▼ │ │
|
||||
│ │ ┌─────────────────────────────────────┐ │ │
|
||||
│ │ │ F10 optimize_chunk() (local) │ │ │
|
||||
│ │ └─────────────────────────────────────┘ │ │
|
||||
│ │ │ │
|
||||
│ └────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
│ │ is_chunk_ready_for_matching()? │ │
|
||||
│ │ ├─ Min 5 frames │ │
|
||||
│ │ ├─ Max 20 frames │ │
|
||||
│ │ └─ Internal consistency (good VO inlier counts) │ │
|
||||
│ └─────────────────────────────────────────────────────────────┘ │
|
||||
└──────────────────────────────────────────────────────────────────────────┘
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
│ │ is_chunk_ready_for_matching()? │ │
|
||||
│ │ ├─ Min 5 frames │ │
|
||||
│ │ ├─ Max 20 frames │ │
|
||||
│ │ └─ Internal consistency (good VO inlier counts) │ │
|
||||
│ └─────────────────────────────────────────────────────────────┘ │
|
||||
└───────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
@@ -424,7 +424,7 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
|
||||
**Sequence**:
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
┌──────────────────────────────────────────────────────────────────────────┐
|
||||
│ F11 process_unanchored_chunks() (Background Task) │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
@@ -472,7 +472,7 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
|
||||
**Sequence**:
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
┌───────────────────────────────────────────────────────────────────────-──┐
|
||||
│ F11 merge_chunk_to_trajectory() │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
@@ -485,7 +485,7 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
│ └──────────────────────────────┬──────────────────────────────┘ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 3. Resolve target: F12 get_merge_target(chunk_id) │ │
|
||||
│ │ 3. Determine target chunk (predecessor or "main") │ │
|
||||
│ │ └─ Returns target_chunk_id (predecessor or "main") │ │
|
||||
│ └──────────────────────────────┬──────────────────────────────┘ │
|
||||
│ ▼ │
|
||||
@@ -501,7 +501,7 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
│ └──────────────────────────────┬──────────────────────────────┘ │
|
||||
│ ▼ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
│ │ 6. EMIT ChunkMerged event (flight_id, chunk_id, merged_frames)│ │
|
||||
│ │ 6. EMIT ChunkMerged event (flight_id,chunk_id,merged_frames)│ │
|
||||
│ │ └─ F14 subscribes → update_results_after_chunk_merge() │ │
|
||||
│ │ ├─ F10 get_trajectory() → ENU poses │ │
|
||||
│ │ ├─ F13 enu_to_gps() for each frame │ │
|
||||
@@ -523,7 +523,7 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
|
||||
**Sequence**:
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
┌──────────────────────────────────────────────────────────────────────────┐
|
||||
│ F11 create_user_input_request() │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
@@ -537,7 +537,7 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
└──────────────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼ Client receives SSE event
|
||||
┌──────────────────────────────────────────────────────────────────────────┐
|
||||
┌───────────────────────────────────────────────────────────────────────────┐
|
||||
│ Client UI │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
@@ -550,7 +550,7 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
│ │ POST /flights/{flightId}/user-fix │ │
|
||||
│ │ body: { frame_id, uav_pixel, satellite_gps } │ │
|
||||
│ └─────────────────────────────────────────────────────────────┘ │
|
||||
└──────────────────────────────────────────────────────────────────────────┘
|
||||
└───────────────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
@@ -577,7 +577,7 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
|
||||
**Sequence**:
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
┌─────────────────────────────────────────────────────────────-────────────┐
|
||||
│ F10 Background Optimization │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
@@ -650,7 +650,7 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
|
||||
**Sequence**:
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────┐
|
||||
┌──────────────────────────────────────────────────────────────────────────┐
|
||||
│ F02 Flight Processor │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────┐ │
|
||||
@@ -741,7 +741,7 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
│ EXTERNAL │
|
||||
│ EXTERNAL │
|
||||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||||
│ │ Client │ │ Satellite │ │ External │ │
|
||||
│ │ (UI) │ │ Provider │ │ Detector │ │
|
||||
@@ -750,7 +750,7 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
│ REST/SSE │ HTTP │ REST
|
||||
▼ ▼ ▼
|
||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
│ API LAYER │
|
||||
│ API LAYER │
|
||||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ F01 Flight API │ │
|
||||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||||
@@ -758,23 +758,23 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
│ ORCHESTRATION LAYER │
|
||||
│ ORCHESTRATION LAYER │
|
||||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ F02 Flight Processor │ │
|
||||
│ │ (Central coordinator, event subscriber, background task manager) │ │
|
||||
│ │ F02 Flight Processor │ │
|
||||
│ │ (Central coordinator, event subscriber, background task manager) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||||
└─────────────────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
├─────────────────────────────────────────────────────────────┐
|
||||
▼ ▼
|
||||
┌─────────────────────────────────────────────┐ ┌────────────────────────────┐
|
||||
│ DATA MANAGEMENT LAYER │ │ RECOVERY LAYER │
|
||||
│ DATA MANAGEMENT LAYER │ │ RECOVERY LAYER │
|
||||
│ ┌─────────────┐ ┌─────────────┐ │ │ ┌───────────────────────┐ │
|
||||
│ │ F04 │ │ F05 │ │ │ │ F11 │ │
|
||||
│ │ Satellite │ │ Image │ │ │ │ Failure Recovery │ │
|
||||
│ │ Data │ │ Input │ │ │ │ (Event emitter) │ │
|
||||
│ └─────────────┘ └─────────────┘ │ │ └───────────────────────┘ │
|
||||
│ │ │ │ │
|
||||
│ │ │ │ │
|
||||
│ ┌─────────────┐ ┌─────────────┐ │ │ ▼ │
|
||||
│ │ F12 │ │ F03 │ │ │ ┌───────────────────────┐ │
|
||||
│ │Route Chunk │ │ Flight │ │ │ │ F12 │ │
|
||||
@@ -784,7 +784,7 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
│ VISUAL PROCESSING LAYER │
|
||||
│ VISUAL PROCESSING LAYER │
|
||||
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ ┌──────────────┐ │
|
||||
│ │ F06 │ │ F07 │ │ F08 │ │ F09 │ │
|
||||
│ │ Rotation │ │ Sequential VO │ │ Global │ │ Metric │ │
|
||||
@@ -796,16 +796,16 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
│ STATE ESTIMATION LAYER │
|
||||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ F10 Factor Graph Optimizer │ │
|
||||
│ │ (GTSAM, iSAM2, Robust kernels, Chunk subgraphs, Sim(3) merging) │ │
|
||||
│ STATE ESTIMATION LAYER │
|
||||
│ ┌──────────────────────────────────────────────────────────────────k──┐ │
|
||||
│ │ F10 Factor Graph Optimizer │ │
|
||||
│ │ (GTSAM, iSAM2, Robust kernels, Chunk subgraphs, Sim(3) merging) │ │
|
||||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||||
└─────────────────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
│ OUTPUT LAYER │
|
||||
│ OUTPUT LAYER │
|
||||
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │
|
||||
│ │ F13 │ │ F14 │ │ F15 │ │
|
||||
│ │ Coordinate │ │ Result │ │ SSE │ │
|
||||
@@ -815,14 +815,14 @@ ASTRAL-Next is a GPS-denied UAV visual localization system using tri-layer match
|
||||
└─────────────────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
┌─────────────────────────────────────────────────────────────────────────────-┐
|
||||
│ INFRASTRUCTURE LAYER │
|
||||
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────────────────────────┐│
|
||||
│ │ F16 │ │ F17 │ │ HELPERS ││
|
||||
│ │ Model │ │Configuration │ │ H01-H08 (Camera, GSD, Kernels, ││
|
||||
│ │ Manager │ │ Manager │ │ Faiss, Monitor, Mercator, etc) ││
|
||||
│ └───────────────┘ └───────────────┘ └───────────────────────────────────┘│
|
||||
└─────────────────────────────────────────────────────────────────────────────┘
|
||||
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────────────────────────-┐│
|
||||
│ │ F16 │ │ F17 │ │ HELPERS ││
|
||||
│ │ Model │ │Configuration │ │ H01-H08 (Camera, GSD, Kernels, ││
|
||||
│ │ Manager │ │ Manager │ │ Faiss, Monitor, Mercator, etc) ││
|
||||
│ └───────────────┘ └───────────────┘ └────────────────────────────────────┘│
|
||||
└──────────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user