Class AbstractLanePerception
java.lang.Object
org.opentrafficsim.core.gtu.perception.AbstractPerception<LaneBasedGtu>
org.opentrafficsim.road.gtu.lane.perception.AbstractLanePerception
- All Implemented Interfaces:
Serializable,Perception<LaneBasedGtu>,LanePerception
- Direct Known Subclasses:
CategoricalLanePerception
public abstract class AbstractLanePerception
extends AbstractPerception<LaneBasedGtu>
implements LanePerception
The perception module of a GTU based on lanes. It is responsible for perceiving (sensing) the environment of the GTU, which
includes the locations of other GTUs. Perception is done at a certain time, and the perceived information might have a
limited validity. In that sense, Perception is stateful. Information can be requested as often as needed, but will only be
recalculated when asked explicitly. This abstract class provides the building blocks for lane-based perception.
Perception for lane-based GTUs involves information about GTUs in front of the owner GTU on the same lane (the 'leader' GTU), parallel vehicles (important if we want to change lanes), distance to other vehicles on parallel lanes, as well in front as to the back (important if we want to change lanes), and information about obstacles, traffic lights, speed signs, and ending lanes.
Perception for lane-based GTUs involves information about GTUs in front of the owner GTU on the same lane (the 'leader' GTU), parallel vehicles (important if we want to change lanes), distance to other vehicles on parallel lanes, as well in front as to the back (important if we want to change lanes), and information about obstacles, traffic lights, speed signs, and ending lanes.
This class allows PerceptionCategorys that are either eager or lazy. All categories will have the updateAll
method invoked prior to an operational plan being determined. Categories may ignore this and instead evaluate results only
when the tactical planner requests them.
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
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final org.opentrafficsim.base.parameters.ParameterTypeLengthLook ahead parameter type.protected static final org.opentrafficsim.base.parameters.ParameterTypeLengthLook back parameter type.protected static final org.opentrafficsim.base.parameters.ParameterTypeLengthPerception parameter type. -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new LanePerception module without mental module.AbstractLanePerception(LaneBasedGtu gtu, Mental mental) Create a new LanePerception module with mental module. -
Method Summary
Modifier and TypeMethodDescriptionfinal LaneStructureReturns the mental module of perception.voidperceive()Methods inherited from class org.opentrafficsim.core.gtu.perception.AbstractPerception
addPerceptionCategory, contains, getGtu, getPerceptionCategory, getPerceptionCategoryOrNull, removePerceptionCategory, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.opentrafficsim.road.gtu.lane.perception.LanePerception
getGtuMethods inherited from interface org.opentrafficsim.core.gtu.perception.Perception
addPerceptionCategory, contains, getPerceptionCategory, getPerceptionCategoryOrNull, removePerceptionCategory
-
Field Details
-
PERCEPTION
protected static final org.opentrafficsim.base.parameters.ParameterTypeLength PERCEPTIONPerception parameter type. -
LOOKAHEAD
protected static final org.opentrafficsim.base.parameters.ParameterTypeLength LOOKAHEADLook ahead parameter type. -
LOOKBACK
protected static final org.opentrafficsim.base.parameters.ParameterTypeLength LOOKBACKLook back parameter type.
-
-
Constructor Details
-
AbstractLanePerception
Create a new LanePerception module without mental module.- Parameters:
gtu- LaneBasedGtu; GTU
-
AbstractLanePerception
Create a new LanePerception module with mental module.- Parameters:
gtu- LaneBasedGtu; GTUmental- Mental; mental module
-
-
Method Details
-
getLaneStructure
public final LaneStructure getLaneStructure() throws org.opentrafficsim.base.parameters.ParameterException- Specified by:
getLaneStructurein interfaceLanePerception- Returns:
- lane structure to perform perception
- Throws:
org.opentrafficsim.base.parameters.ParameterException- if parameter is not defined
-
getMental
Returns the mental module of perception.- Specified by:
getMentalin interfaceLanePerception- Returns:
- Mental; mental module of perception, may be
nullif not used
-
perceive
public void perceive() throws GtuException, NetworkException, org.opentrafficsim.base.parameters.ParameterException- Specified by:
perceivein interfacePerception<LaneBasedGtu>- Overrides:
perceivein classAbstractPerception<LaneBasedGtu>- Throws:
GtuExceptionNetworkExceptionorg.opentrafficsim.base.parameters.ParameterException
-