The ASAP shift to SDV project consists of 3 new Ankaios workloads and a webserver component to interact with via MQTT. The workloads fulfill the following use-cases:
- fleet_manager: Applies manifests .yaml files, that it receives via MQTT to the Ankaios instance e.g. to start new workloads.
- vehicle_state_log: Retrieves eCal information about the vehicles' dynamics, enriches the information with Ankaios execution state logs and publishes them to the MQTT broker
- speed_limit_assist: The speed_limit_assist provides new functionality to the Ankaios runtime, evaluating whether the maximum speed is exceeded, and logs violations to the info log.
To orchestrate the workloads, we implemented a simple webserver. A user can upload a manifest .yaml file through the web UI. Simultaneously, while eCal is providing data, the UI displays the vehicle information and Ankaios execution state.
- start dev container
- in separate terminal instances inside your devcontainer, run the following:
restart-shift2sdv
cd webserver && python3 manage.py runserver
ecal_play -m measurements/2024-11-19_15-45-14.870_measurement/
- or wherever you have demo measurement data to play with eCal..
- Open the webserver on localhost:8000
When running on a local MQTT Broker (instead of ours hosted on Azure), run
mosquitto
from inside the dev container.
To reference the local broker, edit the "MQTT_BROKER_ADDR" env var inside the shift2sdv_manifest.yml as well as in "webserver/ankaios_deploy_manager/settings.py" to point to localhost instead.