# [Plan] Shenron Model-Based Development (MBD) Integration This plan shifts the integration to a **Model-Based Development** architecture. We will treat the isolated Shenron logic as a "strictly defined black box" (similar to a Simulink model) and enhance it to output "Rich" radar data. ## User Review Required > [!IMPORTANT] > **Rich Point Cloud**: We will modify the extraction logic to output more than just geometry. The new format will be: `[x, y, z, velocity, SNR, RCS_estimate]`. > > **Source of Data**: > - **SNR**: Extracted from the peak magnitude in the Range-Doppler heatmaps. > - **RCS**: Back-calculated from the return power logic in `Sceneset`. > - **Noise**: Sampled from the simulated noise floor in `ConfigureRadar`. --- ## Phase 1: Environment & Dependency Setup ... (Previously defined) --- ## Phase 2: The "Black Box" Wrapper & Rich Extraction ### [MODIFY] `ISOLATE/sim_radar_utils/radar_processor.py` Modify `convert_to_pcd()` to preserve the magnitude of the detected peaks. - **Current**: Returns `[x, y]`. - **New**: Returns `[x, y, z, velocity, magnitude]`. ### [NEW] `ISOLATE/model_wrapper.py` The wrapper handles "Rich" data synthesis and telemetry: 1. Call `Sceneset` for ground-truth physical power (RCS). 2. Call `HeatmapGen` for the noisy ADC stream. 3. Call `RadarProcessor` to extract detected peaks. 4. **Telemetry**: New `get_signal_metrics()` method exports SNR and noise floor data. --- ## Phase 3: Modular Pipeline Integration The automated pipeline now supports concurrent hardware simulation. ### [MODIFY] `scripts/generate_shenron.py` Loop through multiple hardware profiles: - **AWRL1432**: Short-range, high-resolution. - **RadarBook**: Long-range standard. ### [MODIFY] `scripts/data_to_mcap.py` UnifiedTopic Management: - `/radar/native` - `/radar/awrl1432` - `/radar/radarbook` --- ## Verification Plan ### Automated Verification 1. **Pilot Run**: Record a 100-frame scenario with semantic LiDAR. 2. **Post-Process**: Run `python scripts/generate_shenron.py`. 3. **Check Output**: Verify `data//awrl1432/` and `radarbook/` contain 100 `.npy` files each. ### Manual Verification 1. Run `python scripts/data_to_mcap.py`. 2. Open the MCAP in Foxglove and verify that the `/radar/radarbook/metrics` topic shows stable telemetry curves.