Lateral planner: Don't prompt/initiate lane changes if lateral control is not active (#25436)

* Don't set lane change events if we're not able to steer.

* more specific variable name

* update process replay socket config

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: 5b1ba4f135
taco
Chris Souers 3 years ago committed by GitHub
parent 40189c8d3f
commit 179b0d1a81
  1. 4
      selfdrive/controls/lib/desire_helper.py
  2. 2
      selfdrive/controls/lib/lateral_planner.py
  3. 2
      selfdrive/controls/plannerd.py
  4. 2
      selfdrive/test/process_replay/process_replay.py

@ -40,12 +40,12 @@ class DesireHelper:
self.prev_one_blinker = False
self.desire = log.LateralPlan.Desire.none
def update(self, carstate, active, lane_change_prob):
def update(self, carstate, lateral_active, lane_change_prob):
v_ego = carstate.vEgo
one_blinker = carstate.leftBlinker != carstate.rightBlinker
below_lane_change_speed = v_ego < LANE_CHANGE_SPEED_MIN
if not active or self.lane_change_timer > LANE_CHANGE_TIME_MAX:
if not lateral_active or self.lane_change_timer > LANE_CHANGE_TIME_MAX:
self.lane_change_state = LaneChangeState.off
self.lane_change_direction = LaneChangeDirection.none
else:

@ -52,7 +52,7 @@ class LateralPlanner:
# Lane change logic
lane_change_prob = self.LP.l_lane_change_prob + self.LP.r_lane_change_prob
self.DH.update(sm['carState'], sm['controlsState'].active, lane_change_prob)
self.DH.update(sm['carState'], sm['carControl'].latActive, lane_change_prob)
# Turn off lanes during lane change
if self.DH.desire == log.LateralPlan.Desire.laneChangeRight or self.DH.desire == log.LateralPlan.Desire.laneChangeLeft:

@ -25,7 +25,7 @@ def plannerd_thread(sm=None, pm=None):
lateral_planner = LateralPlanner(CP, use_lanelines=use_lanelines, wide_camera=wide_camera)
if sm is None:
sm = messaging.SubMaster(['carState', 'controlsState', 'radarState', 'modelV2'],
sm = messaging.SubMaster(['carControl', 'carState', 'controlsState', 'radarState', 'modelV2'],
poll=['radarState', 'modelV2'], ignore_avg_freq=['radarState'])
if pm is None:

@ -280,7 +280,7 @@ CONFIGS = [
proc_name="plannerd",
pub_sub={
"modelV2": ["lateralPlan", "longitudinalPlan"],
"carState": [], "controlsState": [], "radarState": [],
"carControl": [], "carState": [], "controlsState": [], "radarState": [],
},
ignore=["logMonoTime", "valid", "longitudinalPlan.processingDelay", "longitudinalPlan.solverExecutionTime", "lateralPlan.solverExecutionTime"],
init_callback=get_car_params,

Loading…
Cancel
Save