mirror of
https://github.com/ajouatom/openpilot.git
synced 2026-06-08 02:54:45 +08:00
Resolve lane change timing bug and improve state handling
Fix lane change flag activation and conditions for state transitions.
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user