java.lang.Object
org.opentrafficsim.road.gtu.lane.tactical.util.ConflictUtil

public final class ConflictUtil extends Object
This class implements default behavior for intersection conflicts for use in tactical planners.

Copyright (c) 2013-2023 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.

Author:
Alexander Verbraeck, Peter Knoppers, Wouter Schakel
  • Field Details

    • MIN_GAP

      public static final org.opentrafficsim.base.parameters.ParameterTypeDuration MIN_GAP
      Minimum time gap between events.
    • B

      public static final org.opentrafficsim.base.parameters.ParameterTypeAcceleration B
      Comfortable deceleration.
    • BCRIT

      public static final org.opentrafficsim.base.parameters.ParameterTypeAcceleration BCRIT
      Critical deceleration.
    • S0

      public static final org.opentrafficsim.base.parameters.ParameterTypeLength S0
      Stopping distance.
    • S0_CONF

      public static final org.opentrafficsim.base.parameters.ParameterTypeLength S0_CONF
      Stopping distance at conflicts.
    • TIME_FACTOR

      public static final org.opentrafficsim.base.parameters.ParameterTypeDouble TIME_FACTOR
      Multiplication factor on time for conservative assessment.
    • STOP_AREA

      public static final org.opentrafficsim.base.parameters.ParameterTypeLength STOP_AREA
      Area before stop line where one is considered arrived at the intersection.
    • TI

      public static final org.opentrafficsim.base.parameters.ParameterTypeDuration TI
      Parameter of how much time before departure a bus indicates its departure to get priority.
  • Method Details

    • approachConflicts

      public static Acceleration approachConflicts(org.opentrafficsim.base.parameters.Parameters parameters, Iterable<HeadwayConflict> conflicts, PerceptionCollectable<HeadwayGtu,LaneBasedGtu> leaders, CarFollowingModel carFollowingModel, Length vehicleLength, Length vehicleWidth, Speed speed, Acceleration acceleration, SpeedLimitInfo speedLimitInfo, ConflictUtil.ConflictPlans conflictPlans, LaneBasedGtu gtu, RelativeLane lane) throws GtuException, org.opentrafficsim.base.parameters.ParameterException
      Approach conflicts by applying appropriate acceleration (or deceleration). The model may yield for a vehicle even while having priority. Such a 'yield plan' is remembered in YieldPlans. By forwarding the same YieldPlans for a GTU consistency of such plans is provided. If any conflict is not accepted to pass, stopping before a more upstream conflict is applied if there not sufficient stopping length in between conflicts.
      Parameters:
      parameters - Parameters; parameters
      conflicts - PerceptionCollectable<HeadwayConflict,Conflict>; set of conflicts to approach
      leaders - PerceptionCollectable<HeadwayGtu,LaneBasedGtu>; leading vehicles
      carFollowingModel - CarFollowingModel; car-following model
      vehicleLength - Length; length of vehicle
      vehicleWidth - Length; width of vehicle
      speed - Speed; current speed
      acceleration - Acceleration; current acceleration
      speedLimitInfo - SpeedLimitInfo; speed limit info
      conflictPlans - ConflictPlans; set of plans for conflict
      gtu - LaneBasedGtu; gtu
      lane - RelativeLane; lane
      Returns:
      acceleration appropriate for approaching the conflicts
      Throws:
      GtuException - in case of an unsupported conflict rule
      org.opentrafficsim.base.parameters.ParameterException - if a parameter is not defined or out of bounds
    • stopForPriorityConflict

      public static boolean stopForPriorityConflict(HeadwayConflict conflict, PerceptionCollectable<HeadwayGtu,LaneBasedGtu> leaders, Speed speed, Length vehicleLength, org.opentrafficsim.base.parameters.Parameters parameters, Length prevEnd) throws org.opentrafficsim.base.parameters.ParameterException
      Approach a priority conflict. Stopping is applied to give way to conflicting traffic in case congestion is present on the own lane. This is courtesy yielding.
      Parameters:
      conflict - HeadwayConflict; conflict to approach
      leaders - PerceptionCollectable<HeadwayGtu,LaneBasedGtu>; leading vehicles in own lane
      speed - Speed; current speed
      vehicleLength - Length; vehicle length
      parameters - Parameters; parameters
      prevEnd - Length; distance to end of previous conflict that should not be blocked, null if none
      Returns:
      whether to stop for this conflict
      Throws:
      org.opentrafficsim.base.parameters.ParameterException - if parameter B is not defined
    • stopForGiveWayConflict

      public static boolean stopForGiveWayConflict(HeadwayConflict conflict, PerceptionCollectable<HeadwayGtu,LaneBasedGtu> leaders, Speed speed, Acceleration acceleration, Length vehicleLength, org.opentrafficsim.base.parameters.Parameters parameters, SpeedLimitInfo speedLimitInfo, CarFollowingModel carFollowingModel, org.opentrafficsim.base.parameters.ParameterTypeAcceleration bType, Length prevEnd) throws org.opentrafficsim.base.parameters.ParameterException
      Approach a give-way conflict.
      Parameters:
      conflict - HeadwayConflict; conflict
      leaders - PerceptionCollectable<HeadwayGtu,LaneBasedGtu>; leaders
      speed - Speed; current speed
      acceleration - Acceleration; current acceleration
      vehicleLength - Length; vehicle length
      parameters - Parameters; parameters
      speedLimitInfo - SpeedLimitInfo; speed limit info
      carFollowingModel - CarFollowingModel; car-following model
      bType - ParameterTypeAcceleration; parameter type for considered deceleration
      prevEnd - Length; distance to end of previous conflict that should not be blocked, null if none
      Returns:
      whether to stop for this conflict
      Throws:
      org.opentrafficsim.base.parameters.ParameterException - if a parameter is not defined
    • stopForStopConflict

      public static boolean stopForStopConflict(HeadwayConflict conflict, PerceptionCollectable<HeadwayGtu,LaneBasedGtu> leaders, Speed speed, Acceleration acceleration, Length vehicleLength, org.opentrafficsim.base.parameters.Parameters parameters, SpeedLimitInfo speedLimitInfo, CarFollowingModel carFollowingModel, org.opentrafficsim.base.parameters.ParameterTypeAcceleration bType, Length prevEnd) throws org.opentrafficsim.base.parameters.ParameterException
      Approach a stop conflict. Currently this is equal to approaching a give-way conflict.
      Parameters:
      conflict - HeadwayConflict; conflict
      leaders - PerceptionCollectable<HeadwayGtu,LaneBasedGtu>; leaders
      speed - Speed; current speed
      acceleration - Acceleration; current acceleration
      vehicleLength - Length; vehicle length
      parameters - Parameters; parameters
      speedLimitInfo - SpeedLimitInfo; speed limit info
      carFollowingModel - CarFollowingModel; car-following model
      bType - ParameterTypeAcceleration; parameter type for considered deceleration
      prevEnd - Length; distance to end of previous conflict that should not be blocked, null if none
      Returns:
      whether to stop for this conflict
      Throws:
      org.opentrafficsim.base.parameters.ParameterException - if a parameter is not defined
    • stopForAllStopConflict

      public static boolean stopForAllStopConflict(HeadwayConflict conflict, ConflictUtil.ConflictPlans conflictPlans)
      Approach an all-stop conflict.
      Parameters:
      conflict - HeadwayConflict; conflict to approach
      conflictPlans - ConflictPlans; set of plans for conflict
      Returns:
      whether to stop for this conflict