• 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
          • SpatialHashEnvironment
          • GeoHashEnvironment
          • SpatialGraphEnvironment
          • CollisionEnvironment
        • 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

    Steering concept

    To use a transportation capability (modal type) an agent requires to implement the ISteeringCapable interface (e.g. ICarSteeringCapable, see figure below), which defines methods and properties that this agent must offer to be able to steer that Vehicle. Besides steering the vehicle the agent may also use some vehicles as a passenger (e.g. using the Ferry). The IPassengerCapable is implemented by the MultimodalAgent and informs the agent with a PassengerMessage about the current status of the drive. It may for instance notify the agent at every stop (e.g. FerryStation) so that the agent may decide to leave or stay on the ferry.

    The ISteeringHandle is the interface for an agent to drive the vehicle. Every Vehicle has a specific steering handle and provides that to the agent on successful enter.

    uml_car_steering

    Adding new transportation modalities is supported by the MultimodalAgent if it complies with the steering concept (see below).

    uml_multimodal_agent

    IPassengerCapableNotify(passengerMessage:PassengerMessage) : voidIPositionablePassengerMessageGoalReached,NoDriver,TerminalStation,ISteeringCapableIWalkingCapablePreferredSpeed : double «get»WalkingSteeringHandleEnvironment : ISpatialGraphEnvironment «get»Route : Route «get» «set»GoalReached : bool «get»Velocity : double «get»Position : Position «get» «set»WalkingSteeringHandle(multimodalAgent:MultimodalAgent, accelerator:WalkingAccelerator, environment:ISpatialGraphEnvironment, position:Position)«virtual» Move() : voidLeaveVehicle(passengerCapable:IPassengerCapable) : boolISteeringHandle
    Back to top Copyright © MARS GROUP.
    HAW Hamburg