claudeDroneteam-docs
documentation · reference
Docs reference

Structured knowledge from collected_doc_media/claudedrone_docs/. Browse the tree on the left; the source of truth is markdown in the repo.

ToF sim-to-real — domain randomization noise sweep (research)

Transferring a TF-Luna-trained RL policy to the real sensor: which sigma noise to add to Gazebo's gpu_lidar, domain-randomization setup, and critical ranges.

stableresearchbestupdated 2026-05-11T00:00:00.000ZClaudeDroneResearchSim2RealToFDomainRandomizationRL

Context

The RL policy trains on Gazebo’s gpu_lidar-simulated TF-Luna. On the real TF-Luna A03:

  • ±6 cm typical accuracy at ≤8 m.
  • Amplitude-dependent noise under low contrast / overexposure.
  • Periodic dropouts during servo motion (DroneBot forum).

Without noise injection in sim — the policy overfits to a “clean” sensor and produces brittle behavior on the real drone.

Final recommendation — noise injection in gpu_lidar

<sensor name="tf_luna_sweep" type="gpu_lidar">
  <lidar>
    <range>
      <min>0.2</min>
      <max>8.0</max>
      <resolution>0.01</resolution>
    </range>
    <noise>
      <type>gaussian</type>
      <mean>0.0</mean>
      <stddev>0.05</stddev>      <!-- 5 cm σ — baseline real-world TF-Luna -->
    </noise>
  </lidar>
</sensor>

Domain randomization sweep (from RL training results)

σ noise Coverage success sim2real gap Verdict
0.00 (no noise) 95% sim catastrophic overfit baseline
0.03 (3 cm) 88% medium clean training, real-world OK
0.05 (5 cm) 82% best selected — matches real-world variance
0.10 (10 cm) 68% conservative safety margin
0.20 (20 cm) 45% over-randomized too noisy for learning

σ=0.05 m — optimum from rl-lab empirical RL experiments (see rl-lab/docs/dev-log/21-sim-to-real-noise-sweep-vl53_0-critical_HUMANED.md).

What TF-Luna behaves like in the real world

Noise source sim real
Gaussian distance noise ✅ via gpu_lidar <noise> block ±6 cm typical
Amplitude-dependent reject (amp<100 invalid) ❌ not in sim health flag in firmware driver, see TF-Luna driver
Overexposure dropout (amp=0xFFFF) ❌ not in sim under bright light / mirrors
Servo motion artifacts ❌ not in sim settle delay required
Temperature drift ❌ no in the datasheet spec

Additional randomizations for RL

  1. Random rotation — sensor-frame rotation ±2° random per episode (balances “arm seats perfectly” against reality).
  2. Random offset — Z calibration offset ±10 cm per episode (balances calibration drift against noise).
  3. Random dropouts — p_dropout=0.05 per ray in LaserScan (mimics servo + bus issues).

Related nodes

Sources

  1. DroneBot forum — real-world TF-Luna + servo artifacts.
  2. Benewake TF-Luna A03 datasheet — accuracy specs.
  3. rl-lab dev-log 21 — noise sweep VL53_0 critical (parallel research at rl-lab).
  4. OpenAI Spinning Up — Sim-to-Real — general methodology.
© 2026 claudeDrone Team · auto-pipeline · Nuxt 3 SSR