|
|
|
@ -40,6 +40,10 @@ class DesireHelper: |
|
|
|
|
self.prev_one_blinker = False |
|
|
|
|
self.desire = log.Desire.none |
|
|
|
|
|
|
|
|
|
@staticmethod |
|
|
|
|
def set_lane_change_direction(CS): |
|
|
|
|
return LaneChangeDirection.left if CS.leftBlinker else LaneChangeDirection.right |
|
|
|
|
|
|
|
|
|
def update(self, carstate, lateral_active, lane_change_prob): |
|
|
|
|
v_ego = carstate.vEgo |
|
|
|
|
one_blinker = carstate.leftBlinker != carstate.rightBlinker |
|
|
|
@ -53,15 +57,13 @@ class DesireHelper: |
|
|
|
|
if self.lane_change_state == LaneChangeState.off and one_blinker and not self.prev_one_blinker and not below_lane_change_speed: |
|
|
|
|
self.lane_change_state = LaneChangeState.preLaneChange |
|
|
|
|
self.lane_change_ll_prob = 1.0 |
|
|
|
|
# Initialize lane change direction |
|
|
|
|
self.lane_change_direction = LaneChangeDirection.left if \ |
|
|
|
|
carstate.leftBlinker else LaneChangeDirection.right |
|
|
|
|
# Initialize lane change direction to prevent UI alert flicker |
|
|
|
|
self.lane_change_direction = self.set_lane_change_direction(carstate) |
|
|
|
|
|
|
|
|
|
# LaneChangeState.preLaneChange |
|
|
|
|
elif self.lane_change_state == LaneChangeState.preLaneChange: |
|
|
|
|
# Set lane change direction |
|
|
|
|
self.lane_change_direction = LaneChangeDirection.left if \ |
|
|
|
|
carstate.leftBlinker else LaneChangeDirection.right |
|
|
|
|
self.lane_change_direction = self.set_lane_change_direction(carstate) |
|
|
|
|
|
|
|
|
|
torque_applied = carstate.steeringPressed and \ |
|
|
|
|
((carstate.steeringTorque > 0 and self.lane_change_direction == LaneChangeDirection.left) or |
|
|
|
|