public abstract class AbstractLanePerception extends Object implements LanePerception
Copyright (c) 2013-2015 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
Modifier and Type | Field and Description |
---|---|
protected LaneBasedGTU |
gtu
The lane based GTU for which this perception module stores information.
|
Constructor and Description |
---|
AbstractLanePerception()
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.Rel 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.
|
Map<Lane,Set<Lane>> |
getAccessibleAdjacentLanesLeft() |
Map<Lane,Set<Lane>> |
getAccessibleAdjacentLanesRight() |
HeadwayGTU |
getBackwardHeadwayGTU() |
HeadwayGTU |
getForwardHeadwayGTU() |
LaneBasedGTU |
getGTU() |
Collection<HeadwayGTU> |
getNeighboringGTUsLeft() |
Collection<HeadwayGTU> |
getNeighboringGTUsRight() |
Set<LaneBasedGTU> |
getParallelGTUsLeft() |
Set<LaneBasedGTU> |
getParallelGTUsRight() |
Set<org.opentrafficsim.core.perception.PerceivedObject> |
getPerceivedObjects() |
org.djunits.value.vdouble.scalar.Speed |
getSpeedLimit() |
TimeStampedObject<Map<Lane,Set<Lane>>> |
getTimeStampedAccessibleAdjacentLanesLeft() |
TimeStampedObject<Map<Lane,Set<Lane>>> |
getTimeStampedAccessibleAdjacentLanesRight() |
TimeStampedObject<HeadwayGTU> |
getTimeStampedBackwardHeadwayGTU() |
TimeStampedObject<HeadwayGTU> |
getTimeStampedForwardHeadwayGTU() |
TimeStampedObject<Collection<HeadwayGTU>> |
getTimeStampedNeighboringGTUsLeft() |
TimeStampedObject<Collection<HeadwayGTU>> |
getTimeStampedNeighboringGTUsRight() |
TimeStampedObject<Set<LaneBasedGTU>> |
getTimeStampedParallelGTUsLeft() |
TimeStampedObject<Set<LaneBasedGTU>> |
getTimeStampedParallelGTUsRight() |
TimeStampedObject<Set<org.opentrafficsim.core.perception.PerceivedObject>> |
getTimeStampedPerceivedObjects() |
TimeStampedObject<org.djunits.value.vdouble.scalar.Speed> |
getTimeStampedSpeedLimit() |
Collection<HeadwayGTU> |
neighboringGTUCollection(org.opentrafficsim.core.network.LateralDirectionality lateralDirection) |
Set<LaneBasedGTU> |
parallelGTUs(org.opentrafficsim.core.network.LateralDirectionality lateralDirection) |
void |
setGTU(LaneBasedGTU gtu)
sets the GTU -- call this method before any call to the perceive() method!
|
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 |
updateBackwardHeadwayGTU()
Update who's behind us and how far away the nearest GTU is.
|
void |
updateForwardHeadwayGTU()
Update who's in front of us and how far away the nearest GTU is.
|
void |
updateLaneTrafficLeft()
Update the information about the GTUs left of our GTU, and behind us or ahead on the left hand side.
|
void |
updateLaneTrafficRight()
Update the information about the GTUs right of our GTU, and behind us or ahead on the left hand side.
|
void |
updateParallelGTUsLeft()
Update the information about the GTUs parallel to our GTU on the left side.
|
void |
updateParallelGTUsRight()
Update the information about the GTUs parallel to our GTU on the right side.
|
void |
updateSpeedLimit()
Update the perceived speed limit.
|
protected LaneBasedGTU gtu
public AbstractLanePerception()
public final void setGTU(LaneBasedGTU gtu)
setGTU
in interface LanePerception
gtu
- the GTU for which this is the perception modulepublic 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 void updateForwardHeadwayGTU() throws org.opentrafficsim.core.gtu.GTUException, org.opentrafficsim.core.network.NetworkException
updateForwardHeadwayGTU
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.public void updateBackwardHeadwayGTU() throws org.opentrafficsim.core.gtu.GTUException, org.opentrafficsim.core.network.NetworkException
updateBackwardHeadwayGTU
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.public 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 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 void updateParallelGTUsLeft() throws org.opentrafficsim.core.gtu.GTUException
updateParallelGTUsLeft
in interface LanePerception
org.opentrafficsim.core.gtu.GTUException
- when the GTU was not initialized yet.public void updateParallelGTUsRight() throws org.opentrafficsim.core.gtu.GTUException
updateParallelGTUsRight
in interface LanePerception
org.opentrafficsim.core.gtu.GTUException
- when the GTU was not initialized yet.public void updateLaneTrafficLeft() throws org.opentrafficsim.core.gtu.GTUException, org.opentrafficsim.core.network.NetworkException
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 networkpublic void updateLaneTrafficRight() throws org.opentrafficsim.core.gtu.GTUException, org.opentrafficsim.core.network.NetworkException
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 networkpublic 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 Set<LaneBasedGTU> parallelGTUs(org.opentrafficsim.core.network.LateralDirectionality lateralDirection)
parallelGTUs
in interface LanePerception
lateralDirection
- the direction to return the parallel GTU map forpublic Collection<HeadwayGTU> neighboringGTUCollection(org.opentrafficsim.core.network.LateralDirectionality lateralDirection)
neighboringGTUCollection
in interface LanePerception
lateralDirection
- the direction to return the neighboring GTU collection forpublic final Lane bestAccessibleAdjacentLane(Lane currentLane, org.opentrafficsim.core.network.LateralDirectionality lateralDirection, org.djunits.value.vdouble.scalar.Length.Rel longitudinalPosition)
currentLane
- the lane to look for the best accessible adjacent lanelateralDirection
- the direction (LEFT, RIGHT) to look atlongitudinalPosition
- Length.Rel; the position of the GTU along this Lanepublic final LaneBasedGTU getGTU()
getGTU
in interface LanePerception
public final HeadwayGTU getForwardHeadwayGTU()
getForwardHeadwayGTU
in interface LanePerception
public final HeadwayGTU getBackwardHeadwayGTU()
getBackwardHeadwayGTU
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<HeadwayGTU> getNeighboringGTUsLeft()
getNeighboringGTUsLeft
in interface LanePerception
public final Collection<HeadwayGTU> getNeighboringGTUsRight()
getNeighboringGTUsRight
in interface LanePerception
public final Set<LaneBasedGTU> getParallelGTUsLeft()
getParallelGTUsLeft
in interface LanePerception
public final Set<LaneBasedGTU> getParallelGTUsRight()
getParallelGTUsRight
in interface LanePerception
public final org.djunits.value.vdouble.scalar.Speed getSpeedLimit()
getSpeedLimit
in interface LanePerception
public Set<org.opentrafficsim.core.perception.PerceivedObject> getPerceivedObjects()
getPerceivedObjects
in interface org.opentrafficsim.core.gtu.perception.Perception
public final TimeStampedObject<HeadwayGTU> getTimeStampedForwardHeadwayGTU()
getTimeStampedForwardHeadwayGTU
in interface LanePerception
public final TimeStampedObject<HeadwayGTU> getTimeStampedBackwardHeadwayGTU()
getTimeStampedBackwardHeadwayGTU
in interface LanePerception
public final TimeStampedObject<Map<Lane,Set<Lane>>> getTimeStampedAccessibleAdjacentLanesLeft()
getTimeStampedAccessibleAdjacentLanesLeft
in interface LanePerception
public final TimeStampedObject<Map<Lane,Set<Lane>>> getTimeStampedAccessibleAdjacentLanesRight()
getTimeStampedAccessibleAdjacentLanesRight
in interface LanePerception
public final TimeStampedObject<Collection<HeadwayGTU>> getTimeStampedNeighboringGTUsLeft()
getTimeStampedNeighboringGTUsLeft
in interface LanePerception
public final TimeStampedObject<Collection<HeadwayGTU>> getTimeStampedNeighboringGTUsRight()
getTimeStampedNeighboringGTUsRight
in interface LanePerception
public final TimeStampedObject<Set<LaneBasedGTU>> getTimeStampedParallelGTUsLeft()
getTimeStampedParallelGTUsLeft
in interface LanePerception
public final TimeStampedObject<Set<LaneBasedGTU>> getTimeStampedParallelGTUsRight()
getTimeStampedParallelGTUsRight
in interface LanePerception
public final TimeStampedObject<org.djunits.value.vdouble.scalar.Speed> getTimeStampedSpeedLimit()
getTimeStampedSpeedLimit
in interface LanePerception
public TimeStampedObject<Set<org.opentrafficsim.core.perception.PerceivedObject>> getTimeStampedPerceivedObjects() throws org.opentrafficsim.core.gtu.GTUException
getTimeStampedPerceivedObjects
in interface LanePerception
org.opentrafficsim.core.gtu.GTUException
- when GTU was not initializedCopyright © 2014–2016 Delft University of Technology. All rights reserved.