diff --git a/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/ConfigureRadar.py b/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/ConfigureRadar.py index 7dc3b6f..dbc19e3 100644 --- a/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/ConfigureRadar.py +++ b/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/ConfigureRadar.py @@ -90,12 +90,12 @@ class radar(): self.orientation = 90 # orientation of radar self.f = 77e9 - self.B = 400e6 # 400MHz (37.5cm resolution) + self.B = 137.2e6 # 137.2MHz (aligns with hardware reference for SNR concentration) self.c = 3e8 self.N_sample = 256 self.samp_rate = 12.5e6 self.doppler_mode = 1 - self.chirps = 64 # Optimized: 2x faster, but with high SNR for Angular precision + self.chirps = 128 # Increased to match 2TX MIMO frame depth for 3dB processing gain self.nRx = 6 self.noise_amp = 0.005 self.gain = 10 ** (110 / 10) # Calibrated for Iteration 16 diff --git a/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/lidar.py b/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/lidar.py index 440dd3b..8d24077 100644 --- a/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/lidar.py +++ b/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/lidar.py @@ -105,7 +105,7 @@ def Cropped_forRadar(pc, veh_coord, veh_angle, radarobj): simobj = Sceneset(new_pc) [rho, theta, loss, speed, angles] = simobj.specularpoints(radarobj) - print(f"Number of points = {rho.shape[0]}") + # Per-frame print suppressed for dashboard cleanliness return rho, theta, loss, speed, angles def run_lidar(sim_config, sem_lidar_frame, radarobj=None): diff --git a/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/shenron/Sceneset.py b/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/shenron/Sceneset.py index b9f8fee..252f671 100644 --- a/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/shenron/Sceneset.py +++ b/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/shenron/Sceneset.py @@ -423,8 +423,7 @@ def get_loss_3(points, rho, elev_angle, angles, radar, use_spec = True, use_diff P_incident = (1 / np.power(rho, tx_dist_loss_exponent)) * K_sq * G_vertical # DEBUG: Monitor Signal Trends - if len(G_vertical) > 0: - print(f"[ITER 17] P_inc mean: {np.mean(P_incident):.4f} | Pts: {len(rho)}") + # P_inc print suppressed — data captured via model.get_signal_metrics() telemetry material = np.array(points[:,4]) material = np.asarray(material, dtype = 'int') diff --git a/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/shenron/heatmap_gen_fast.py b/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/shenron/heatmap_gen_fast.py index 29cd0d7..1682276 100644 --- a/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/shenron/heatmap_gen_fast.py +++ b/scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/shenron/heatmap_gen_fast.py @@ -69,7 +69,7 @@ def heatmap_gen(rho, theta, loss, speed, radar, plot_fig, return_power): gpu_id = 0 device = torch.device('cpu') - print(f"------- Using {device}:{gpu_id} -------") + # GPU print suppressed — emitted once via telemetry in generate_shenron.py # beamforming_vector_constant = np.zeros((radar.nRx,rho.shape[0])) delta = torch.zeros((radar.nRx,rho.shape[0]),device= device) diff --git a/scripts/ISOLATE/model_wrapper.py b/scripts/ISOLATE/model_wrapper.py index 8d43716..e330f2e 100644 --- a/scripts/ISOLATE/model_wrapper.py +++ b/scripts/ISOLATE/model_wrapper.py @@ -28,7 +28,7 @@ class ShenronRadarModel: Args: radar_type (str): Type of radar to simulate (default: 'radarbook'). """ - print(f"Initializing ShenronRadarModel with type: {radar_type}") + # Init message suppressed — telemetry is emitted by generate_shenron.py self.radar_type = radar_type # Initialize the hardware radar object @@ -69,7 +69,7 @@ class ShenronRadarModel: ur.fftCfg['NFFT'] = self.radar_obj.N_sample ur.fftCfg['NFFTVel'] = self.radar_obj.chirps - print(f"Synced global config: N={ur.radarCfg['N']}, Np={ur.radarCfg['Np']}, Ant={ur.radarCfg['NrChn']}") + # Sync log suppressed for dashboard cleanliness — data exposed via get_radar_specs() # CRITICAL: Re-initialize the internal axes of the processor to match new hardware if hasattr(self, 'processor'): @@ -160,6 +160,22 @@ class ShenronRadarModel: "active_bins": int(np.sum(rd > avg_noise)) } + def get_radar_specs(self): + """Return radar hardware specs for dashboard telemetry.""" + r = self.radar_obj + return { + "type": self.radar_type, + "freq_ghz": r.f / 1e9, + "bw_mhz": r.B / 1e6, + "chirps": r.chirps, + "samples": r.N_sample, + "antennas": r.nRx, + "range_res_m": round(r.range_res, 3), + "max_range_m": round(r.max_range, 1), + "chirp_rep_us": round(r.chirp_rep * 1e6, 1), + "gain_db": round(10 * np.log10(r.gain), 1), + } + if __name__ == "__main__": # Internal test/demo model = ShenronRadarModel() diff --git a/scripts/ISOLATE/sim_radar_utils/config.yaml b/scripts/ISOLATE/sim_radar_utils/config.yaml index a60e8e3..a2d1468 100644 --- a/scripts/ISOLATE/sim_radar_utils/config.yaml +++ b/scripts/ISOLATE/sim_radar_utils/config.yaml @@ -1,14 +1,14 @@ radar: - fStrt: 77.0e9 # GHz - fStop: 77.4e9 # 400 MHz Bandwidth - TRampUp: 100e-6 - TInt: 100e-3 - Tp: 1000e-6 + fStrt: 77.0e9 # GHz (AWRL1432 Carrier) + fStop: 77.1372e9 # 137.2 MHz Bandwidth (matched to ConfigureRadar.py) + TRampUp: 20.48e-6 # Active ADC sweep time (N / samp_rate) + TInt: 36.4e-6 # Total chirp interval (chirpT + idle) + Tp: 36.4e-6 # Chirp Repetition Period — overridden at runtime by _sync_configs() N: 256 IniTim: 100e-3 IniEve: 0 TxSeq: [1] - Np: 64 # Optimized balance of Speed and SNR + Np: 128 # Matches ConfigureRadar.py for AWRL1432 alignment AntIdx: [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15] # AntIdx: [0, 1, 2, 3, 4, 5, 6, 7] NrChn: 86 #16