<-Conformance Testing Go to ToC

1 General

The CAV-TEC V2.0 Reference Software is part of the MPAI-AIF V3.0 Reference Software: the subsystems of Connected Autonomous Operation are Composite AIMs of CAV-TEC, run by a Controller of MPAI-AIF V3.0 and driven by its User Agent. The software is written in C# for .NET 10.

The Implementations are reference Implementations: they substantiate the interfaces, the Data Types and the architecture of CAV-TEC, and let its Conformance Testing be exercised. Their algorithms are simple, and are not intended to drive a vehicle on a road.

2 Components

Table 1 – Components of the Reference Software

Subsystem Implemented AIMs
Human-CAV Interaction The conversational AIMs of MPAI-MMC V2.5 – speech recognition, dialogue processing, speech synthesis, the avatar – with a road map, through which a person requests a destination and converses with the CAV.
Environment Sensing Subsystem Spatial Attitude Generation, Basic Visual Scene Description and Basic Environment Description, with a feedback of the Basic Environment Descriptors of previous instants.
Autonomous Motion Subsystem Route Selection Planning, Path Selection Planning, Full Environment Description, Motion Selection Planning, Traffic Obstacle Avoidance and AMS Memory.
Motion Actuation Subsystem AMS-MAS Message Interpretation, MAS Spatial Attitude Generation from the motion sensors, MAS Response Analysis and Ice Condition Analysis.
Connected Autonomous Operation The four subsystems as one Module under one Controller, run continuously; the exchange with remote CAVs.

3 Software architecture

Figure 1 depicts the software architecture of the Reference Software: its components, each with the .NET assembly that holds it and its main classes.

Figure 1 - Software architecture of the CAV-TEC V2.0 Reference Software

Figure 1 – Software architecture of the CAV-TEC V2.0 Reference Software

The figure has four layers, from the top.

Test environment. The Simulation (Mpai.Cav.Recordings) is the world the CAV drives in. Simulation advances the world in steps of 0.1 s and moves the other road users; Vehicle is the body of the CAV, moved by its motor, brakes and steered wheels and measured by motion sensors with noise and bias; CameraRenderer renders the frames of the camera from where everything is; SyntheticDrive makes a drive, with its ground truth, from a seed. The tests (Mpai.Aif.Tests) contain the User Agent of the CAV, CaoInTheLoop: at every step it writes what the sensors give to the input Ports of the Module, waits for the CAV to decide on the frame, reads the commands at the output Ports and gives them to the vehicle. CaoDemo records a drive, the decisions of the CAV and its motion for review.

MPAI-AIF V3.0. The User Agent reaches the Controller only through the Controller API (Mpai.Aif.Api). The Controller (AIF.Controller) reads the AIM Instance Metadata of the Module, asks the provider of each subsystem for the Implementation of each AIM Instance, connects the Ports of the AIMs with the Channels of the Topology and executes each AIM when its data arrive (ContinuousExecutor). Communication (AIF.Channels) carries the data between AIMs and, through ExternalTransport, the Ego-Remote Messages to and from remote CAVs in range. Storage holds the Shared Storage of the Module. Metadata validates each AIM Instance Metadata against its AIM Metadata and each datum against the schema of its Data Type. Trust admits the CAV and signs and verifies every message exchanged between CAVs.

Connected Autonomous Operation. The CAV is one Module, 1CAV-CAO-V2.0-I01, with four Sub-AIMs, the subsystems of CAV-TEC. Each is a Composite AIM whose AIMs are implemented in its own assembly and given to the Controller by its provider: HciProvider builds Human-CAV Interaction from AIMs of MPAI-MMC V2.5 and of OSD, PAF, CAE and CVE; EssProvider, AmsProvider and MasProvider give the AIMs of CAV-TEC listed in Table 3. Two assemblies are shared by the subsystems: Map (Mpai.Cav.Map), the road network from which the Offline Map and the Routes are made, and Core (Mpai.Core), the Data Types as C# classes and their JSON.

Files read at start. The AIM Metadata of the CAV AIMs (schemas/CAV2/V2.0), the AIM Instance Metadata of their Implementations (AIMs/AMDs), the settings of each AIM – model paths, their SHA-256 and parameters (AIMs/aim-settings.json) – and the models, which are not in the repository.

Table 2 gives each component, the assembly and folder that hold it, its main classes and its role.

Table 2 – Software components of the Reference Software

Component Assembly and folder Main classes Role
Simulation Mpai.Cav.Recordings
CAV/Recordings
Simulation, Vehicle, CameraRenderer, SyntheticDrive The world the CAV drives in: road users, the vehicle moved by its mechanical subsystems, the sensor data rendered from where everything is, the ground truth
User Agent of the CAV Mpai.Aif.Tests
Test/Mpai.Aif.Tests
CaoInTheLoop, CaoDemo Starts the Module through the Controller API, writes what is sensed to its input Ports, returns its commands; records a drive for review
Controller API Mpai.Aif.Api
AIF/ControllerApi
ControllerApi, IControllerApi The API through which a User Agent drives the Controller
Controller AIF.Controller
AIF/Controller
Controller, ContinuousExecutor, ExchangeOnChannels, CompositeProvider, IAimProvider Instantiates the Module and its Sub-AIMs from their AIM Instance Metadata, connects their Ports, executes each AIM when its data arrive
Communication AIF.Channels
AIF/Communication/Channels
Channel, RemoteLink, RemoteTransport, ExternalTransport The Channels of the Topology; the transport of Ego-Remote Messages to and from remote CAVs
Storage AIF.SharedStorage
AIF.GlobalStorage
ModuleSharedStorage, FileGlobalStorage The Shared Storage of the Module; the Global Storage
Metadata AIF.Metadata
AIF/Metadata
AimMetadataSchema, L2Conformance, PublishedSchemas Validates each AIM Instance Metadata against its AIM Metadata, and each datum against the schema of its Data Type
Trust AIF.Trust
AIF/Trust
TrustAuthority, VerificationPipeline, TrustDomain Admits the CAV; signs and verifies the messages exchanged between CAVs
CAV AIMs Mpai.Cav.Hci, Mpai.Cav.Ess, Mpai.Cav.Ams, Mpai.Cav.Mas
AIMs/CAV/V2.0
HciProvider, EssProvider, AmsProvider, MasProvider The Implementations of the AIMs of the four subsystems (Table 3), each given to the Controller by the provider of its subsystem
Map Mpai.Cav.Map
AIMs/CAV/V2.0/Map
RoadMap, WayPoint The road network, the Routes and the Offline Map, shared by the AMS and the simulation
Data Types Mpai.Core
AIMs/Core
– The Data Types of OSD, MMC, PAF, CAV and the other standards as C# classes, and their JSON
Metadata and settings schemas/CAV2/V2.0
AIMs/AMDs
AIMs/aim-settings.json
– The AIM Metadata of the CAV AIMs; the AIM Instance Metadata of their Implementations; model paths, SHA-256 and parameters of each AIM

Table 3 gives each AIM of the Reference Software, the identifier of its Implementation, the class that implements it and the technology it uses, where it uses one.

Table 3 – AIMs and their Implementations

AIM Implementation Class Technology
Connected Autonomous Operation 1CAV-CAO-V2.0-I01 Composite, executed by the Controller
Human-CAV Interaction 1MMC-HCI-V2.5-I01 Composite; its Sub-AIMs from HciProvider MMC V2.5: ASR (whisper.cpp), NLU, EDP (Ollama, llama3.2:3b), SPE, PMX, SIR, TTS (Piper); OSD: AVA, BAS, BLS, BVS, IDR; PAF: FIR, FPE, GFD, PSD; CAE: AII, ASI, QCV; CVE: VII, VSI
Environment Sensing Subsystem 1CAV-ESS-V2.0-I01 Composite; EssProvider
 Spatial Attitude Generation 1CAV-SAG-V2.0-I01 SpatialAttitudeGeneration
 Basic Visual Scene Description 1OSD-BVS-V1.5-I02 BasicVisualSceneDescription YOLOX-S (ONNX)
 Basic Environment Description 1CAV-BED-V2.0-I01 BasicEnvironmentDescription
Autonomous Motion Subsystem 1CAV-AMS-V2.0-I01 Composite; AmsProvider
 Full Environment Description 1CAV-FED-V2.0-I01 FullEnvironmentDescription
 Route Selection Planning 1CAV-RSP-V2.0-I01 RouteSelectionPlanning
 Trajectory Planning and Decision 1CAV-TPD-V2.0-I01 Composite
  Path Selection Planning 1CAV-PSP-V2.0-I01 PathSelectionPlanning
  Motion Selection Planning 1CAV-MSP-V2.0-I01 MotionSelectionPlanning
  Traffic Obstacle Avoidance 1CAV-TOA-V2.0-I01 TrafficObstacleAvoidance
 AMS Memory 1CAV-AMM-V2.0-I01 AmsMemory
Motion Actuation Subsystem 1CAV-MAS-V2.0-I01 Composite; MasProvider
 AMS-MAS Message Interpretation 1CAV-AMI-V2.0-I01 AmsMasMessageInterpretation
 MAS Spatial Attitude Generation 1CAV-MSA-V2.0-I01 MasSpatialAttitudeGeneration
 Ice Condition Analysis 1CAV-ICA-V2.0-I01 IceConditionAnalysis
 MAS Response Analysis 1CAV-MRA-V2.0-I01 MasResponseAnalysis

4 Test environment

  • Synthetic drives: the sensor data of a drive made from a seed, with the ground truth of its environment, played through the User Agent.
  • A simulated vehicle: dynamics, wheels, brakes and motors, and motion sensors with noise and bias, closing the loop of the Motion Actuation Subsystem.
  • Remote CAVs: two CAVs, each under its own Controller, exchanging messages.
  • A recorder: a drive, the decisions of the CAV and its motion, recorded and rendered for review.

5 Verification

The Reference Software is verified by automated tests: each subsystem stage by stage, from its first AIM to the subsystem end to end; the Motion Actuation Subsystem in open and closed loop; the Environment Sensing Subsystem on synthetic drives against their ground truth; the Autonomous Motion Subsystem from route to Trajectory; Connected Autonomous Operation end to end; and two remote CAVs.

6 Access to the code

Please send an email to the MPAI Secretariat to access the code.

<-Conformance Testing Go to ToC