Interactions in Eclipse MOSAIC
This chapter is intended to document interactions that can be sent and received between Eclipse MOSAIC federates in order to enable users to easily design and integrate new federates and connect them to existing federates. Note that we use the word “interaction” whenever we describe communication between federates, whereas we talk about a “message” primarily when concerned with V2X-communication.
All interactions are categorized by the package they are contained in, which corresponds to their main context/purpose. The “Sent by” column is not necessarily complete for all interactions but should give an idea where interactions are used.
mapping
All interactions in this package are concerned with adding/registering simulation-units to the simulation.
While most of the introductions are handled by the Mapping
- or Application
-ambassador, some of them
are handled by the ambassadors for the traffic simulators (see
LuST-scenario).
In this case the interactions are used to initialize the scenario.
Interaction name | Description | Sent by |
---|---|---|
VehicleRegistration |
This interaction is sent by the vehicle mapping component to indicate the introduction of a new vehicle to the simulation. Note, this does not necessarily imply that the added vehicle is already simulated by the traffic simulator. | Mapping ,Application |
ChargingStationRegistration |
This interaction indicates the introduction of a charging station to the simulation. All units are introduced at simulation start time, e.g. 0s. | Mapping |
RsuRegistration |
This interaction indicates the introduction of a roadside unit to the simulation. | Mapping |
TmcRegistration |
This interaction indicates the introduction of a traffic management center to the simulation. It holds a list of all applications and all induction loops and lane are detectors the TMC is responsible for. | Mapping |
ServerRegistration |
This interaction indicates the introduction of a server to the simulation. It holds a list of all applications. | Mapping3 |
TrafficLightRegistration |
This interaction indicates the introduction of a traffic light (group) to the simulation. It holds a traffic light group, which unites all traffic light signals used for one traffic light system. | Mapping |
TrafficSignRegistration |
This interaction indicates the introduction of a traffic sign. | Mapping |
mapping.advanced
Interactions in this package are still concerned with the mapping of vehicles but differ from simple simulation unit registration.
Interaction name | Description | Sent by |
---|---|---|
ScenarioTrafficLightRegistration |
This interaction contains the phases and their duration of each traffic light in the simulation. This interaction shall be generated by the traffic simulators at start up (e.g. SUMO) | Sumo ,Phabmacs |
ScenarioVehicleRegistration |
This interaction is used to add vehicles to a simulation using a preconfigured scenario, which could be defined by using Sumo. | Sumo(Scenario) |
RoutelessVehicleRegistration |
This interaction is sent the vehicle mapping component to indicate the introduction of a new vehicle whose route is not yet known. This interaction is usually handled by the Application -ambassador, which calculates a route for the given vehicle and sends out an VehicleRegistration-interaction afterwards. |
Mapping |
communication
This package contains interactions regarding the setup of communication-components in simulation units and interactions concerned with the transfer of V2X-messages.
Interaction name | Description | Sent by |
---|---|---|
AdHocCommunicationConfiguration |
This interaction is intended to be used to exchange information about the configuration of a vehicle’s ad-hoc communication facilities. | Application |
CellularCommunicationConfiguration |
This interaction is intended to be used to exchange information about the configuration of a vehicle’s cellular communication facilities. | Application |
Interactions related to V2X-message transfer.
Interaction name | Description | Sent by |
---|---|---|
V2xMessageAcknowledgement |
This interaction is used by a communication simulator to inform about success or failure of a packet transmission. Typically, the application simulator should subscribe to this interaction. | Cell |
V2xMessageReception |
This interaction is intended to be used to exchange information about a received V2X message. | Omnet++ ,ns-3 ,SimpleNetworkSimulator ,cell |
V2xFullMessageReception |
This interaction carries the payload that represents an arbitrary V2XMessage that is supposed to be received by the receiver of this Eclipse MOSAIC Interaction. | Omnet++ ,ns-3 ,SimpleNetworkSimulator ,Cell |
V2xMessageRemoval |
This interaction is intended to be used to exchange information about V2X messages, that are to be deleted. | Application |
V2xMessageTransmission |
This interaction is sent in order to trigger the transportation of a V2XMessage over a wireless network to a given geographical destination area. | Application |
vehicle
The interactions contained in this package are usually used to enable applications to forward vehicle-control to the used traffic simulators.
Interaction name | Description | Sent by |
---|---|---|
VehicleActuatorsChange |
This interaction is used to directly control the throttle/brake of an vehicle. At the moment this is only supported by Phabmacs. | Application |
VehicleDistanceSensorActivation |
This interaction is used to enable the distance sensors of a vehicle. A multitude of sensors can be enabled with one interaction given they use the same maximum lookahead distance. | Application |
VehicleFederateAssignment |
This interaction is intended to be used, when more than one traffic simulator is used in a simulation. It enables the passing of information on which vehicle are passed externally. At the moment this is used by the PhSCA-ambassador. | PhaSCA |
VehicleLaneChange |
This interaction initiates a lane change for the given vehicle, which should be consumed by the traffic simulators. | Application |
VehicleParametersChange |
This interaction requests to update various parameters of the vehicle or its driver. | Application |
VehicleResume |
This interaction requests the given vehicle to continue its journey after being stopped beforehand. The interaction should be handled by traffic simulators | Application |
VehicleRouteChange |
This interaction is used to change a route for vehicle by its id. It can be assumed that the given route id has been propagated by either a VehicleRoutesInitialization- or VehicleRouteRegistration-interaction. | Application |
VehicleRouteRegistration |
This interaction is used to propagate a newly generated route which is not yet known. It consists of the id of the route and a list of all its edges. | Application |
VehicleSightDistanceConfiguration |
This interaction is used to configure the sight distance for a vehicle (driver), this information can for example be used to implement applications regarding traffic sign recognition. | Application |
VehicleSlowDown |
This interaction initiates the vehicle to slow down in a given interval. The request should be handled by traffic simulators. The name ‘SlowDown’ is inherited by Sumo and a little bit misleading, the speed can also be increased. | Application |
VehicleSpeedChange |
This interaction sets the current speed of the given vehicle. This should be handled by traffic simulators | Application |
VehicleStop |
This interaction requests the given vehicle to stop at the given road position, it should be handled by traffic simulators. | Application |
traffic
Interactions in this package are focused around traffic management and communication with traffic simulators.
Interaction name | Description | Sent by |
---|---|---|
CellularHandoverUpdates |
This interaction is used by the cell ambassador to communicate handovers. | cell |
InductionLoopDetectorSubscription |
This interaction subscribes a unit to the data of an induction loop detector, usually this will be TMCs. In order to retrieve the data, traffic simulators have to be told to omit the subscribed data. | Application |
LaneAreaDetectorSubscription |
This interaction subscribes a unit to the data of a lane area detector, usually this will be TMCs. In order to retrieve the data, traffic simulators have to be told to omit the subscribed data. | Application |
LanePropertyChange |
This interaction contains lane properties to be changed. Concretely, it sets a list of allowed and disallowed vehicle classes per lane and a new maximum speed limit that shall be changed. The changed lane properties have to be omitted to the traffic simulator to be handled. | Application |
TrafficDetectorUpdates |
This extension of {@link Interaction} combines updates of lane area and induction loop detectors. Usually the updates are supplied by the traffic simulator and will be filtered by applications subscribed to them. | Sumo |
TrafficLightStateChange |
This interaction is intended to be used to forward a request to change the state of a simulated traffic light. This interaction can be used to implement different controlling strategies for traffic lights. | Application |
TrafficLightUpdates |
This interaction is a container for traffic light updates. It is sent by the SumoAmbassador to inform simulation units about updated traffic light states. | Sumo |
VehicleUpdates |
This interaction is used to update the position of some or all vehicles of the simulation. It consists of three lists, containing newly added vehicles, vehicles which were updated since the last simulation step, and vehicles which have been removed from the traffic simulation. | Sumo ,Phabmacs |
VehicleTypesInitialization |
This interaction is required for each simulation. It contains predefined vehicle types. Other ambassadors may cache this interaction in order to have access on vehicle types, which are later identified by their identifier. | Mapping |
VehicleRoutesInitialization |
This interaction is required for each simulation. It contains all routes vehicles will take during the simulation. Other ambassadors may cache this interaction in order to have access on the routes, which are later identified by their identifier. | Application |
electricity
All interactions contained in this package are related to electric vehicles and the surrounding infrastructure.
Interaction name | Description | Sent by |
---|---|---|
ChargingDenialResponse |
This interaction is sent out by the charging station ambassador to inform the application simulator (the vehicles) when a charging station is already in use. e.g. a vehicle wants to start charging on an engaged charging station -> ChargingStartDenial. | ChargingStation |
ChargingStartResponse |
This interaction is intended to be used to forward a started charging process at a ChargingSpot to the RTI. | ChargingStation |
ChargingStationUpdates |
This extension interaction is intended to be used to forward the updated state of a ChargingStation to the RTI. | ChargingStation |
ChargingStopResponse |
This interaction is intended to be used to forward a stopped charging process at a charging station to the RTI. | ChargingStation |
VehicleChargingStartRequest |
This interaction is intended to be used to forward a request from a vehicle to start charging its battery at a charging station to the RTI. | Application |
VehicleChargingStopRequest |
This interaction is intended to be used to forward a request from a vehicle to stop charging its battery at a charging station to the RTI. | Application |
VehicleElectricityUpdates |
This interaction is used to inform the applications of simulation units about changed electric information, send out by the battery ambassador. | Battery |
environment
The interactions in this package are used for handling the communication about environment sensors.
Interaction name | Description | Sent by |
---|---|---|
EnvironmentSensorActivation |
This interaction is intended to be used to signal interest in sensor information for a specific simulation unit. | Application |
EnvironmentSensorUpdates |
This interaction is intended to be used to exchange sensor data. | EventServer |
GlobalEnvironmentUpdates |
This extension of interaction contains a list of current environment events and their locations. Those events can than be used to react upon a changing environment. | EventServer |
trafficsigns
Interactions in this package are used to communicate changes in variable traffic signs, e.g. changing the speed limit.
Interaction name | Description | Sent by |
---|---|---|
AbstractTrafficSignChange |
This interaction can be sent to traffic sign ambassador in order to change a variable traffic sign. All interaction-classes, that are concerned with changing traffic signs extend this class. | Application |
TrafficSignLaneAssignmentChange |
This interaction can be sent to traffic sign ambassador in order to change a variable lane assignment sign. | Application |
TrafficSignSpeedLimitChange |
This interaction can be sent to traffic sign ambassador in order to change a variable speed sign. | Application |
VehicleSeenTrafficSingsUpdate |
This interaction stores a map of all traffic signs which are in sight distance of a specific vehicle and a map of all traffic signs which became invalid for that vehicle. | TrafficSign |
application
Interactions in this package are used for applications. They are used to communicate custom information/data via the RTI.
Interaction name | Description | Sent by |
---|---|---|
ApplicationInteraction |
This interaction is intended to be used in custom applications, it can be extended for simulation units to react upon different influences and can be used for intercommunication between applications. | Application |
ItefLogging |
This interaction is used to exchange log-tuples for the ITEF (Integrated Testing and Evaluation Framework). | Application |
SumoTraciRequest |
This interaction is used to send a byte array message to SUMO TraCI. The request will be handled by TraCI and trigger a SumoTraciResponse. | Application |
SumoTraciResponse |
This interaction holds the TraCI response for a SumoTraciRequest. It is sent by the SumoAmbassador and will usually be handled by the Application that sent the request. | Sumo |