LaneChangeReasons

This class and its derived classes provide methods for calculating individual lane change decisions and -urgencies and the respective speed adjustment.

Each lane change reason is derived as a separate class with the structure of the inherited class “LaneChangeReason”. The process for each decision and calculation is fundamentally divided in, but can differ from the inherited function:

  • the preparation for each step (set triggers to zero),

  • the preparation of the member variables (set surounding agents, dynamics),

  • the calculation of the trigger addition of the urgency for the current timestep (based on the relationships between the agent and the surrounding situation). Currently based on the addition of four factors:

    • Normalized value of the velocity difference based on the velocity-wish and a surrounding velocity depending on a MaximumDelayThreshold

    • Normalized value of the velocity to follow a vehicle to the possible maximum and minimum velocity in the next timestep

    • A value depending on the current time-to-collision to the leader

    • Normalized value of a velocity difference based on the velocity in the next timestep and the velocity wish of the vehicle

  • and the final calculation of the possible lane-change status (to save the final decision of each reason)

At the moment the following lane-change-reasons are implemented:

Reason

Inherits from

Description

LaneChangeReason

General class with the main functional sequence and member variables

OvertakeLeader

LaneChangeReason

Overtake a slower leader to gain speed in order to reach the desired velocity

OvertakeRight

LaneChangeReason

Overtake on the right or, if it is not allowed, start the overtaking process on the left, while adapting the velocity

GoRight

LaneChangeReason

Go to the right in order to follow the right-hand drive “rule”, check also if the ego blocks a following vehicle more, than it is blocked by a slower leader on the right

GoRightFastFollower

LaneChangeReason

Used by the GoRight-Reason: clear the left lane for a faster following vehicle

StayLeftSlowerRightLeader

LaneChangeReason

Used by the GoRight-Reason: stay on the left lane, because the right lane is blocked by a slower leader

Cooperative

LaneChangeReason

General class with methods for calculations of decision weighting for cooperative lane-changes or velocity adaptions

LCLeftEndingCurrLane

Cooperative

Lane change to the left because the current lane is ending. If the left lane is blocked, a velocity adaption is considered.

CooperativeForOnramper

Cooperative

Lane change to the left, because the right lane is ending and there is a relevant vehicle on it. Also a velocity adaption is considered.

LCRightEndingCurrLane

Cooperative

Lane change to the right, because the current lane is ending. If the right lane is blocked, a velocity adaption is considered.

CooperativeForEndingLeft

Cooperative

Lane change to the right, because the left lane is ending and there is a relevant vehicle on it. Also a velocity adaption is considered.

ChangeToFollowRoute

Strategic

Lane change to follow the route (only used if an intersection is oncoming and the SensorJunction is used.

Each possible lane-change-reason is called and evaluated by the lane-change-model.