From a1d2ec01c866738554711d661b38d86718b3dcb6 Mon Sep 17 00:00:00 2001 From: Diego Freitas Date: Thu, 13 Aug 2026 21:30:47 -0300 Subject: [PATCH] ajuste para reduzir o carro para pulverizar --- .../manager_worker/modulos/movimentacao.py | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/AgroBase/AgroBase/bin/x64/Debug/Python/Scripts/workers/manager_worker/modulos/movimentacao.py b/AgroBase/AgroBase/bin/x64/Debug/Python/Scripts/workers/manager_worker/modulos/movimentacao.py index 577dab335..f5719cf0e 100644 --- a/AgroBase/AgroBase/bin/x64/Debug/Python/Scripts/workers/manager_worker/modulos/movimentacao.py +++ b/AgroBase/AgroBase/bin/x64/Debug/Python/Scripts/workers/manager_worker/modulos/movimentacao.py @@ -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