Headway information

With perception being a link between the modeling environment and models, information as presented to the models should not directly be an object in the modeling environment. Information that comes from perception is in the form of separate objects that contain certain information. This can either pertain directly to an object in simulation (e.g. a GTU, a traffic light), or an abstraction of information (e.g. number of required lane changes). For the first case, and when the considered object can be regarded as having a certain distance to the GTU, Headway objects are used to supply the information to models. For other cases dedicated (and usually simple) classes to contain certain information are used, or, simply a scalar value is used such as Length or a boolean.

Regarding perceived objects that are considered at a distance, Headway.getDistance() supplies this distance. The distance may be null in case an object is adjacent to a GTU, in which case overlap information is available. Length, speed and acceleration are also provided, though these may not always be meaningful. For example in case of a traffic light. Subclasses of Headway can supply additional information, such as the color of a traffic light.

A key point here is that the Headway object (or dedicated or scalar objects in other cases) may contain different information from the actual object being perceived, as perception is imperfect. So the considered headway may be smaller or larger, the traffic light color may be delayed, etc. Simple implementations of Headway may simply wrap a perceived object and supply the actual information, while more complex implementations contain delayed and anticipated, imperfectly perceived, stimuli. A few common subclasses of Headway are: HeadwyGTU, HeadwayTrafficLight and HeadwayConflict.