ajuste para reduzir o carro para pulverizar

This commit is contained in:
Diego Freitas 2026-08-13 21:30:47 -03:00
parent bb546da70f
commit a1d2ec01c8
1 changed files with 20 additions and 2 deletions

View File

@ -174,8 +174,7 @@ def definir_comando(filtro_vel: FiltroVelocidade, erro_orientacao: float = None)
ervas_no_radar = (
pulverizador_automatico and
info_ervas["atualizado"] and
info_ervas["ervas_no_radar"] and
info_ervas["percentual_ervas"] >= ervas_min_percent
info_ervas["ervas_no_radar"]
)
reduzir_para_pulverizar = bool(ervas_no_radar)
@ -352,6 +351,25 @@ def definir_comando(filtro_vel: FiltroVelocidade, erro_orientacao: float = None)
debug=debug,
)
# Correção crítica:
# havendo erva no radar, a saída nunca pode superar a mínima definida.
if reduzir_para_pulverizar:
velocidade_filtrada = min(
velocidade_filtrada,
vel_com_ervas
)
# Sincroniza o estado da rampa com a saída realmente aplicada.
try:
filtro_vel._ultimo_sp_campo = velocidade_filtrada
filtro_vel._ultimo_ts_campo = time.monotonic()
except Exception:
pass
debug["limitadores"].append(
f"ervas no radar: teto rígido em {vel_com_ervas:.1f}%"
)
velocidade_filtrada = round(
_clamp(velocidade_filtrada, 0.0, vel_sem_ervas),
2