- Expanded intel/internal/context.md with modern stage-based architecture and internal documentation structure.
- Corrected SNR calculation in model_wrapper.py by dividing out the CFAR threshold.
- Tuned CFAR threshold to 19dB for increased point cloud density.
- Integrated stop flag detection into PipelineManager and ShenronOrchestrator for graceful halting.
- Synchronized metrology gain offsets (-78.0dB) across production and testbench scripts.
- Added 'ti_cascade' support to default radar list and testbench visualization.
Established a common orchestration framework to eliminate logic
duplication between production data generation and the iterative
testbench.
Key changes:
- Created 'ShenronOrchestrator' in scripts/ISOLATE/shenron_orchestrator.py
to serve as the single source of truth for the processing loop.
- Refactored 'generate_shenron.py' to use the orchestrator, ensuring
production data benefit from research-level DSP improvements.
- Refactored 'test_shenron.py' to use the orchestrator, guaranteeing
that debug iterations are bit-identical to production outputs.
- Centralized LiDAR padding, model execution, and metrology/metric
serialization logic.
- Preserved Dashboard SSE telemetry patterns ([SHENRON_INIT/STEP])
to maintain full UI compatibility.
This restructuring ensures that any iterative changes made in the
'test_shenron' lab are automatically and safely inherited by the
Dashboard's automated simulation pipeline.
Restores sharp target peaks and improves signal clarity in Shenron radar outputs
by optimizing windowing functions and disabling smoothing-heavy interpolation.
- radar_processor.py: Switched windowing from Hann to Blackman-Harris for range
and velocity processing to achieve deeper sidelobe rejection (-92 dB) and
suppress horizontal artifacts.
- test_shenron.py: Replaced 'bicubic' interpolation with 'nearest' for Range-Doppler
(RD) and CFAR maps to restore diagnostic clarity and prevent target blurring.
- config.yaml: Removed hardcoded RD plot limits (xRange/yRange) to ensure the
renderer utilizes the true physical axis (e.g., ±26.8 m/s) derived from hardware specs.
- Added technical comments explaining the trade-off between main-lobe width and
dynamic range in the new DSP windowing.
- [Radar Cfg] Increase gain by +10dB (110dB -> 120dB) for all radar models in ConfigureRadar.py
- [Root Cause] Compensate for the SNR drop caused by restoring the 1/R^4 physics law (Iteration 37), which removed the artificial R^2 area boost and made RD maps 'hazy' or 'out of focus'.
- [Viz] Update SYSTEM_GAIN_OFFSET from 68.0 to 78.0 in plots.py and test_shenron.py
- [Viz] Increase dynamic range clipping ceiling from 45dB to 55dB
- [Root Cause] Prevents RA heatmap saturation. The +10dB gain increase caused signals to hit the previous 45dB hard-clip ceiling, making the dynamic plots look identical to the static ones (blown out).
- [Physics] Disable R^2 area expansion in Sceneset.get_loss_3 to restore
physically correct 1/R^4 two-way radar power law (point scatterer model)
- [Metrology] Normalize RA heatmap [0,1] before variance calculation in
model_wrapper.py to prevent 1e20 scalar overflow values
- [Metrology] Add peak_azimuth_spread_deg (Half-Power Beamwidth proxy)
to signal metrics for per-frame angular resolution monitoring
- [DSP] Switch spatial Angle-FFT window from Hanning to Hamming in
radar_processor.py for sharper beamforming on small antenna arrays (6-8 Rx)
- [Telemetry] Expose az_std and spread in [SHENRON_STEP] dashboard stream
for both generate_shenron.py and test_shenron.py pipelines
- [BugFix] Add missing sys/os imports in src/main.py and video_stage.py
that caused NameError crashes in the stage-based pipeline orchestrator
- Refactored heatmap rendering, stateful engine, and scan conversion from test_shenron.py into new sim_radar_utils.plots module
- Updated FastHeatmapEngine to automatically respect xRange/yRange overrides sourced from config.yaml
- Calibrated Range-Doppler plot limits to ±8 m/s in config.yaml for optimized visual inspection
- Cleaned up test_shenron.py by removing ~150 lines of redundant visualization logic and heavy Matplotlib imports
- Added __init__.py to sim_radar_utils to ensure proper package identification
Standardizes the metrology diagnostic suite for high-fidelity focus and
consistent dB scaling.
Core Improvements:
- Signal Processing: Switched Range and Doppler FFTs to Hann windowing,
reducing peak width by ~50% for sharper target focus (Iteration 27).
- Visualization Style: Implemented a fixed-scale MATLAB-style Jet colormap
(-5 to 45 dB). Disabled per-frame auto-scaling to preserve temporal
intensity consistency and physical R^-4 decay.
- Calibration: Applied a -68.0 dB System Gain Offset in post-processing
(calculated via statistical analysis of raw power levels in Iter 28)
to align noise floors (~7 dB) and target peaks (~41 dB).
- Pipeline: Standardized these focus and calibration settings across both
the testbench (test_shenron.py) and packaging pipeline (data_to_mcap.py).
- Docs: Verified and restored gemini.md at the repository root as the
master project context.
This milestone (Iteration 29) finalizes the visual interpretability of the
physics-based Shenron radar engine.
Restores high-fidelity physical realism to the C-Shenron radar engine by
aligning the synthesis pipeline with the pure Radar Range Equation.
Core Improvements:
- Physics: Restored 1/R^4 power-delay law (1/R^2 voltage) in Sceneset.py
and heatmap_gen_fast.py. Stripped legacy 1/1000 normalizations and
R^2 area-growth workarounds.
- Geometry: Fixed FFT index asymmetry in radar_processor.py, achieving a
perfectly symmetric 120° FOV sector.
- Metrology: Implemented "Radar Blue" (Viridis) 120° fan-projection for
diagnostic Range-Azimuth heatmaps.
- Automation: Integrated RD/RA/CFAR heatmap persistence into the
automated simulation-to-MCAP pipeline (data_to_mcap.py).
- Docs: Comprehensive update of intel/ directory, including Iterations 17-26
and the Physics/Symmetry Milestone deep-dive.
This milestone ensures that target brightness and spatial positioning
correctly mimic real-world TI AWRL1432 radar hardware.
- Engine: Modified CFAR and Processor to extract raw Range-Doppler and Range-Azimuth energy heatmaps.
- Visuals: Integrated high-fidelity Matplotlib colormapping (Viridis/Magma) for Foxglove image streaming.
- Data: Implemented 32-bit raw .npy persistence and JSONL telemetry for frame-level SNR analysis.
- Tools: Added a dedicated verification utility for end-to-end signal flow validation.
- Docs: Comprehensive documentation for the new 'Radar Lab' architecture in /intel/.