Browse Source

feat(radar): synchronize AWRL1432 hardware profile and suppress console noise

main
RUSHIL AMBARISH KADU 1 month ago
parent
commit
7c837c94fc
  1. 4
      scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/ConfigureRadar.py
  2. 2
      scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/lidar.py
  3. 3
      scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/shenron/Sceneset.py
  4. 2
      scripts/ISOLATE/e2e_agent_sem_lidar2shenron_package/shenron/heatmap_gen_fast.py
  5. 20
      scripts/ISOLATE/model_wrapper.py
  6. 12
      scripts/ISOLATE/sim_radar_utils/config.yaml

4
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

2
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):

3
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')

2
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)

20
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()

12
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

Loading…
Cancel
Save