# [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 will now handle the "Rich" data synthesis: 1. Call `Sceneset` to get the ground-truth physical power (RCS). 2. Call `HeatmapGen` to generate the noisy ADC stream. 3. Call `RadarProcessor` to extract detected peaks. 4. Merge the detected peaks with the underlying RCS data to provide a complete "Semantic Radar" point cloud. --- ## Phase 3: Modular Pipeline Integration ... (Previously defined) --- ## Verification Plan ### Automated Verification 1. **API Integrity**: Run a script that initializes the `ShenronRadarModel` and passes a dummy [N, 7] array to ensure it executes and returns the correct [N, 4] shape. 2. **Batch Run**: Execute `generate_shenron.py` on an existing dataset. ### Manual Verification 1. Compare the MCAP output with vs. without the Shenron layer to ensure topic alignment. --- ## 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//shenron_radar/` contains 100 `.npy` files. ### Manual Verification 1. Run `python scripts/data_to_mcap.py`. 2. Open the MCAP in Foxglove and verify that the `/radar/shenron` topic perfectly overlays with the `/lidar` data but shows radar-typical noise and sparsity.