Class HeadwayObject

  • All Implemented Interfaces:
    Serializable, Comparable<Headway>, Identifiable, PerceivedObject, Headway

    public class HeadwayObject
    extends AbstractHeadwayCopy
    Container for a reference to information about a (lane based) object and a headway. The Headway can store information about objects ahead of the reference object, behind the reference object, or (partially) parallel to the reference object. In addition to the (perceived) headway, several other pieces of information can be stored, such as (perceived) speed, (perceived) acceleration, (perceived) turn indicators, and (perceived) braking lights.
    Special care must be taken in curves when perceiving headway of an object on an adjacent lane.The question is whether we perceive the parallel or ahead/behind based on a line perpendicular to the front/back of the object (rectangular), or perpendicular to the center line of the lane (wedge-shaped in case of a curve). The difficulty of a wedge-shaped situation is that reciprocity might be violated: in case of a clothoid, for instance, it is not sure that the point on the center line when projected from lane 1 to lane 2 is the same as the projection from lane 2 to lane 1. The same holds for shapes with sharp bends. Therefore, algorithms implementing headway should only project the reference point of the reference object on the center line of the adjacent lane, and then calculate the forward position and backward position on the adjacent lane based on the reference point. Still, our human perception of what is parallel and what not, is not reflected by fractional positions. See examples in http://simulation.tudelft.nl:8085/browse/OTS-113.

    Copyright (c) 2013-2020 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
    BSD-style license. See OpenTrafficSim License.

    Version:
    $Revision: 1368 $, $LastChangedDate: 2015-09-02 00:20:20 +0200 (Wed, 02 Sep 2015) $, by $Author: averbraeck $, initial version 11 feb. 2015
    Author:
    Alexander Verbraeck, Peter Knoppers
    See Also:
    Serialized Form
    • Constructor Detail

      • HeadwayObject

        public HeadwayObject​(String id,
                             Length distance,
                             Speed speed,
                             Acceleration acceleration)
                      throws GTUException
        Construct a new Headway information object, for a moving object ahead of us or behind us.
        Parameters:
        id - String; the id of the object for comparison purposes, can not be null.
        distance - the distance to the other object; if this constructor is used, distance cannot be null.
        speed - the (perceived) speed of the other object; can be null if unknown.
        acceleration - the (perceived) acceleration of the other object; can be null if unknown.
        Throws:
        GTUException - when id is null, objectType is null, or parameters are inconsistent
      • HeadwayObject

        public HeadwayObject​(String id,
                             Length distance)
                      throws GTUException
        Construct a new Headway information object, for a non-moving object ahead of us or behind us.
        Parameters:
        id - String; the id of the object for comparison purposes, can not be null.
        distance - the distance to the other object; if this constructor is used, distance cannot be null.
        Throws:
        GTUException - when id is null, or parameters are inconsistent
      • HeadwayObject

        public HeadwayObject​(String id,
                             Length overlapFront,
                             Length overlap,
                             Length overlapRear,
                             Speed speed,
                             Acceleration acceleration)
                      throws GTUException
        Construct a new Headway information object, for a moving object parallel with us.
        Parameters:
        id - String; the id of the object for comparison purposes, can not be null.
        overlapFront - the front-front distance to the other object; if this constructor is used, this value cannot be null.
        overlap - the 'center' overlap with the other object; if this constructor is used, this value cannot be null.
        overlapRear - the rear-rear distance to the other object; if this constructor is used, this value cannot be null.
        speed - the (perceived) speed of the other object; can be null if unknown.
        acceleration - the (perceived) acceleration of the other object; can be null if unknown.
        Throws:
        GTUException - when id is null, or parameters are inconsistent
      • HeadwayObject

        public HeadwayObject​(String id,
                             Length overlapFront,
                             Length overlap,
                             Length overlapRear)
                      throws GTUException
        Construct a new Headway information object, for a non-moving object parallel with us.
        Parameters:
        id - String; the id of the object for comparison purposes, can not be null.
        overlapFront - the front-front distance to the other object; if this constructor is used, this value cannot be null.
        overlap - the 'center' overlap with the other object; if this constructor is used, this value cannot be null.
        overlapRear - the rear-rear distance to the other object; if this constructor is used, this value cannot be null.
        Throws:
        GTUException - when id is null, or parameters are inconsistent
      • HeadwayObject

        public HeadwayObject​(String id,
                             Length distance,
                             Length length,
                             Speed speed,
                             Acceleration acceleration)
                      throws GTUException
        Construct a new Headway information object, for a moving object ahead of us or behind us.
        Parameters:
        id - String; the id of the object for comparison purposes, can not be null.
        distance - the distance to the other object; if this constructor is used, distance cannot be null.
        length - Length; the length of the other object, can be null of unknown.
        speed - the (perceived) speed of the other object; can be null if unknown.
        acceleration - the (perceived) acceleration of the other object; can be null if unknown.
        Throws:
        GTUException - when id is null, objectType is null, or parameters are inconsistent
      • HeadwayObject

        public HeadwayObject​(String id,
                             Length distance,
                             Length length)
                      throws GTUException
        Construct a new Headway information object, for a non-moving object ahead of us or behind us.
        Parameters:
        id - String; the id of the object for comparison purposes, can not be null.
        distance - the distance to the other object; if this constructor is used, distance cannot be null.
        length - Length; the length of the other object, can be null of unknown.
        Throws:
        GTUException - when id is null, or parameters are inconsistent
      • HeadwayObject

        public HeadwayObject​(String id,
                             Length overlapFront,
                             Length overlap,
                             Length overlapRear,
                             Length length,
                             Speed speed,
                             Acceleration acceleration)
                      throws GTUException
        Construct a new Headway information object, for a moving object parallel with us.
        Parameters:
        id - String; the id of the object for comparison purposes, can not be null.
        overlapFront - the front-front distance to the other object; if this constructor is used, this value cannot be null.
        overlap - the 'center' overlap with the other object; if this constructor is used, this value cannot be null.
        overlapRear - the rear-rear distance to the other object; if this constructor is used, this value cannot be null.
        length - Length; the length of the other object, can be null of unknown.
        speed - the (perceived) speed of the other object; can be null if unknown.
        acceleration - the (perceived) acceleration of the other object; can be null if unknown.
        Throws:
        GTUException - when id is null, or parameters are inconsistent
      • HeadwayObject

        public HeadwayObject​(String id,
                             Length overlapFront,
                             Length overlap,
                             Length overlapRear,
                             Length length)
                      throws GTUException
        Construct a new Headway information object, for a non-moving object parallel with us.
        Parameters:
        id - String; the id of the object for comparison purposes, can not be null.
        overlapFront - the front-front distance to the other object; if this constructor is used, this value cannot be null.
        overlap - the 'center' overlap with the other object; if this constructor is used, this value cannot be null.
        overlapRear - the rear-rear distance to the other object; if this constructor is used, this value cannot be null.
        length - Length; the length of the other object, can be null of unknown.
        Throws:
        GTUException - when id is null, or parameters are inconsistent