Pause lateral control with turn signal
Added toggle to pause lateral control when a turn signal is active.
This commit is contained in:
@@ -18,6 +18,7 @@ from openpilot.system.version import get_short_branch
|
||||
from openpilot.selfdrive.boardd.boardd import can_list_to_can_capnp
|
||||
from openpilot.selfdrive.car.car_helpers import get_car, get_startup_event, get_one_can
|
||||
from openpilot.selfdrive.controls.lib.lateral_planner import CAMERA_OFFSET
|
||||
from openpilot.selfdrive.controls.lib.desire_helper import LANE_CHANGE_SPEED_MIN
|
||||
from openpilot.selfdrive.controls.lib.drive_helpers import VCruiseHelper, get_lag_adjusted_curvature
|
||||
from openpilot.selfdrive.controls.lib.latcontrol import LatControl, MIN_LATERAL_CONTROL_SPEED
|
||||
from openpilot.selfdrive.controls.lib.longcontrol import LongControl
|
||||
@@ -633,18 +634,20 @@ class Controls:
|
||||
gear = car.CarState.GearShifter
|
||||
driving_gear = CS.gearShifter not in (gear.neutral, gear.park, gear.reverse, gear.unknown)
|
||||
|
||||
signal_check = not ((CS.leftBlinker or CS.rightBlinker) and self.pause_lateral_on_signal and CS.vEgo < LANE_CHANGE_SPEED_MIN)
|
||||
|
||||
# Always on lateral
|
||||
if self.always_on_lateral:
|
||||
self.lateral_allowed &= CS.cruiseState.available
|
||||
self.lateral_allowed |= CS.cruiseState.enabled or (CS.cruiseState.available and self.always_on_lateral_main)
|
||||
|
||||
self.FPCC.alwaysOnLateral = self.lateral_allowed and driving_gear
|
||||
self.FPCC.alwaysOnLateral = self.lateral_allowed and driving_gear and signal_check
|
||||
if self.FPCC.alwaysOnLateral:
|
||||
self.current_alert_types.append(ET.WARNING)
|
||||
|
||||
# Check which actuators can be enabled
|
||||
standstill = CS.vEgo <= max(self.CP.minSteerSpeed, MIN_LATERAL_CONTROL_SPEED) or CS.standstill
|
||||
CC.latActive = (self.active or self.FPCC.alwaysOnLateral) and not CS.steerFaultTemporary and not CS.steerFaultPermanent and \
|
||||
CC.latActive = (self.active or self.FPCC.alwaysOnLateral) and signal_check and not CS.steerFaultTemporary and not CS.steerFaultPermanent and \
|
||||
(not standstill or self.joystick_mode)
|
||||
CC.longActive = self.enabled and not self.events.contains(ET.OVERRIDE_LONGITUDINAL) and self.CP.openpilotLongitudinalControl
|
||||
|
||||
@@ -987,6 +990,7 @@ class Controls:
|
||||
longitudinal_tune = self.params.get_bool("LongitudinalTune")
|
||||
self.sport_plus = self.params.get_int("AccelerationProfile") == 3 and longitudinal_tune
|
||||
|
||||
self.pause_lateral_on_signal = self.params.get_bool("PauseLateralOnSignal")
|
||||
self.reverse_cruise_increase = self.params.get_bool("ReverseCruise")
|
||||
|
||||
def main():
|
||||
|
||||
Reference in New Issue
Block a user