Class ToledoPerception
java.lang.Object
org.opentrafficsim.core.gtu.perception.AbstractPerceptionCategory<LaneBasedGtu,LanePerception>
org.opentrafficsim.road.gtu.lane.tactical.toledo.ToledoPerception
- All Implemented Interfaces:
Serializable
,org.opentrafficsim.base.Type<AbstractPerceptionCategory<LaneBasedGtu,
,LanePerception>> PerceptionCategory<LaneBasedGtu,
,LanePerception> LaneBasedPerceptionCategory
public class ToledoPerception
extends AbstractPerceptionCategory<LaneBasedGtu,LanePerception>
implements LaneBasedPerceptionCategory
Wrapper class around
InfrastructureCategory
that forwards all methods except for infrastructure lane change info.
These methods determine and return infrastructure information of type InfrastructureLaneChangeInfoToledo
, which
includes split number.
Copyright (c) 2013-2024 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
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal SortedSet<RelativeLane>
Returns a set of relative lanes representing the cross section.final SortedSet<LaneChangeInfo>
Returns infrastructure lane change info of a lane.final org.djunits.value.vdouble.scalar.Length
getLegalLaneChangePossibility
(RelativeLane fromLane, LateralDirectionality lat) Returns the distance over which a lane change remains legally possible.final org.djunits.value.vdouble.scalar.Length
getPhysicalLaneChangePossibility
(RelativeLane fromLane, LateralDirectionality lat) Returns the distance over which a lane change remains physically possible.final SpeedLimitProspect
Returns the prospect for speed limits on a lane (dynamic speed limits may vary between lanes).final org.opentrafficsim.base.TimeStampedObject<SortedSet<LaneChangeInfo>>
Returns time stamped infrastructure lane change info of a lane.final String
toString()
void
Updates the infrastructural lane change info.Methods inherited from class org.opentrafficsim.core.gtu.perception.AbstractPerceptionCategory
cacheAsString, computeIfAbsent, computeIfAbsent, computeIfAbsent, getGtu, getPerception, getTimestamp
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.opentrafficsim.base.Type
isType
-
Constructor Details
-
ToledoPerception
- Parameters:
perception
- LanePerception; perception
-
-
Method Details
-
updateInfrastructureLaneChangeInfo
Updates the infrastructural lane change info.- Parameters:
lane
- RelativeLane; relative lateral lane- Throws:
GtuException
- when GTU is not initialized
-
getInfrastructureLaneChangeInfo
Returns infrastructure lane change info of a lane. A set is returned as multiple points may force lane changes. Which point is considered most critical is a matter of driver interpretation and may change over time. This is shown below. Suppose vehicle A needs to take the off-ramp, and that behavior is that the minimum distance per required lane change determines how critical it is. First, 400m before the lane-drop, the off-ramp is critical. 300m downstream, the lane-drop is critical. Info is sorted by distance, closest first._______ _ _A_ _\_________ _ _ _ _ _ _ _ _ _ _________ _ _ ___ \_______ (-) Lane-drop: 1 lane change in 400m (400m per lane change) (--------) Off-ramp: 3 lane changes in 900m (300m per lane change, critical) (-) Lane-drop: 1 lane change in 100m (100m per lane change, critical) (--------) Off-ramp: 3 lane changes in 600m (200m per lane change)
- Parameters:
lane
- RelativeLane; relative lateral lane- Returns:
- infrastructure lane change info of a lane
-
getTimeStampedInfrastructureLaneChangeInfo
public final org.opentrafficsim.base.TimeStampedObject<SortedSet<LaneChangeInfo>> getTimeStampedInfrastructureLaneChangeInfo(RelativeLane lane) Returns time stamped infrastructure lane change info of a lane. A set is returned as multiple points may force lane changes. Which point is considered most critical is a matter of driver interpretation and may change over time. This is shown below. Suppose vehicle A needs to take the off-ramp, and that behavior is that the minimum distance per required lane change determines how critical it is. First, 400m before the lane-drop, the off-ramp is critical. 300m downstream, the lane-drop is critical. Info is sorted by distance, closest first._______ _ _A_ _\_________ _ _ _ _ _ _ _ _ _ _________ _ _ ___ \_______ (-) Lane-drop: 1 lane change in 400m (400m per lane change) (--------) Off-ramp: 3 lane changes in 900m (300m per lane change, critical) (-) Lane-drop: 1 lane change in 100m (100m per lane change, critical) (--------) Off-ramp: 3 lane changes in 600m (200m per lane change)
- Parameters:
lane
- RelativeLane; relative lateral lane- Returns:
- time stamped infrastructure lane change info of a lane
-
getSpeedLimitProspect
Returns the prospect for speed limits on a lane (dynamic speed limits may vary between lanes).- Parameters:
lane
- RelativeLane; relative lateral lane- Returns:
- prospect for speed limits on a lane
-
getLegalLaneChangePossibility
public final org.djunits.value.vdouble.scalar.Length getLegalLaneChangePossibility(RelativeLane fromLane, LateralDirectionality lat) Returns the distance over which a lane change remains legally possible.- Parameters:
fromLane
- RelativeLane; lane from which the lane change possibility is requestedlat
- LateralDirectionality; LEFT or RIGHT, null not allowed- Returns:
- distance over which a lane change remains possible
- Throws:
NullPointerException
- iflat == null
-
getPhysicalLaneChangePossibility
public final org.djunits.value.vdouble.scalar.Length getPhysicalLaneChangePossibility(RelativeLane fromLane, LateralDirectionality lat) Returns the distance over which a lane change remains physically possible.- Parameters:
fromLane
- RelativeLane; lane from which the lane change possibility is requestedlat
- LateralDirectionality; LEFT or RIGHT, null not allowed- Returns:
- distance over which a lane change remains possible
- Throws:
NullPointerException
- iflat == null
-
getCrossSection
Returns a set of relative lanes representing the cross section. Lanes are sorted left to right.- Returns:
- set of relative lanes representing the cross section
-
toString
-