tune(SNNBot): tighten stationary dead zone to 0.5°

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 08:46:06 +02:00
parent 1790dd0ca4
commit 581bfb532c
+3 -3
View File
@@ -383,9 +383,9 @@ method run*(bot: SNNBot) =
let err = abs(normalizeRelativeAngle(bot.targetAngle - gunDir))
# Adaptive dead zone: scale learning threshold by enemy velocity
# Stationary → 1.5° (stable), full speed (8 units/tick) → 0.3° (fast tracking)
# Stationary → 0.5° (stable), full speed (8 units/tick) → 0.3° (fast tracking)
let t = (bot.velSpeed / 8.0).clamp(0.0, 1.0)
let adaptiveDeadZone = 1.5 + (0.3 - 1.5) * t # lerp(1.5, 0.3, t)
let adaptiveDeadZone = 0.5 + (0.3 - 0.5) * t # lerp(0.5, 0.3, t)
# Fire gate: only fire when error within adaptive dead zone
if err < adaptiveDeadZone:
@@ -406,7 +406,7 @@ method run*(bot: SNNBot) =
# Adaptive learning dead zone: scale by enemy velocity (same as fire gate)
let t = (bot.velSpeed / 8.0).clamp(0.0, 1.0)
let adaptiveDeadZone = 1.5 + (0.3 - 1.5) * t # lerp(1.5, 0.3, t)
let adaptiveDeadZone = 0.5 + (0.3 - 0.5) * t # lerp(0.5, 0.3, t)
when USE_RESERVOIR:
let aimRaw = bot.res.forward(bot.lastBinInput)