Class TrafficLightUtil


  • public final class TrafficLightUtil
    extends Object
    Static methods regarding traffic lights for composition in tactical planners.

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

    Version:
    $Revision$, $LastChangedDate$, by $Author$, initial version May 13, 2016
    Author:
    Wouter Schakel
    • Field Detail

      • B_YELLOW

        public static final ParameterTypeAcceleration B_YELLOW
        Maximum deceleration for stopping for yellow traffic light.
    • Method Detail

      • respondToTrafficLights

        public static Acceleration respondToTrafficLights​(Parameters parameters,
                                                          Iterable<HeadwayTrafficLight> headwayTrafficLights,
                                                          CarFollowingModel carFollowingModel,
                                                          Speed speed,
                                                          SpeedLimitInfo speedLimitInfo)
                                                   throws ParameterException
        Returns an acceleration as response to a set of traffic lights, being positive infinity if ignored. The response is governed by the car-following model in case a traffic light is yellow or red. A constant deceleration to stop is also calculated, and the highest acceleration of both is used. If this value is below -bYellow (B_YELLOW), the traffic light is ignored, which usually occurs only during the yellow phase. By using the highest acceleration of the car-following model and the constant deceleration, it is ensured that comfortable deceleration is applied if approaching a red traffic light from far away, while strong deceleration is only applied if required and appropriately represents stopping for yellow.
        Parameters:
        parameters - Parameters; parameters
        headwayTrafficLights - Iterable<HeadwayTrafficLight>; set of headway traffic lights
        carFollowingModel - CarFollowingModel; car following model
        speed - Speed; speed
        speedLimitInfo - SpeedLimitInfo; speed limit info
        Returns:
        acceleration as response to a traffic light, being positive infinity if ignored
        Throws:
        ParameterException - if a parameter is not defined
        NullPointerException - if any input is null
        IllegalArgumentException - if the traffic light is not downstream
      • respondToTrafficLight

        public static Acceleration respondToTrafficLight​(Parameters parameters,
                                                         HeadwayTrafficLight headwayTrafficLight,
                                                         CarFollowingModel carFollowingModel,
                                                         Speed speed,
                                                         SpeedLimitInfo speedLimitInfo)
                                                  throws ParameterException
        Returns an acceleration as response to a traffic light, being positive infinity if ignored. The response is governed by the car-following model in case the traffic light is yellow or red. A constant deceleration to stop is also calculated, and the highest acceleration of both is used. If this value is below -bYellow (B_YELLOW), the traffic light is ignored, which usually occurs only during the yellow phase. By using the highest acceleration of the car-following model and the constant deceleration, it is ensured that comfortable deceleration is applied if approaching a red traffic light from far away, while strong deceleration is only applied if required and appropriately represents stopping for yellow.
        Parameters:
        parameters - Parameters; parameters
        headwayTrafficLight - HeadwayTrafficLight; headway traffic light
        carFollowingModel - CarFollowingModel; car following model
        speed - Speed; speed
        speedLimitInfo - SpeedLimitInfo; speed limit info
        Returns:
        acceleration as response to a traffic light, being positive infinity if ignored
        Throws:
        ParameterException - if a parameter is not defined
        NullPointerException - if any input is null
        IllegalArgumentException - if the traffic light is not downstream