Tune auto cruise lead safety trigger

This commit is contained in:
ajouatom
2026-06-04 07:46:27 +09:00
parent 166455a56c
commit b3fe1c61b0

View File

@@ -676,17 +676,12 @@ class VCruiseCarrot:
self._add_log(reason)
def _check_safe_stop(self, CS, safe_distance = 3):
v_ego = CS.vEgo
decel_rate = 1.5
d_stop_ego = (v_ego ** 2) / (2 * decel_rate)
d_stop_rel = (self.v_rel ** 2) / (2 * decel_rate)
decel_rate = 2.5
closing_speed = max(0.0, -self.v_rel)
required_dist = safe_distance + (closing_speed ** 2) / (2 * decel_rate)
d_final = self.d_rel - required_dist
d_final = self.d_rel - d_stop_ego - d_stop_rel
if d_final >= safe_distance:
return True, d_final
else:
return False, d_final
return d_final >= 0, d_final
def _update_cruise_state(self, CS, CC, v_cruise_kph):
if not CC.enabled:
@@ -748,9 +743,10 @@ class VCruiseCarrot:
elif self._brake_pressed_count < 0 and self._gas_pressed_count < 0:
if not CC.enabled:
turning = abs(CS.steeringAngleDeg) > 20
if self.d_rel > 0 and CS.vEgo > 0.02:
safe_state, safe_dist = self._check_safe_stop(CS, 4)
if abs(CS.steeringAngleDeg) > 70:
safe_state, safe_dist = self._check_safe_stop(CS, 3)
if turning:
pass
elif not safe_state:
self._cruise_control(1, -1, "Cruise on (fcw)")
@@ -767,7 +763,7 @@ class VCruiseCarrot:
if self._cruise_ready:
if self.xState in [3]:
self._cruise_control(1, 0, "Cruise on (traffic sign)")
elif self.d_rel > 0:
elif self.d_rel > 0 and not turning:
self._cruise_control(1, 0, "Cruise on (lead car)")
elif self._paddle_decel_active:
if self.xState in [3]: