From 803f386fe6ad29d24cb00ae23d4474be83e0c70b Mon Sep 17 00:00:00 2001 From: janpoo6427 <62945300+janpoo6427@users.noreply.github.com> Date: Sat, 6 Jun 2026 18:29:14 +0900 Subject: [PATCH] Resolve lane change timing bug and improve state handling Fix lane change flag activation and conditions for state transitions. --- selfdrive/controls/lib/desire_helper.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/selfdrive/controls/lib/desire_helper.py b/selfdrive/controls/lib/desire_helper.py index 09bf9f711..e07a88aaf 100644 --- a/selfdrive/controls/lib/desire_helper.py +++ b/selfdrive/controls/lib/desire_helper.py @@ -469,8 +469,8 @@ class DesireHelper: # ── laneChangeStarting 상태 ────────────────────────────── elif self.lane_change_state == LaneChangeState.laneChangeStarting: - if self.lane_change_timer == 0.0: - self.lane_change_completed_on_blinker = True + # [수정] 프레임 타이밍 버그 해결: 상태 진입 시 조건 없이 즉시 플래그 가동 + self.lane_change_completed_on_blinker = True # 후측방 사각지대 차량 감지 상태 정의 bsd_active = (side is not None) and (side.bsd_hold_counter > 0) and (self.lane_change_bsd >= 0) @@ -492,6 +492,7 @@ class DesireHelper: self.unsafe_cancel_timer, max(self.bsd_clear_sec, self.object_clear_sec, 1.5) ) + # 위험 상황으로 인한 취소 시에는 플래그를 꺼서 재시도 허용 self.lane_change_completed_on_blinker = False else: @@ -505,11 +506,12 @@ class DesireHelper: else: self.lane_change_ll_prob = max(self.lane_change_ll_prob - 2 * DT_MDL, 0.0) if lane_change_prob < 0.02 and self.lane_change_ll_prob < 0.01: - # [수정] 조기 수렴 안정화 조건 만족 시에도 완료된 방향을 백업한 뒤 finishing으로 전환 + # 조기 수렴 안정화 조건 만족 시에도 완료된 방향을 백업한 뒤 finishing으로 전환 self.completed_direction = self.lane_change_direction self.lane_change_direction = LaneChangeDirection.none self.lane_change_state = LaneChangeState.laneChangeFinishing + # ── laneChangeFinishing 상태 ───────────────────────────── elif self.lane_change_state == LaneChangeState.laneChangeFinishing: self.lane_change_ll_prob = min(self.lane_change_ll_prob + DT_MDL, 1.0)