mirror of
https://github.com/azaion/gps-denied-desktop.git
synced 2026-04-23 01:06:36 +00:00
add chunking
This commit is contained in:
@@ -7,10 +7,13 @@ Validate Acceptance Criterion 5 (partial): "System should try to operate when UA
|
||||
**AC-5**: Connect multiple disconnected route fragments
|
||||
|
||||
## Preconditions
|
||||
1. System with "Atlas" multi-map capability (factor graph)
|
||||
2. L2 global place recognition functional
|
||||
3. Geodetic map-merging logic implemented
|
||||
4. Test dataset: Simulate 3 disconnected route fragments
|
||||
1. System with "Atlas" multi-map capability (factor graph with native chunk support)
|
||||
2. F12 Route Chunk Manager functional
|
||||
3. F10 Factor Graph Optimizer with multi-chunk support
|
||||
4. L2 global place recognition functional (chunk semantic matching)
|
||||
5. L3 metric refinement functional (chunk LiteSAM matching)
|
||||
6. Geodetic map-merging logic implemented (Sim(3) transform)
|
||||
7. Test dataset: Simulate 3 disconnected route fragments
|
||||
|
||||
## Test Description
|
||||
Test system's ability to handle completely disconnected route segments (no overlap between segments) and eventually connect them into a coherent trajectory using global GPS anchors.
|
||||
@@ -36,15 +39,19 @@ Test system's ability to handle completely disconnected route segments (no overl
|
||||
- **Action**: Process AD000025 after AD000010
|
||||
- **Expected Result**:
|
||||
- L1 fails (no overlap, large displacement ~2km)
|
||||
- System detects new fragment
|
||||
- Initializes Map_Fragment_2
|
||||
- System **proactively creates new chunk** (Map_Fragment_2)
|
||||
- Processing continues immediately in new chunk
|
||||
- Chunk matching attempted asynchronously
|
||||
|
||||
### Step 4: Process Fragment 2 Independently
|
||||
- **Action**: Process AD000025-030
|
||||
- **Expected Result**:
|
||||
- New sequential tracking starts
|
||||
- L2 provides global localization for AD000025
|
||||
- Map_Fragment_2 created with local consistency
|
||||
- New sequential tracking starts in chunk_2
|
||||
- Frames processed within chunk_2 context
|
||||
- Relative factors added to chunk_2's subgraph
|
||||
- Chunk_2 optimized independently for local consistency
|
||||
- Chunk semantic matching attempted when ready (5-20 frames)
|
||||
- Chunk LiteSAM matching with rotation sweeps attempted
|
||||
|
||||
### Step 5: Process Fragment 3
|
||||
- **Action**: Process AD000050-055 after AD000030
|
||||
@@ -56,9 +63,11 @@ Test system's ability to handle completely disconnected route segments (no overl
|
||||
### Step 6: Global Map Merging
|
||||
- **Action**: Factor graph attempts geodetic map-merging
|
||||
- **Expected Result**:
|
||||
- All 3 fragments have GPS anchors from L3
|
||||
- All 3 chunks have GPS anchors from chunk LiteSAM matching
|
||||
- Chunks merged via Sim(3) transform (translation, rotation, scale)
|
||||
- Fragments aligned in global coordinate frame
|
||||
- Single consistent trajectory created
|
||||
- Global optimization performed
|
||||
|
||||
### Step 7: Validate Fragment Connections
|
||||
- **Action**: Verify all 18 images have global GPS coordinates
|
||||
@@ -138,15 +147,18 @@ Processing Mode: Multi-Map Atlas
|
||||
- Geodetic merging aligns all maps
|
||||
|
||||
**Recovery Mechanisms**:
|
||||
- L2 (AnyLoc) finds location for first image of new fragment
|
||||
- L3 (LiteSAM) refines GPS anchor
|
||||
- Factor graph creates new map fragment
|
||||
- Global alignment via GPS coordinates
|
||||
- **Proactive chunk creation** on tracking loss (immediate, not reactive)
|
||||
- Chunk semantic matching (aggregate DINOv2) finds location for chunk
|
||||
- Chunk LiteSAM matching (with rotation sweeps) refines GPS anchor
|
||||
- Factor graph creates new chunk subgraph
|
||||
- Sim(3) transform merges chunks into global trajectory
|
||||
|
||||
**Fragment Detection**:
|
||||
- Large displacement (> 500m) from last image
|
||||
- Low/zero overlap
|
||||
- L1 failure triggers new fragment initialization
|
||||
- L1 failure triggers **proactive** new chunk creation
|
||||
- Chunks processed independently with local optimization
|
||||
- Multiple chunks can exist simultaneously
|
||||
|
||||
## Notes
|
||||
- AC-5 describes realistic operational scenario (multiple turns, disconnected segments)
|
||||
|
||||
Reference in New Issue
Block a user