mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-04-22 22:06:37 +00:00
@@ -4,8 +4,8 @@
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="title" value="ASTRAL-Next System Architecture GPS-Denied Localization for UAVs 29 Components: Route API (4) + GPS-Denied API (17) + Helpers (8)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=20;fontStyle=1;fontColor=#ffffff;" parent="1" vertex="1">
|
||||
<mxGeometry x="200" y="20" width="1000" height="80" as="geometry"/>
|
||||
<mxCell id="title" value="ASTRAL-Next System Architecture GPS-Denied Localization for UAVs (Atlas Multi-Map Chunk Architecture) 25 Components: Route API (4) + Flight API (17) + Helpers (8)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=20;fontStyle=1;fontColor=#ffffff;" parent="1" vertex="1">
|
||||
<mxGeometry x="200" y="20" width="1200" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="route-api-lane" value="Route API (Separate Project)" style="swimlane;horizontal=1;whiteSpace=wrap;html=1;fontSize=14;fontStyle=1;fillColor=#1565C0;strokeColor=#64B5F6;fontColor=#ffffff;" parent="1" vertex="1">
|
||||
<mxGeometry x="200" y="110" width="600" height="350" as="geometry"/>
|
||||
@@ -37,84 +37,84 @@
|
||||
<mxCell id="r04-db" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="route-api-lane" source="r04" target="route-db" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="gps-denied-lane" value="GPS-Denied API (Main Processing System)" style="swimlane;horizontal=1;whiteSpace=wrap;html=1;fontSize=14;fontStyle=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="1" vertex="1">
|
||||
<mxGeometry x="130" y="500" width="1200" height="2200" as="geometry"/>
|
||||
<mxCell id="gps-denied-lane" value="Flight API (Main Processing System - Atlas Multi-Map Architecture)" style="swimlane;horizontal=1;whiteSpace=wrap;html=1;fontSize=14;fontStyle=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="1" vertex="1">
|
||||
<mxGeometry x="130" y="500" width="1400" height="2400" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="core-layer" value="Core API Layer" style="swimlane;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="20" y="40" width="560" height="140" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g01" value="G01 GPS-Denied REST API" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#8B1A1A;strokeColor=#EF5350;fontColor=#ffffff;" parent="core-layer" vertex="1">
|
||||
<mxCell id="f01" value="F01 Flight REST API" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#8B1A1A;strokeColor=#EF5350;fontColor=#ffffff;" parent="core-layer" vertex="1">
|
||||
<mxGeometry x="20" y="40" width="150" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g02" value="G02 Flight Manager" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#8B1A1A;strokeColor=#EF5350;fontColor=#ffffff;" parent="core-layer" vertex="1">
|
||||
<mxGeometry x="200" y="40" width="150" height="60" as="geometry"/>
|
||||
<mxCell id="f02" value="F02 Flight Processor (chunk-aware)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#8B1A1A;strokeColor=#EF5350;fontColor=#ffffff;" parent="core-layer" vertex="1">
|
||||
<mxGeometry x="200" y="40" width="150" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g03" value="G03 Route API Client" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#8B1A1A;strokeColor=#EF5350;fontColor=#ffffff;" parent="core-layer" vertex="1">
|
||||
<mxCell id="f03" value="F03 Flight Database" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#8B1A1A;strokeColor=#EF5350;fontColor=#ffffff;" parent="core-layer" vertex="1">
|
||||
<mxGeometry x="380" y="40" width="150" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g01-g02" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="core-layer" source="g01" target="g02" edge="1">
|
||||
<mxCell id="f01-f02" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="core-layer" source="f01" target="f02" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data-layer" value="Data Management" style="swimlane;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="600" y="40" width="560" height="140" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g04" value="G04 Satellite Data Manager (fetch, cache, grid)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#CC6600;strokeColor=#FFB300;fontColor=#ffffff;" parent="data-layer" vertex="1">
|
||||
<mxCell id="f04" value="F04 Satellite Data Manager (fetch, cache, grid)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#CC6600;strokeColor=#FFB300;fontColor=#ffffff;" parent="data-layer" vertex="1">
|
||||
<mxGeometry x="20" y="40" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g05" value="G05 Image Input Pipeline (queue, validate, store)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#CC6600;strokeColor=#FFB300;fontColor=#ffffff;" parent="data-layer" vertex="1">
|
||||
<mxCell id="f05" value="F05 Image Input Pipeline (queue, validate, store)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#CC6600;strokeColor=#FFB300;fontColor=#ffffff;" parent="data-layer" vertex="1">
|
||||
<mxGeometry x="200" y="40" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g06" value="G06 Image Rotation Mgr (30° sweep, heading)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#CC6600;strokeColor=#FFB300;fontColor=#ffffff;" parent="data-layer" vertex="1">
|
||||
<mxCell id="f06" value="F06 Image Rotation Mgr (30° sweep, chunk rotation)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#CC6600;strokeColor=#FFB300;fontColor=#ffffff;" parent="data-layer" vertex="1">
|
||||
<mxGeometry x="380" y="40" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="visual-layer" value="Visual Processing (Tri-Layer Architecture)" style="swimlane;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="20" y="200" width="560" height="140" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g07" value="G07 Sequential VO (SuperPoint+LightGlue)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=#42A5F5;fontColor=#ffffff;" parent="visual-layer" vertex="1">
|
||||
<mxGeometry x="20" y="40" width="160" height="70" as="geometry"/>
|
||||
<mxCell id="f07" value="F07 Sequential VO (SuperPoint+LightGlue chunk-scoped)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=#42A5F5;fontColor=#ffffff;" parent="visual-layer" vertex="1">
|
||||
<mxGeometry x="20" y="40" width="160" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g08" value="G08 Global Place Recognition (AnyLoc DINOv2)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=#42A5F5;fontColor=#ffffff;" parent="visual-layer" vertex="1">
|
||||
<mxGeometry x="200" y="40" width="160" height="70" as="geometry"/>
|
||||
<mxCell id="f08" value="F08 Global Place Recognition (AnyLoc DINOv2 chunk descriptors)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=#42A5F5;fontColor=#ffffff;" parent="visual-layer" vertex="1">
|
||||
<mxGeometry x="200" y="40" width="160" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g09" value="G09 Metric Refinement (LiteSAM)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=#42A5F5;fontColor=#ffffff;" parent="visual-layer" vertex="1">
|
||||
<mxGeometry x="380" y="40" width="160" height="70" as="geometry"/>
|
||||
<mxCell id="f09" value="F09 Metric Refinement (LiteSAM chunk matching)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=#42A5F5;fontColor=#ffffff;" parent="visual-layer" vertex="1">
|
||||
<mxGeometry x="380" y="40" width="160" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="state-layer" value="State Estimation & Coordination" style="swimlane;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="600" y="200" width="560" height="140" as="geometry"/>
|
||||
<mxCell id="state-layer" value="State Estimation & Coordination (Atlas Multi-Map)" style="swimlane;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="600" y="200" width="760" height="200" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g10" value="G10 Factor Graph Optimizer (GTSAM iSAM2)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="state-layer" vertex="1">
|
||||
<mxGeometry x="20" y="40" width="160" height="70" as="geometry"/>
|
||||
<mxCell id="f10" value="F10 Factor Graph Optimizer (GTSAM iSAM2 multi-chunk, Sim3)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="state-layer" vertex="1">
|
||||
<mxGeometry x="20" y="40" width="160" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g11" value="G11 Failure Recovery (Progressive 1→25)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="state-layer" vertex="1">
|
||||
<mxGeometry x="200" y="40" width="160" height="70" as="geometry"/>
|
||||
<mxCell id="f11" value="F11 Failure Recovery (Progressive 1→25 chunk matching)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="state-layer" vertex="1">
|
||||
<mxGeometry x="200" y="40" width="160" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g12" value="G12 Coordinate Transform (Pixel↔GPS)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="state-layer" vertex="1">
|
||||
<mxGeometry x="380" y="40" width="160" height="70" as="geometry"/>
|
||||
<mxCell id="f12" value="F12 Route Chunk Manager (Atlas lifecycle chunk matching)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#7B1FA2;strokeColor=#BA68C8;fontColor=#ffffff;" parent="state-layer" vertex="1">
|
||||
<mxGeometry x="380" y="40" width="160" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="f13" value="F13 Coordinate Transform (Pixel↔GPS)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="state-layer" vertex="1">
|
||||
<mxGeometry x="560" y="40" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="results-layer" value="Results & Communication" style="swimlane;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="20" y="360" width="380" height="140" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g13" value="G13 Result Manager" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E65100;strokeColor=#FFA726;fontColor=#ffffff;" parent="results-layer" vertex="1">
|
||||
<mxCell id="f14" value="F14 Result Manager" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E65100;strokeColor=#FFA726;fontColor=#ffffff;" parent="results-layer" vertex="1">
|
||||
<mxGeometry x="20" y="40" width="150" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g14" value="G14 SSE Event Streamer" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E65100;strokeColor=#FFA726;fontColor=#ffffff;" parent="results-layer" vertex="1">
|
||||
<mxCell id="f15" value="F15 SSE Event Streamer" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E65100;strokeColor=#FFA726;fontColor=#ffffff;" parent="results-layer" vertex="1">
|
||||
<mxGeometry x="200" y="40" width="150" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g13-g14" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="results-layer" source="g13" target="g14" edge="1">
|
||||
<mxCell id="f14-f15" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="results-layer" source="f14" target="f15" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="infra-layer" value="Infrastructure" style="swimlane;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="420" y="360" width="740" height="140" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g15" value="G15 Model Manager (TensorRT/ONNX)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#424242;strokeColor=#BDBDBD;fontColor=#ffffff;" parent="infra-layer" vertex="1">
|
||||
<mxCell id="f16" value="F16 Model Manager (TensorRT/ONNX)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#424242;strokeColor=#BDBDBD;fontColor=#ffffff;" parent="infra-layer" vertex="1">
|
||||
<mxGeometry x="20" y="40" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g16" value="G16 Configuration Mgr" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#424242;strokeColor=#BDBDBD;fontColor=#ffffff;" parent="infra-layer" vertex="1">
|
||||
<mxCell id="f17" value="F17 Configuration Mgr" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#424242;strokeColor=#BDBDBD;fontColor=#ffffff;" parent="infra-layer" vertex="1">
|
||||
<mxGeometry x="200" y="40" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g17" value="G17 GPS-Denied DB Layer" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#424242;strokeColor=#BDBDBD;fontColor=#ffffff;" parent="infra-layer" vertex="1">
|
||||
<mxGeometry x="380" y="40" width="160" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="gps-db" value="GPS-Denied DB (Separate Schema) Flights, Frame Results" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#424242;strokeColor=#BDBDBD;fontColor=#ffffff;" parent="infra-layer" vertex="1">
|
||||
<mxGeometry x="570" y="30" width="140" height="90" as="geometry"/>
|
||||
</mxCell>
|
||||
@@ -149,37 +149,40 @@
|
||||
<mxGeometry x="20" y="700" width="200" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="flow-box" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#1E1E1E;strokeColor=#FFFFFF;dashed=1;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="20" y="740" width="1140" height="600" as="geometry"/>
|
||||
<mxGeometry x="20" y="740" width="1340" height="800" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="flow-1" value="1. Client uploads batch G01 → G05" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1565C0;strokeColor=#64B5F6;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxCell id="flow-1" value="1. Client uploads batch F01 → F05" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1565C0;strokeColor=#64B5F6;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="40" y="760" width="160" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="flow-2" value="2. Get next image G05 → G06" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1565C0;strokeColor=#64B5F6;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxCell id="flow-2" value="2. Get next image F05 → F06" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1565C0;strokeColor=#64B5F6;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="230" y="760" width="160" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="flow-3" value="3. Rotation preprocessing G06 (30° sweep if needed)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B8860B;strokeColor=#FFD54F;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxCell id="flow-3" value="3. Rotation preprocessing F06 (30° sweep if needed)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B8860B;strokeColor=#FFD54F;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="420" y="760" width="180" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="flow-4" value="4. Sequential VO G07 (SuperPoint+LightGlue)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="630" y="760" width="180" height="60" as="geometry"/>
|
||||
<mxCell id="flow-4" value="4. Sequential VO (chunk-aware) F07 → F12 (get active chunk) F07 → F10 (add to chunk subgraph)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="630" y="760" width="200" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="flow-5" value="5. Check confidence G11 Failure Recovery" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#8B1A1A;strokeColor=#EF5350;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="840" y="760" width="180" height="60" as="geometry"/>
|
||||
<mxCell id="flow-5" value="5. Check confidence F11 Failure Recovery" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#8B1A1A;strokeColor=#EF5350;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="860" y="760" width="180" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="flow-6a" value="6a. IF GOOD: LiteSAM (1 tile) G09 drift correction" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="40" y="860" width="200" height="60" as="geometry"/>
|
||||
<mxCell id="flow-6a" value="6a. IF GOOD: LiteSAM (1 tile) F09 drift correction" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="40" y="880" width="200" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="flow-6b" value="6b. IF LOST: Progressive search G11 → G04 (1→4→9→16→25) G08 Global PR + G09 LiteSAM" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#CC6600;strokeColor=#FFB300;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="270" y="860" width="220" height="80" as="geometry"/>
|
||||
<mxCell id="flow-6b" value="6b. IF LOST: Create chunk (proactive) F11 → F12 (create_chunk) F12 → F10 (create_new_chunk) Continue processing in chunk" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#7B1FA2;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="270" y="880" width="240" height="100" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="flow-7" value="7. Factor Graph optimize G10 (fuse VO + GPS)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="520" y="860" width="180" height="60" as="geometry"/>
|
||||
<mxCell id="flow-6c" value="6c. Progressive search (single-image) F11 → F04 (1→4→9→16→25) F08 Global PR + F09 LiteSAM" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#CC6600;strokeColor=#FFB300;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="540" y="880" width="220" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="flow-8" value="8. Coordinate transform G12 (Pixel → GPS)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="730" y="860" width="180" height="60" as="geometry"/>
|
||||
<mxCell id="flow-7" value="7. Factor Graph optimize F10 (chunk optimization) Fuse VO + GPS in chunk" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="790" y="880" width="200" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="flow-9" value="9. Publish results G13 → G03 (Route API) G13 → G14 (SSE to client)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E65100;strokeColor=#FFA726;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="940" y="860" width="180" height="80" as="geometry"/>
|
||||
<mxCell id="flow-8" value="8. Coordinate transform F13 (Pixel → GPS)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="1020" y="880" width="180" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="flow-9" value="9. Publish results F14 → F03 (Route API) F14 → F15 (SSE to client)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E65100;strokeColor=#FFA726;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="1230" y="880" width="180" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="arrow-1-2" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="gps-denied-lane" source="flow-1" target="flow-2" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
@@ -199,29 +202,65 @@
|
||||
<mxCell id="arrow-5-6b" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="gps-denied-lane" source="flow-5" target="flow-6b" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="arrow-5-6c" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="gps-denied-lane" source="flow-5" target="flow-6c" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="arrow-6a-7" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="gps-denied-lane" source="flow-6a" target="flow-7" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="arrow-6b-7" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="gps-denied-lane" source="flow-6b" target="flow-7" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="arrow-6c-7" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="gps-denied-lane" source="flow-6c" target="flow-7" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="arrow-7-8" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="gps-denied-lane" source="flow-7" target="flow-8" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="arrow-8-9" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="gps-denied-lane" source="flow-8" target="flow-9" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="chunk-title" value="Chunk Matching (Background - Atlas Multi-Map)" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="40" y="1000" width="500" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="chunk-1" value="F11 (background) → F12 get_chunks_for_matching() (unanchored, ready)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#7B1FA2;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="40" y="1040" width="220" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="chunk-2" value="F11 → F08 Chunk semantic matching (aggregate DINOv2)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=#42A5F5;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="290" y="1040" width="220" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="chunk-3" value="F11 → F06 Chunk rotation sweeps (12 angles: 0°-330°)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#CC6600;strokeColor=#FFB300;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="540" y="1040" width="220" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="chunk-4" value="F11 → F09 Chunk LiteSAM matching (aggregate correspondences)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=#42A5F5;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="790" y="1040" width="240" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="chunk-5" value="F11 → F10 add_chunk_anchor() merge_chunks(Sim3)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="1060" y="1040" width="200" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="arrow-chunk-1-2" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="gps-denied-lane" source="chunk-1" target="chunk-2" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="arrow-chunk-2-3" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="gps-denied-lane" source="chunk-2" target="chunk-3" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="arrow-chunk-3-4" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="gps-denied-lane" source="chunk-3" target="chunk-4" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="arrow-chunk-4-5" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="gps-denied-lane" source="chunk-4" target="chunk-5" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="user-input-title" value="User Input Recovery (when all search fails)" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="40" y="980" width="400" height="30" as="geometry"/>
|
||||
<mxGeometry x="40" y="1160" width="400" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="user-1" value="G11 exhausted (grid=25) → G14 send user_input_needed" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#8B1A1A;strokeColor=#EF5350;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="40" y="1020" width="240" height="70" as="geometry"/>
|
||||
<mxCell id="user-1" value="F11 exhausted (grid=25) → F15 send user_input_needed" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#8B1A1A;strokeColor=#EF5350;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="40" y="1200" width="240" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="user-2" value="Client responds G01 → G11 apply_user_anchor" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="310" y="1020" width="240" height="70" as="geometry"/>
|
||||
<mxCell id="user-2" value="Client responds F01 → F11 apply_user_anchor" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#388E3C;strokeColor=#66BB6A;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="310" y="1200" width="240" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="user-3" value="G11 → G10 add_absolute_factor (high confidence) Processing resumes" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="580" y="1020" width="240" height="70" as="geometry"/>
|
||||
<mxCell id="user-3" value="F11 → F10 add_absolute_factor (high confidence) Processing resumes" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="580" y="1200" width="240" height="70" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="arrow-user-1-2" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="gps-denied-lane" source="user-1" target="user-2" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
@@ -230,16 +269,16 @@
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="async-title" value="Asynchronous Trajectory Refinement" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="40" y="1130" width="350" height="30" as="geometry"/>
|
||||
<mxGeometry x="40" y="1310" width="350" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="async-1" value="G10 back-propagates new absolute factors" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="40" y="1170" width="220" height="60" as="geometry"/>
|
||||
<mxCell id="async-1" value="F10 back-propagates new absolute factors (chunk + global optimization)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6A1B9A;strokeColor=#BA68C8;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="40" y="1350" width="220" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="async-2" value="G13 detect changed frames → G03 batch_update_waypoints" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E65100;strokeColor=#FFA726;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="290" y="1170" width="240" height="60" as="geometry"/>
|
||||
<mxCell id="async-2" value="F14 detect changed frames → F03 batch_update_waypoints" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E65100;strokeColor=#FFA726;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="290" y="1350" width="240" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="async-3" value="G13 → G14 send frame_refined events" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E65100;strokeColor=#FFA726;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="560" y="1170" width="220" height="60" as="geometry"/>
|
||||
<mxCell id="async-3" value="F14 → F15 send frame_refined events" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#E65100;strokeColor=#FFA726;fontColor=#ffffff;" parent="gps-denied-lane" vertex="1">
|
||||
<mxGeometry x="560" y="1350" width="220" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="arrow-async-1-2" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="gps-denied-lane" source="async-1" target="async-2" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
@@ -256,21 +295,30 @@
|
||||
<mxCell id="external-detector" value="External<br>Object Detector (Azaion.Inference)<br>(provides pixel coords)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#C62828;strokeColor=#EF5350;dashed=1;fontColor=#ffffff;" parent="1" vertex="1">
|
||||
<mxGeometry x="1340" y="800" width="160" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="client-g01" value="HTTP REST" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="1" source="client" target="g01" edge="1">
|
||||
<mxCell id="client-f01" value="HTTP REST" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="1" source="client" target="f01" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g03-route" value="Per-frame waypoint updates" style="edgeStyle=orthogonalEdgeStyle;curved=1;dashed=1;strokeColor=#FFFFFF;fontColor=#ffffff;" parent="1" source="g03" target="r01" edge="1">
|
||||
<mxCell id="f14-route" value="Per-frame waypoint updates" style="edgeStyle=orthogonalEdgeStyle;curved=1;dashed=1;strokeColor=#FFFFFF;fontColor=#ffffff;" parent="1" source="f14" target="r01" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="g04-sat" value="Fetch tiles" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="1" source="g04" target="satellite-provider" edge="1">
|
||||
<mxCell id="f04-sat" value="Fetch tiles" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="1" source="f04" target="satellite-provider" edge="1">
|
||||
<mxGeometry x="0.3759" y="-10" relative="1" as="geometry">
|
||||
<mxPoint as="offset"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="g14-client" value="SSE Events" style="dashed=1;strokeColor=#FFFFFF;fontColor=#ffffff;" parent="1" source="g14" target="client" edge="1">
|
||||
<mxCell id="f15-client" value="SSE Events" style="dashed=1;strokeColor=#FFFFFF;fontColor=#ffffff;" parent="1" source="f15" target="client" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="detector-g12" value="Object pixels → GPS" style="dashed=1;strokeColor=#FFFFFF;fontColor=#ffffff;" parent="1" source="external-detector" target="g12" edge="1">
|
||||
<mxCell id="detector-f13" value="Object pixels → GPS" style="dashed=1;strokeColor=#FFFFFF;fontColor=#ffffff;" parent="1" source="external-detector" target="f13" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="f12-f10" value="Chunk lifecycle" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="1" source="f12" target="f10" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="f12-f08" value="Chunk descriptors" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="1" source="f12" target="f08" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="f11-f12" value="Chunk matching" style="strokeColor=#FFFFFF;fontColor=#ffffff;" parent="1" source="f11" target="f12" edge="1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="legend-title" value="Legend" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;fontColor=#ffffff;" parent="1" vertex="1">
|
||||
@@ -282,9 +330,12 @@
|
||||
<mxCell id="legend-1" value="Route API Components" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#B8860B;strokeColor=#FFD54F;fontColor=#ffffff;" parent="1" vertex="1">
|
||||
<mxGeometry x="120" y="2790" width="140" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="legend-2" value="GPS-Denied Core/API" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#8B1A1A;strokeColor=#EF5350;fontColor=#ffffff;" parent="1" vertex="1">
|
||||
<mxCell id="legend-2" value="Flight API Core" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#8B1A1A;strokeColor=#EF5350;fontColor=#ffffff;" parent="1" vertex="1">
|
||||
<mxGeometry x="280" y="2790" width="140" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="legend-8" value="Chunk Management" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#7B1FA2;strokeColor=#BA68C8;fontColor=#ffffff;" parent="1" vertex="1">
|
||||
<mxGeometry x="600" y="2840" width="140" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="legend-3" value="Visual Processing" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E88E5;strokeColor=#42A5F5;fontColor=#ffffff;" parent="1" vertex="1">
|
||||
<mxGeometry x="440" y="2790" width="140" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
Reference in New Issue
Block a user