java.lang.Object
org.opentrafficsim.road.gtu.lane.perception.mental.Fuller
org.opentrafficsim.road.gtu.lane.perception.mental.channel.ChannelFuller
All Implemented Interfaces:
ChannelMental, Mental

public class ChannelFuller extends Fuller implements ChannelMental
Fuller implementation with perception channels. This is based on a set of task suppliers, which may either provide static tasks (always the same) or a dynamic set of tasks (e.g. per conflicting road present). When relevant, task suppliers need to map objects to channel keys when they are invoked to return the currently applicable channel tasks. For example mapping a single conflict to a common key that refers to a channel based on a group of conflicts. In this way the correct perception delay can be found when only knowing the single conflict, without knowing how it was grouped or what then defines the key.

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

Author:
Wouter Schakel
  • Field Details

    • TC

      public static final ParameterTypeDouble TC
      Task capability in nominal task capability units, i.e. mean is 1.
    • TS

      public static final ParameterTypeDouble TS
      Task saturation.
    • OVER_EST

      public static final ParameterTypeDouble OVER_EST
      Over-estimation parameter type. Negative values reflect under-estimation.
    • EST_FACTOR

      public static final ParameterTypeDouble EST_FACTOR
      Erroneous estimation factor on distance and speed difference.
    • ATT

      public static final ParameterTypeDouble ATT
      Level of attention, which is the maximum in the steady state of the Attention Matrix.
    • TAU_MIN

      public static final ParameterTypeDuration TAU_MIN
      Minimum perception delay.
    • TAU_MAX

      public static final ParameterTypeDuration TAU_MAX
      Maximum perception delay.
  • Constructor Details

  • Method Details

    • getTotalTaskDemand

      protected double getTotalTaskDemand(LanePerception perception) throws ParameterException
      Description copied from class: Fuller
      Returns the total level of task demand, possibly after anticipation reliance.
      Specified by:
      getTotalTaskDemand in class Fuller
      Parameters:
      perception - perception
      Returns:
      level of task demand
      Throws:
      ParameterException - if a parameter is missing or out of bounds
    • getTasks

      public ImmutableSet<ChannelTask> getTasks()
      Description copied from class: Fuller
      Returns the currently active tasks.
      Specified by:
      getTasks in class Fuller
      Returns:
      tasks
    • addTaskSupplier

      public void addTaskSupplier(Function<LanePerception,Set<ChannelTask>> taskSupplier)
      Add task supplier.
      Parameters:
      taskSupplier - task supplier to add
    • removeTaskSupplier

      public void removeTaskSupplier(Function<LanePerception,Set<ChannelTask>> taskSupplier)
      Remove task supplier.
      Parameters:
      taskSupplier - task supplier to remove
    • getPerceptionDelay

      public Duration getPerceptionDelay(Object obj)
      Description copied from interface: ChannelMental
      Returns the perception delay belonging to a perception channel.
      Specified by:
      getPerceptionDelay in interface ChannelMental
      Parameters:
      obj - object that is a channel key, or that is mapped to a channel key.
      Returns:
      perception delay belonging to a perception channel.
    • getAttention

      public double getAttention(Object obj)
      Description copied from interface: ChannelMental
      Returns the level of attention of a perception channel.
      Specified by:
      getAttention in interface ChannelMental
      Parameters:
      obj - object that is a channel key, or that is mapped to a channel key.
      Returns:
      level of attention of a perception channel.
    • mapToChannel

      public void mapToChannel(Object obj, Object channel)
      Description copied from interface: ChannelMental
      Maps an object to a channel key.
      Specified by:
      mapToChannel in interface ChannelMental
      Parameters:
      obj - object.
      channel - channel key.
    • getChannels

      public Set<Object> getChannels()
      Returns the current channels.
      Returns:
      set of channels