public abstract class AbstractLanePerception extends org.opentrafficsim.core.gtu.perception.AbstractPerception implements LanePerception
Copyright (c) 2013-2016 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
Constructor and Description |
---|
AbstractLanePerception(LaneBasedGTU gtu)
Create a new LanePerception module.
|
Modifier and Type | Method and Description |
---|---|
Map<Lane,Set<Lane>> |
accessibleAdjacentLaneMap(org.opentrafficsim.core.network.LateralDirectionality lateralDirection) |
Lane |
bestAccessibleAdjacentLane(Lane currentLane,
org.opentrafficsim.core.network.LateralDirectionality lateralDirection,
org.djunits.value.vdouble.scalar.Length longitudinalPosition)
Determine whether there is a lane to the left or to the right of this lane, which is accessible from this lane, or null
if no lane could be found.
|
boolean |
existsGtuAlongside(org.opentrafficsim.core.network.LateralDirectionality lat)
Whether there is a GTU alongside, i.e.
|
org.opentrafficsim.core.gtu.perception.TimeStampedObject<Boolean> |
existsGtuAlongsideTimeStamped(org.opentrafficsim.core.network.LateralDirectionality lat)
Whether there is a GTU alongside, i.e.
|
Map<Lane,Set<Lane>> |
getAccessibleAdjacentLanesLeft() |
Map<Lane,Set<Lane>> |
getAccessibleAdjacentLanesRight() |
Headway |
getBackwardHeadway() |
SortedSet<RelativeLane> |
getCurrentCrossSection()
Returns a set of relative lanes representing the current cross section.
|
SortedSet<AbstractHeadwayGTU> |
getFirstFollowers(org.opentrafficsim.core.network.LateralDirectionality lat)
Set of followers on a lane, which is usually 0 or 1, but possibly more in case of an upstream merge with no intermediate
GTU.
|
SortedSet<AbstractHeadwayGTU> |
getFirstLeaders(org.opentrafficsim.core.network.LateralDirectionality lat)
Set of leaders on a lane, which is usually 0 or 1, but possibly more in case of a downstream split with no intermediate
GTU.
|
SortedSet<AbstractHeadwayGTU> |
getFollowers(RelativeLane lane)
Set of followers on a lane, including adjacent GTU's who's REAR is back of the own vehicle REAR.
|
Headway |
getForwardHeadway() |
LaneBasedGTU |
getGtu() |
SortedSet<InfrastructureLaneChangeInfo> |
getInfrastructureLaneChangeInfo(RelativeLane lane)
Returns infrastructure lane change info of a lane.
|
SortedSet<HeadwayConflict> |
getIntersectionConflicts(RelativeLane lane)
Returns a set of intersection conflicts along the route.
|
LanePathInfo |
getLanePathInfo()
Retrieve the last perceived lane path info.
|
SortedSet<AbstractHeadwayGTU> |
getLeaders(RelativeLane lane)
Set of leaders on a lane, including adjacent GTU's who's FRONT is ahead of the own vehicle FRONT.
|
org.djunits.value.vdouble.scalar.Length |
getLegalLaneChangePossibility(RelativeLane fromLane,
org.opentrafficsim.core.network.LateralDirectionality lat)
Returns the distance over which a lane change remains legally possible.
|
Collection<Headway> |
getNeighboringHeadways(org.opentrafficsim.core.network.LateralDirectionality lateralDirection) |
Collection<Headway> |
getNeighboringHeadwaysLeft() |
Collection<Headway> |
getNeighboringHeadwaysRight() |
Collection<Headway> |
getParallelHeadways(org.opentrafficsim.core.network.LateralDirectionality lateralDirection) |
Collection<Headway> |
getParallelHeadwaysLeft() |
Collection<Headway> |
getParallelHeadwaysRight() |
org.djunits.value.vdouble.scalar.Length |
getPhysicalLaneChangePossibility(RelativeLane fromLane,
org.opentrafficsim.core.network.LateralDirectionality lat)
Returns the distance over which a lane change remains physically possible.
|
org.djunits.value.vdouble.scalar.Speed |
getSpeedLimit() |
SpeedLimitProspect |
getSpeedLimitProspect(RelativeLane lane)
Returns the prospect for speed limits on a lane (dynamic speed limits may vary between lanes).
|
int |
getSplitNumber(InfrastructureLaneChangeInfo info)
Split number of given infrastructure lane change info, 0 if it does not regard a split.
|
org.opentrafficsim.core.gtu.perception.TimeStampedObject<Map<Lane,Set<Lane>>> |
getTimeStampedAccessibleAdjacentLanesLeft() |
org.opentrafficsim.core.gtu.perception.TimeStampedObject<Map<Lane,Set<Lane>>> |
getTimeStampedAccessibleAdjacentLanesRight() |
org.opentrafficsim.core.gtu.perception.TimeStampedObject<Headway> |
getTimeStampedBackwardHeadway() |
org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<RelativeLane>> |
getTimeStampedCurrentCrossSection()
Returns a set of relative lanes representing the current cross section.
|
org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<AbstractHeadwayGTU>> |
getTimeStampedFirstFollowers(org.opentrafficsim.core.network.LateralDirectionality lat)
Set of followers on a lane, which is usually 0 or 1, but possibly more in case of an upstream merge with no intermediate
GTU.
|
org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<AbstractHeadwayGTU>> |
getTimeStampedFirstLeaders(org.opentrafficsim.core.network.LateralDirectionality lat)
Set of leaders on a lane, which is usually 0 or 1, but possibly more in case of a downstream split with no intermediate
GTU.
|
org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<AbstractHeadwayGTU>> |
getTimeStampedFollowers(RelativeLane lane)
Set of followers on a lane, including adjacent GTU's who's REAR is back of the own vehicle REAR.
|
org.opentrafficsim.core.gtu.perception.TimeStampedObject<Headway> |
getTimeStampedForwardHeadway() |
org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<InfrastructureLaneChangeInfo>> |
getTimeStampedInfrastructureLaneChangeInfo(RelativeLane lane)
Returns infrastructure lane change info of a lane.
|
org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<HeadwayConflict>> |
getTimeStampedIntersectionConflicts(RelativeLane lane)
Returns a set of intersection conflicts along the route.
|
org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<AbstractHeadwayGTU>> |
getTimeStampedLeaders(RelativeLane lane)
Set of leaders on a lane, including adjacent GTU's who's FRONT is ahead of the own vehicle FRONT.
|
org.opentrafficsim.core.gtu.perception.TimeStampedObject<org.djunits.value.vdouble.scalar.Length> |
getTimeStampedLegalLaneChangePossibility(RelativeLane fromLane,
org.opentrafficsim.core.network.LateralDirectionality lat)
Returns the distance over which a lane change remains legally possible.
|
org.opentrafficsim.core.gtu.perception.TimeStampedObject<Collection<Headway>> |
getTimeStampedNeighboringHeadwaysLeft() |
org.opentrafficsim.core.gtu.perception.TimeStampedObject<Collection<Headway>> |
getTimeStampedNeighboringHeadwaysRight() |
org.opentrafficsim.core.gtu.perception.TimeStampedObject<Collection<Headway>> |
getTimeStampedParallelHeadwaysLeft() |
org.opentrafficsim.core.gtu.perception.TimeStampedObject<Collection<Headway>> |
getTimeStampedParallelHeadwaysRight() |
org.opentrafficsim.core.gtu.perception.TimeStampedObject<org.djunits.value.vdouble.scalar.Length> |
getTimeStampedPhysicalLaneChangePossibility(RelativeLane fromLane,
org.opentrafficsim.core.network.LateralDirectionality lat)
Returns the distance over which a lane change remains physically possible.
|
org.opentrafficsim.core.gtu.perception.TimeStampedObject<org.djunits.value.vdouble.scalar.Speed> |
getTimeStampedSpeedLimit() |
org.opentrafficsim.core.gtu.perception.TimeStampedObject<SpeedLimitProspect> |
getTimeStampedSpeedLimitProspect(RelativeLane lane)
Returns the prospect for speed limits on a lane (dynamic speed limits may vary between lanes).
|
org.opentrafficsim.core.gtu.perception.TimeStampedObject<Integer> |
getTimeStampedSplitNumber(InfrastructureLaneChangeInfo info)
Split number of given infrastructure lane change info, 0 if it does not regard a split.
|
org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<HeadwayTrafficLight>> |
getTimeStampedTrafficLights()
Returns a set of traffic lights along the route.
|
SortedSet<HeadwayTrafficLight> |
getTrafficLights()
Returns a set of traffic lights along the route.
|
void |
updateAccessibleAdjacentLanesLeft()
Build a set of Lanes that is adjacent to the given lane that this GTU can enter, for the left lateral direction.
|
void |
updateAccessibleAdjacentLanesRight()
Build a set of Lanes that is adjacent to the given lane that this GTU can enter, for the left lateral direction.
|
void |
updateBackwardHeadway()
Update who's behind us and how far away the nearest object (e.g., a GTU) is.
|
void |
updateCurrentCrossSection()
Updates a set of relative lanes representing the current cross section.
|
void |
updateFirstFollowers()
Updates of followers on a lane, which is usually 0 or 1, but possibly more in case of an upstream merge with no intermediate
GTU.
|
void |
updateFirstLeaders()
Updates of leaders on a lane, which is usually 0 or 1, but possibly more in case of a downstream split with no intermediate
GTU.
|
void |
updateFollowers()
Updates set of followers on a lane, including adjacent GTU's who's REAR is back of the own vehicle REAR.
|
void |
updateForwardHeadway()
Update who's in front of us and how far away the nearest object (e.g., a GTU) is.
|
void |
updateGtuAlongside()
Updates whether there is a GTU alongside, i.e.
|
void |
updateInfrastructureLaneChangeInfo()
Updates infrastructure lane change info of a lane.
|
void |
updateIntersectionConflicts()
Updates a set of intersection conflicts along the route.
|
void |
updateLanePathInfo() |
void |
updateLaneTrafficLeft()
Update the information about the objects (e.g., GTUs) left of our GTU, and behind us or ahead on the left hand side.
|
void |
updateLaneTrafficRight()
Update the information about the objects (e.g., GTUs) right of our GTU, and behind us or ahead on the left hand side.
|
void |
updateLeaders()
Updates set of leaders on a lane, including adjacent GTU's who's FRONT is ahead of the own vehicle FRONT.
|
void |
updateLegalLaneChangePossibility()
Updates the distance over which a lane change remains legally possible.
|
void |
updateParallelHeadwaysLeft()
Update the information about the objects (e.g., GTUs) parallel to our GTU on the left side.
|
void |
updateParallelHeadwaysRight()
Update the information about the objects (e.g., GTUs) parallel to our GTU on the right side.
|
void |
updatePhysicalLaneChangePossibility()
Updates the distance over which a lane change remains physically possible.
|
void |
updateSpeedLimit()
Update the perceived speed limit.
|
void |
updateSpeedLimitProspect()
Updates the prospect for speed limits on a lane (dynamic speed limits may vary between lanes).
|
void |
updateSplitNumber()
Updates split numbers of infrastructure lane change info, 0 if it does not regard a split.
|
void |
updateTrafficLights()
Updates a set of traffic lights along the route.
|
addPerceptionCategory, contains, getPerceptionCategory, perceive, removePerceptionCategory, toString
public AbstractLanePerception(LaneBasedGTU gtu)
gtu
- GTUpublic final void updateLanePathInfo() throws org.opentrafficsim.core.gtu.GTUException, org.opentrafficsim.core.network.NetworkException, org.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException
org.opentrafficsim.core.gtu.GTUException
- when the GTU was not initialized yet.org.opentrafficsim.core.network.NetworkException
- when the speed limit for a GTU type cannot be retrieved from the network.org.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException
- in case of not being able to retrieve parameter ParameterTypes.LOOKAHEADpublic final void updateSpeedLimit() throws org.opentrafficsim.core.gtu.GTUException, org.opentrafficsim.core.network.NetworkException
updateSpeedLimit
in interface LanePerception
org.opentrafficsim.core.gtu.GTUException
- when the GTU was not initialized yet.org.opentrafficsim.core.network.NetworkException
- when the speed limit for a GTU type cannot be retreived from the network.public final void updateForwardHeadway() throws org.opentrafficsim.core.gtu.GTUException, org.opentrafficsim.core.network.NetworkException, org.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException
updateForwardHeadway
in interface LanePerception
org.opentrafficsim.core.gtu.GTUException
- when the GTU was not initialized yet.org.opentrafficsim.core.network.NetworkException
- when the headway cannot be determined for this GTU, usually due to routing problems.org.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException
- when there is a parameter problem, e.g., retrieving the forwardHeadwayDistance.public final void updateBackwardHeadway() throws org.opentrafficsim.core.gtu.GTUException, org.opentrafficsim.core.network.NetworkException, org.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException
updateBackwardHeadway
in interface LanePerception
org.opentrafficsim.core.gtu.GTUException
- when the GTU was not initialized yet.org.opentrafficsim.core.network.NetworkException
- when the headway cannot be determined for this GTU, usually due to routing problems.org.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException
- when there is a parameter problem, e.g., retrieving the backwardHeadwayDistance.public final void updateAccessibleAdjacentLanesLeft() throws org.opentrafficsim.core.gtu.GTUException
updateAccessibleAdjacentLanesLeft
in interface LanePerception
org.opentrafficsim.core.gtu.GTUException
- when the GTU was not initialized yet.public final void updateAccessibleAdjacentLanesRight() throws org.opentrafficsim.core.gtu.GTUException
updateAccessibleAdjacentLanesRight
in interface LanePerception
org.opentrafficsim.core.gtu.GTUException
- when the GTU was not initialized yet.public final void updateParallelHeadwaysLeft() throws org.opentrafficsim.core.gtu.GTUException
updateParallelHeadwaysLeft
in interface LanePerception
org.opentrafficsim.core.gtu.GTUException
- when the GTU was not initialized yet.public final void updateParallelHeadwaysRight() throws org.opentrafficsim.core.gtu.GTUException
updateParallelHeadwaysRight
in interface LanePerception
org.opentrafficsim.core.gtu.GTUException
- when the GTU was not initialized yet.public final void updateLaneTrafficLeft() throws org.opentrafficsim.core.gtu.GTUException, org.opentrafficsim.core.network.NetworkException, org.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException
updateLaneTrafficLeft
in interface LanePerception
org.opentrafficsim.core.gtu.GTUException
- when the GTU was not initialized yet.org.opentrafficsim.core.network.NetworkException
- when there is an inconsistency in the lanes on this networkorg.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException
- when there is a parameter problem.public final void updateLaneTrafficRight() throws org.opentrafficsim.core.gtu.GTUException, org.opentrafficsim.core.network.NetworkException, org.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException
updateLaneTrafficRight
in interface LanePerception
org.opentrafficsim.core.gtu.GTUException
- when the GTU was not initialized yet.org.opentrafficsim.core.network.NetworkException
- when there is an inconsistency in the lanes on this networkorg.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException
- when there is a parameter problem.public final Map<Lane,Set<Lane>> accessibleAdjacentLaneMap(org.opentrafficsim.core.network.LateralDirectionality lateralDirection)
accessibleAdjacentLaneMap
in interface LanePerception
lateralDirection
- the direction to return the accessible adjacent lane map forpublic final Collection<Headway> getNeighboringHeadways(org.opentrafficsim.core.network.LateralDirectionality lateralDirection)
getNeighboringHeadways
in interface LanePerception
lateralDirection
- the direction to return the parallel headway collection forpublic final Collection<Headway> getParallelHeadways(org.opentrafficsim.core.network.LateralDirectionality lateralDirection)
getParallelHeadways
in interface LanePerception
lateralDirection
- the direction to return the neighboring headway collection forpublic final Lane bestAccessibleAdjacentLane(Lane currentLane, org.opentrafficsim.core.network.LateralDirectionality lateralDirection, org.djunits.value.vdouble.scalar.Length longitudinalPosition)
currentLane
- the lane to look for the best accessible adjacent lanelateralDirection
- the direction (LEFT, RIGHT) to look atlongitudinalPosition
- Length; the position of the GTU along currentLanepublic final LaneBasedGTU getGtu()
getGtu
in interface org.opentrafficsim.core.gtu.perception.Perception
getGtu
in interface LanePerception
getGtu
in class org.opentrafficsim.core.gtu.perception.AbstractPerception
public final LanePathInfo getLanePathInfo()
public final Headway getForwardHeadway()
getForwardHeadway
in interface LanePerception
public final Headway getBackwardHeadway()
getBackwardHeadway
in interface LanePerception
public final Map<Lane,Set<Lane>> getAccessibleAdjacentLanesLeft()
getAccessibleAdjacentLanesLeft
in interface LanePerception
public final Map<Lane,Set<Lane>> getAccessibleAdjacentLanesRight()
getAccessibleAdjacentLanesRight
in interface LanePerception
public final Collection<Headway> getNeighboringHeadwaysLeft()
getNeighboringHeadwaysLeft
in interface LanePerception
public final Collection<Headway> getNeighboringHeadwaysRight()
getNeighboringHeadwaysRight
in interface LanePerception
public final Collection<Headway> getParallelHeadwaysLeft()
getParallelHeadwaysLeft
in interface LanePerception
public final Collection<Headway> getParallelHeadwaysRight()
getParallelHeadwaysRight
in interface LanePerception
public final org.djunits.value.vdouble.scalar.Speed getSpeedLimit()
getSpeedLimit
in interface LanePerception
public final org.opentrafficsim.core.gtu.perception.TimeStampedObject<Headway> getTimeStampedForwardHeadway()
getTimeStampedForwardHeadway
in interface LanePerception
public final org.opentrafficsim.core.gtu.perception.TimeStampedObject<Headway> getTimeStampedBackwardHeadway()
getTimeStampedBackwardHeadway
in interface LanePerception
public final org.opentrafficsim.core.gtu.perception.TimeStampedObject<Map<Lane,Set<Lane>>> getTimeStampedAccessibleAdjacentLanesLeft()
getTimeStampedAccessibleAdjacentLanesLeft
in interface LanePerception
public final org.opentrafficsim.core.gtu.perception.TimeStampedObject<Map<Lane,Set<Lane>>> getTimeStampedAccessibleAdjacentLanesRight()
getTimeStampedAccessibleAdjacentLanesRight
in interface LanePerception
public final org.opentrafficsim.core.gtu.perception.TimeStampedObject<Collection<Headway>> getTimeStampedNeighboringHeadwaysLeft()
getTimeStampedNeighboringHeadwaysLeft
in interface LanePerception
public final org.opentrafficsim.core.gtu.perception.TimeStampedObject<Collection<Headway>> getTimeStampedNeighboringHeadwaysRight()
getTimeStampedNeighboringHeadwaysRight
in interface LanePerception
public final org.opentrafficsim.core.gtu.perception.TimeStampedObject<Collection<Headway>> getTimeStampedParallelHeadwaysLeft()
getTimeStampedParallelHeadwaysLeft
in interface LanePerception
public final org.opentrafficsim.core.gtu.perception.TimeStampedObject<Collection<Headway>> getTimeStampedParallelHeadwaysRight()
getTimeStampedParallelHeadwaysRight
in interface LanePerception
public final org.opentrafficsim.core.gtu.perception.TimeStampedObject<org.djunits.value.vdouble.scalar.Speed> getTimeStampedSpeedLimit()
getTimeStampedSpeedLimit
in interface LanePerception
public SortedSet<AbstractHeadwayGTU> getFirstLeaders(org.opentrafficsim.core.network.LateralDirectionality lat)
| | _________/B/_____ _ _?_ _ _~_ _C_ _ _ _A_ _ _ _ _ _ _ _________________
getFirstLeaders
in interface LanePerception
lat
- LEFT, null (current) or RIGHTpublic SortedSet<AbstractHeadwayGTU> getFirstFollowers(org.opentrafficsim.core.network.LateralDirectionality lat)
| | |C| ________\ \______ _ _B_|_ _ _ _ _?_ _ _ _|_ _ _ _ _A_ _____|___________
getFirstFollowers
in interface LanePerception
lat
- LEFT, null (current) or RIGHTpublic boolean existsGtuAlongside(org.opentrafficsim.core.network.LateralDirectionality lat)
existsGtuAlongside
in interface LanePerception
lat
- LEFT or RIGHT, null not allowedpublic SortedSet<AbstractHeadwayGTU> getLeaders(RelativeLane lane)
getLeaders
in interface LanePerception
lane
- relative lateral lanepublic SortedSet<AbstractHeadwayGTU> getFollowers(RelativeLane lane)
getFollowers
in interface LanePerception
lane
- relative lateral lanepublic SortedSet<InfrastructureLaneChangeInfo> getInfrastructureLaneChangeInfo(RelativeLane lane)
_______ _ _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)
getInfrastructureLaneChangeInfo
in interface LanePerception
lane
- relative lateral lanepublic int getSplitNumber(InfrastructureLaneChangeInfo info)
________________ _ _ _ _ _ _ _ _____________ A___.....____________.....__ \______ \______ (destination of A) ^ | This split provides the 1st infrastructure info on the current lane. It regards the 3rd split along the road. split number = 3
getSplitNumber
in interface LanePerception
info
- infrastructure lane change infopublic SpeedLimitProspect getSpeedLimitProspect(RelativeLane lane)
getSpeedLimitProspect
in interface LanePerception
lane
- relative lateral lanepublic org.djunits.value.vdouble.scalar.Length getLegalLaneChangePossibility(RelativeLane fromLane, org.opentrafficsim.core.network.LateralDirectionality lat)
getLegalLaneChangePossibility
in interface LanePerception
fromLane
- lane from which the lane change possibility is requestedlat
- LEFT or RIGHT, null not allowedpublic org.djunits.value.vdouble.scalar.Length getPhysicalLaneChangePossibility(RelativeLane fromLane, org.opentrafficsim.core.network.LateralDirectionality lat)
getPhysicalLaneChangePossibility
in interface LanePerception
fromLane
- lane from which the lane change possibility is requestedlat
- LEFT or RIGHT, null not allowedpublic SortedSet<RelativeLane> getCurrentCrossSection()
getCurrentCrossSection
in interface LanePerception
public SortedSet<HeadwayTrafficLight> getTrafficLights()
getTrafficLights
in interface LanePerception
public SortedSet<HeadwayConflict> getIntersectionConflicts(RelativeLane lane)
getIntersectionConflicts
in interface LanePerception
lane
- relative lateral lanepublic org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<AbstractHeadwayGTU>> getTimeStampedFirstLeaders(org.opentrafficsim.core.network.LateralDirectionality lat)
| | _________/B/_____ _ _?_ _ _~_ _C_ _ _ _A_ _ _ _ _ _ _ _________________
getTimeStampedFirstLeaders
in interface LanePerception
lat
- LEFT, null (current) or RIGHTpublic org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<AbstractHeadwayGTU>> getTimeStampedFirstFollowers(org.opentrafficsim.core.network.LateralDirectionality lat)
| | |C| ________\ \______ _ _B_|_ _ _ _ _?_ _ _ _|_ _ _ _ _A_ _____|___________
getTimeStampedFirstFollowers
in interface LanePerception
lat
- LEFT, null (current) or RIGHTpublic org.opentrafficsim.core.gtu.perception.TimeStampedObject<Boolean> existsGtuAlongsideTimeStamped(org.opentrafficsim.core.network.LateralDirectionality lat)
existsGtuAlongsideTimeStamped
in interface LanePerception
lat
- LEFT or RIGHT, null not allowedpublic org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<AbstractHeadwayGTU>> getTimeStampedLeaders(RelativeLane lane)
getTimeStampedLeaders
in interface LanePerception
lane
- relative lateral lanepublic org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<AbstractHeadwayGTU>> getTimeStampedFollowers(RelativeLane lane)
getTimeStampedFollowers
in interface LanePerception
lane
- relative lateral lanepublic org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<InfrastructureLaneChangeInfo>> getTimeStampedInfrastructureLaneChangeInfo(RelativeLane lane)
_______ _ _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)
getTimeStampedInfrastructureLaneChangeInfo
in interface LanePerception
lane
- relative lateral lanepublic org.opentrafficsim.core.gtu.perception.TimeStampedObject<Integer> getTimeStampedSplitNumber(InfrastructureLaneChangeInfo info)
________________ _ _ _ _ _ _ _ _____________ A___.....____________.....__ \______ \______ (destination of A) ^ | This split provides the 1st infrastructure info on the current lane. It regards the 3rd split along the road. split number = 3
getTimeStampedSplitNumber
in interface LanePerception
info
- infrastructure lane change infopublic org.opentrafficsim.core.gtu.perception.TimeStampedObject<SpeedLimitProspect> getTimeStampedSpeedLimitProspect(RelativeLane lane)
getTimeStampedSpeedLimitProspect
in interface LanePerception
lane
- relative lateral lanepublic org.opentrafficsim.core.gtu.perception.TimeStampedObject<org.djunits.value.vdouble.scalar.Length> getTimeStampedLegalLaneChangePossibility(RelativeLane fromLane, org.opentrafficsim.core.network.LateralDirectionality lat)
getTimeStampedLegalLaneChangePossibility
in interface LanePerception
fromLane
- lane from which the lane change possibility is requestedlat
- LEFT or RIGHT, null not allowedpublic org.opentrafficsim.core.gtu.perception.TimeStampedObject<org.djunits.value.vdouble.scalar.Length> getTimeStampedPhysicalLaneChangePossibility(RelativeLane fromLane, org.opentrafficsim.core.network.LateralDirectionality lat)
getTimeStampedPhysicalLaneChangePossibility
in interface LanePerception
fromLane
- lane from which the lane change possibility is requestedlat
- LEFT or RIGHT, null not allowedpublic org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<RelativeLane>> getTimeStampedCurrentCrossSection()
getTimeStampedCurrentCrossSection
in interface LanePerception
public org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<HeadwayTrafficLight>> getTimeStampedTrafficLights()
getTimeStampedTrafficLights
in interface LanePerception
public org.opentrafficsim.core.gtu.perception.TimeStampedObject<SortedSet<HeadwayConflict>> getTimeStampedIntersectionConflicts(RelativeLane lane)
getTimeStampedIntersectionConflicts
in interface LanePerception
lane
- relative lateral lanepublic void updateFirstLeaders()
| | _________/B/_____ _ _?_ _ _~_ _C_ _ _ _A_ _ _ _ _ _ _ _________________
updateFirstLeaders
in interface LanePerception
public void updateFirstFollowers()
| | |C| ________\ \______ _ _B_|_ _ _ _ _?_ _ _ _|_ _ _ _ _A_ _____|___________
updateFirstFollowers
in interface LanePerception
public void updateGtuAlongside()
updateGtuAlongside
in interface LanePerception
public void updateLeaders()
updateLeaders
in interface LanePerception
public void updateFollowers()
updateFollowers
in interface LanePerception
public void updateInfrastructureLaneChangeInfo()
_______ _ _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)
updateInfrastructureLaneChangeInfo
in interface LanePerception
public void updateSplitNumber()
________________ _ _ _ _ _ _ _ _____________ A___.....____________.....__ \______ \______ (destination of A) ^ | This split provides the 1st infrastructure info on the current lane. It regards the 3rd split along the road. split number = 3
updateSplitNumber
in interface LanePerception
public void updateSpeedLimitProspect()
updateSpeedLimitProspect
in interface LanePerception
public void updateLegalLaneChangePossibility()
updateLegalLaneChangePossibility
in interface LanePerception
public void updatePhysicalLaneChangePossibility()
updatePhysicalLaneChangePossibility
in interface LanePerception
public void updateCurrentCrossSection()
updateCurrentCrossSection
in interface LanePerception
public void updateTrafficLights()
updateTrafficLights
in interface LanePerception
public void updateIntersectionConflicts()
updateIntersectionConflicts
in interface LanePerception
Copyright © 2014–2016 Delft University of Technology. All rights reserved.