CARLA ? C-Shenron based Simualtor for Sensor data generation.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

4.9 KiB

🚩 Benchmark: 3D Energy Compression & Environmental Clutter (Tree Density)

Metadata:

  • Status: Research & Mitigation Planning (Iteration 14)
  • Domain: Physics-Based Radar Simulation / ADAS Fidelity
  • Goal: Resolve signal intensity imbalance between thin targets (Vehicles) and voluminous targets (Trees/Buildings).

🔍 1. Problem Statement: The "Super-Reflector" Tree

In Iteration 13, we identified a significant intensity discrepancy in the Foxglove 3D panel. While NPC vehicles (primary ADAS targets) produced stable but moderate point clouds, environmental objects like Trees and Distant Buildings generated extremely dense, high-SNR reflections that overwhelmed the CFAR detector.

Observed Discrepancies:

  • Visual Clumping: Trees appeared as solid "walls" of radar points, whereas in real-world 77GHz hardware, trees should appear as sparse, flickering points due to low-RCS foliage.
  • Dynamic Range Mismatch: The "Magnitude" attribute for a tree (voluminous) was an order of magnitude higher than a sedan (thin metallic surface), violating expected ADAS SNR profiles.

🧮 2. Root Cause Analysis

The issue is a side-effect of how the Shenron pipeline compresses a 3D LiDAR scene into a 2D Radar heatmap.

A. The "Shrinking" Math (heatmap_gen_fast.py)

The physics engine iterates through all 100k+ LiDAR points and sums their complex phases into the ADC signal cube based strictly on Range (rho) and Azimuth (theta).

B. The Vertical Summation Problem (Sceneset.py)

In the current implementation (Line 412):

P_incident = np.power(rho,2) * ... * (1/np.power(rho,tx_dist_loss_exponent)) * K_sq 
  • Infinite Vertical Gain: The radar currently has no vertical beamwidth ($G(\phi)$). It "sees" every point from the ground to the sky with equal gain.
  • Energy Integration: A tree consists of thousands of points spread vertically. When the 3D scene is flattened, the radar treats those 1,000 vertical points as a single, super-powered reflection.
  • Result: The 2D energy bin for a tree is the sum of all its vertical slices, making it look artificially "loud" compared to a 1.5m tall car.

🛠️ 3. Proposed Mitigation Strategies

Phase A: Vertical Antenna Gain (Boresight Weighting)

Implement a Gaussian Vertical Beam Pattern in the P_incident calculation to model the directive nature of ADAS antenna arrays.

  • Math: Introduce a damping factor $G_{elev} = \exp\left(-2.77 \cdot \left(\frac{\phi}{\beta}\right)^2\right)$, where $\phi$ is the elevation angle and $\beta$ is the vertical beamwidth.
  • The "2.77" Constant: This constant ensures that when the elevation ($\phi$) reaches exactly half the beamwidth ($\beta/2$), the power is attenuated by exactly 3dB (50%). This aligns the simulation with standard hardware datasheets.
  • Impact: Points at the top of a tree or skyscraper are "blinded" by the antenna pattern, ensuring their vertical energy isn't integrated into the horizontal detection bin.

Phase B: Density-Based Normalization (The "Resolution Trap")

[RESOLVED in Iteration 26] Solve the physical inconsistency where increasing LiDAR resolution increases Radar intensity.

  • The Initial Attempt (Iter 14): Tried dynamic $1/N$ normalization; caused background-dependency.
  • The Second Attempt (Iter 16): Used fixed DENSITY_REF = 1000. Stop-gap measure.
  • The Final Fix (Iter 26): Pure Physical R^-4 Alignment. By removing all artificial normalizations and following free-space physics, the signal levels naturally balance. Large distant buildings are dimmed by distance, and near-field cars remain dominant.
  • Impact: Simulation is now 100% true-to-life; "Resolution Trap" eliminated.

🧭 4. Implementation Steps (Iteration 14)

  1. Hardware Profile Update: Define self.vertical_beamwidth in ConfigureRadar.py.
  2. Physics Engine Implementation: Add the Gaussian vertical damping logic and $1/N$ normalization to shenron/Sceneset.py.
  3. DSP Calibration: Fine-tune the threshold and guard cells in sim_radar_utils/config.yaml to match the new dynamic range.

📚 Annex: Technical Reference

Key Files to Reference

File Role Change Required
ConfigureRadar.py Hardware Profiles Define vertical_beamwidth for awrl1432 and radarbook.
shenron/Sceneset.py Physics Engine Implement Gaussian $G_{elev}$ and density normalization.
sim_radar_utils/config.yaml DSP Config Adjust threshold and guard cells after vertical energy is balanced.

Knowledge Base

  • Calibration History: Shenron_debug.md (Iterations 01-13).
  • Architecture Guide: context.md (AI navigation rules).

Generated by Antigravity AI | 2026-04-07 | Knowledge Transfer Benchmark V2.