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.
- 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
- physics: increased metal roughness in Sceneset.py to 1.5mm for better diffuse scattering
- cfar: widened guard cells to 5x5 in config.yaml to isolate clutter; threshold kept at 20dB
- signal-processing: implemented 3x3 local maximum filter (NMS) in radar_processor.py to eliminate sidelobes
- config: enabled peak_grouping toggle in config.yaml
Comprehensive integration of the Shenron radar model, enabling high-fidelity
physics-driven radar synthesis from semantic LiDAR data.
Core Changes:
- Sensor Migration: Updated EGO vehicle to use 'sensor.lidar.ray_cast_semantic'.
- Recorder Enhancement: Modified src/recorder.py to dynamically capture
6/7nd-column semantic LiDAR buffers [x, y, z, cos, obj, tag].
- Orchestration: Created scripts/ISOLATE/model_wrapper.py with the
ShenronRadarModel class for a unified physics-to-detection API.
- Processor Logic: Fixed broadcasting bugs and hardcoded antenna counts
in RadarProcessor to support dynamic radar models (radarbook/ti_cascade).
- Rich Data Output: Updated extraction logic to include [velocity, magnitude]
parameters for ADAS performance analysis.
- Batch Pipeline: Added scripts/generate_shenron.py to synthesize radar
data as a post-processing step, maintaining simulation performance.
- Visualization: Updated scripts/data_to_mcap.py to support the
new /radar/shenron topic with a 5-field rich PointCloud schema.
Stability & Fixes:
- Implemented CUDA-enabled PyTorch checks with a robust CPU fallback.
- Corrected CARLA 0.9.16 semantic column mapping in ISOLATE/lidar.py.
- Handled indexing and range-slicing errors in the CFAR detection routine.