forked from 30hours/3lips
-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
mvpMVP-critical issueMVP-critical issue
Milestone
Description
Overview
Implement Time Difference of Arrival (TDOA) and Frequency Difference of Arrival (FDOA) processing to enable proper multi-static radar positioning from raw delay/Doppler measurements.
Problem Statement
Current Gap: The system expects individual radar delay/Doppler measurements but multi-static localization requires relative measurements between radar pairs.
From Flowchart: The "Solver" component shows "node pair detection" processing, indicating the need for relative measurements between radar nodes.
Current vs Required Processing
Current Approach
Radar1: delay=100ms, doppler=50Hz
Radar2: delay=120ms, doppler=30Hz
Radar3: delay=80ms, doppler=70Hz
↓
Direct geometric localization (may be suboptimal)
Required Multi-Static Approach
Raw measurements → TDOA/FDOA computation → Localization
TDOA_12 = delay1 - delay2 = -20ms
TDOA_13 = delay1 - delay3 = +20ms
FDOA_12 = doppler1 - doppler2 = +20Hz
FDOA_13 = doppler1 - doppler3 = -20Hz
↓
Optimized position solving with relative measurements
Target State for MVP
Phase 1: Basic TDOA Processing
- Compute relative delays between radar pairs
- Apply clock synchronization corrections (if available)
- Interface with existing localization algorithms
- Handle missing/invalid measurements gracefully
Phase 2: FDOA Integration (if needed)
- Compute relative Doppler shifts for velocity estimation
- Integrate with tracking filter for improved state estimation
Implementation Approach
class TdoaFdoaProcessor:
def process_measurements(self, radar_detections, target_associations):
"""Convert individual radar measurements to relative TDOA/FDOA"""
processed_targets = {}
for target_id, detections in target_associations.items():
if len(detections) >= 2:
# Compute all pairwise TDOA/FDOA measurements
tdoa_measurements = self._compute_tdoa_pairs(detections)
fdoa_measurements = self._compute_fdoa_pairs(detections)
processed_targets[target_id] = {
'tdoa': tdoa_measurements,
'fdoa': fdoa_measurements,
'radar_positions': [det['radar_pos'] for det in detections]
}
return processed_targetsFiles to Create
event/algorithm/processing/TdoaFdoaProcessor.pyevent/algorithm/processing/__init__.pytest/event/test_tdoa_fdoa_processing.py
Files to Modify
event/event.py- Integrate TDOA processing into main pipelineevent/algorithm/localisation/- Update localization to use TDOA measurements- Configuration files - Add TDOA processing parameters
Benefits for MVP
- More accurate positioning with proper multi-static measurements
- Better handling of timing uncertainties
- Foundation for advanced localization algorithms
- Alignment with flowchart "Solver" component design
Integration with Existing System
Before RadarOnlyAssociator (#20)
Raw radar data → Need association first → Then TDOA processing
After RadarOnlyAssociator (#20)
Raw radar data → Association → TDOA processing → Localization → Tracking
Success Criteria
- Compute TDOA measurements from associated radar detections
- Handle clock synchronization issues appropriately
- Integrate with existing localization algorithms
- Improve positioning accuracy compared to direct delay processing
- Performance suitable for real-time operation
- Works with synthetic-adsb test data and real radar inputs
Dependencies
- Requires Implement RadarOnlyAssociator for pure radar tracking #20 (RadarOnlyAssociator) - Need associated detections first
- Should be completed before major localization improvements (Assess and improve localization accuracy (post-radar-association) #9)
MVP Priority
🟡 HIGH - Required for proper multi-static radar operation
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
mvpMVP-critical issueMVP-critical issue