• Documentation
  • Core API
  • SmartOpenHamburg API
  • Model Components API
  • Common API

    Show / Hide Table of Contents
    • MARS DSL Language
    • MARS Runtime System
      • Getting started with MARS
      • Basic Concepts
        • Multi-Agent-Simulation
        • Agents
        • Layers
        • Entities
        • Environments
        • Model Setup
      • Model Configuration
        • Agent and Entity Configuration
        • Layer Configuration
        • Output Filter
        • Simulation Configuration Options
        • Simulation Output Formats
      • Data Sources
        • Geospatial Data Sources
        • Geospatial Data Types
        • ASCII grid (.asc)
        • CSV
        • Time-series Data
      • Analysis and Visualization
        • Visualizing Agent Movement Trajectories
        • Simple Live Visualization
        • Analyzing Output Data
      • Tutorials
        • Creating a new MARS C# project
        • Creating a starting point for your model
        • Creating vector and raster layer files
        • Building your first model (wolf-sheep-grass)
        • Common problems and solutions
        • Acquire geo data for layers
        • Build and start your model in Kubernetes cluster
    • SmartOpenHamburg
      • Quick Start
      • Ready to use scenarios (boxes)
        • Ferry Transfer
        • Green4Bikes
        • Results
        • Result Schemas
      • Layer
        • Multimodal Layer
        • Modal Layer
        • Scheduling Layer
        • Vector Layer
      • Agents
        • Behaviour Model
        • Multimodal
        • Multi-Capable
        • Multi-Modality
        • Citizen
        • Traveler
      • Entities
        • Referencing
        • Street Vehicles
        • Bicycle Vehicles
        • Ferry

    Multi-Capable Agent

    The MultiCapableAgent agent is a MultimodalAgent that implements different steering capabilities. As right now it supports car driving (ICarSteeringCapable) and cycling (IBicycleSteeringAndRentalCapable). Moreover it allows to use the ferry and walking (Pedestrian).

    MultiCapableAgentCapabilities : IEnumerable<ModalType> «get»AgentCapabilities : string «get»CapabilityDriving : bool «get» «set»CapabilityCycling : bool «get» «set»ExpectedTravelTime : int «get» «protected set»StoreTickResult : bool «get» «set»ActualTravelTime : int «get»RouteMainModalActualTravelTime : int «get» «protected set»RouteMainModality : string «get»RouteModalities : string «get»RouteModalityCount : int «get»RouteMainModalRouteLength : int «get»ActiveCapability : ModalType «get»OvertakingActivated : bool «get»CurrentlyCarDriving : bool «get»DriverRandom : double «get»DriverType : DriverType «get»CyclingPower : double «get»Gradient : double «get» = 0MultiCapableAgent(multimodalLayer:IMultimodalLayer, position:Position)«override» Move() : void«override» Notify(passengerMessage:PassengerMessage) : voidPedestrianICarSteeringCapableIBicycleSteeringAndRentalCapable

    Dynamic capabilities

    The MultiCapableAgent agent can be configured by enabling and disabling these capabilities so that different agents (of the same type) may have different modalities at hand to choose from.
    The capabiltity for car driving can be set with over the property CapabilityDriving and for cycling with CapabilityCycling.

    Output aggregation

    The result output as simulation results can be generated for each individual agent to perform detailed analysis. For bigger scenarios it might make sense to switch to an aggregate output. The MultiCapableAgent allows to only store information for successfully finished multimodal routes.

    As aggregate data following information is provided:

    property description
    ExpectedTravelTime An estimation on the required time to travel the multimodal route
    ActualTravelTime The required time to travel the full multimodal route
    RouteMainModality If the multimodal route has different modalities then the one which allows the fastest travel is the main modality
    RouteMainModalActualTravelTime The required time to travel the main modality part of the multimodal route
    RouteMainModalRouteLength The length of the main modality route
    RouteModalities An overview over different sections/subroutes (e.g. Walk➡️Cycle➡️Walk) of the multimodal route
    RouteModalityCount The amount of different route sections (e.g. Walk➡️Cycle➡️Walk = 3)

    To activate the multimodal route aggregation output use following definition in the config.json.

    {
        "agents": [
          {
             "name":"MyAgent",
             "output":"csv",
             "outputFilter":[
                {
                   "parameter":"StoreTickResult",
                   "operator":"in",
                   "values":[
                      true
                   ]
                }
             ]
          }
        ]
    }
    
    Back to top © 2022 MARS GROUP