TEACHING: A computing Toolkit for building Efficient Autonomous appliCations leveraging Humanistic INtelliGence is an EU-funded project that designs a computing platform and the associated software toolkit supporting the development and deployment of autonomous, adaptive and dependable CPSoS applications, allowing them to exploit a sustainable human feedback to drive, optimize and personalize the provisioning of their services.
This repository can be taken as the main access point for the TEACHING platform (a collection of repositories) and for the design and deployment of new applications within the EU TEACHING 2020 project.
In particular, in this repository you will find a set of TEACHING applications defined as docker-compose configuration files following a parallel and distributed micro-services architecture. Five different applications showcasing the main features of the platform can be found in scenarios.
The application logic is defined at the docker compose level with a graph connecting several nodes (docker images) and arcs (communications link). Nodes can be producers, consumers or both and communicate via RabbitMQ. Following the INPUT_TOPIC(s) and OUTPUT_TOPIC(s) variables (often hardcoded within each node) is possible to understand the graph composition.
Nevertheless, every node is agnostic with respect to the graph composition and technology used in other nodes. Every node only implements a single function and process each DataPacket (a JSON based object) made available trought the INPUT_TOPIC.
Data flow and processing is mostly abstracted to the end TEACHING app designer and implemented in the main repository:
In order to implement a new TEACHING application, first it is important to understand if the nodes available are enough to fit your needs. In particular you may want to check the following repos:
We also offer an indipendend service (that can be run in parallel) that can be useful to model Federated Learning use-cases:
If these repos do not provide the producing or consuming nodes you need. Then you can implement your own following the guidelines provided within each repository documentation (mostly README.md).
The main content of this repo:
Theoretically any Docker supported system may be run a TEACHING application. However, the reference platforms for the projects are:
:white_check_mark: Working :warning: In progress
Scenario | Description | x86/x64 | IMX8 | Other ARM |
---|---|---|---|---|
Scenario 1 | Record measurements of a vehicle in a route. | :white_check_mark: | :white_check_mark: | :warning: |
Scenario 2 | Personalization of driving experience using a RL model. | :white_check_mark: | :white_check_mark: | :warning: |
Scenario 3 | Process real time video stream and draw the measurements on the image. | :white_check_mark: | :white_check_mark: | :warning: |
Scenario 4 | Record measurements of a driver using a shimmer device. | :warning: | :warning: | :warning: |
Scenario 5 | Integration between AI-Toolkit and TEACHING_Platform. | :white_check_mark: | :warning: | :warning: |
:white_check_mark: Tested :warning: Untested
First of all you need to setup your environment. If you are using Windows, you can install WSL2 and Docker Desktop. Then within Docker settings make sure to check the WSL integration tab and connect it to your virtual image. Once this is done you can run docker-compose directly within your WSL image (e.g. Ubuntu based). Alternatively, you can install and run everything from Windows powershell directly. Before running the app, make sure you have docker installed properly in your system using the latest stable version. If you are using Windows you can follow this guide. If you still encounter some issues try to run the simplest scenario like scenario_1.yaml without modifying it. If this also fails it means the problem is mostly due to the installation of the TEACHING app dependencies (docker images, etc.) out of the scope of this repository. You can run the scenarios with the following commands:
# if you want to run it in the iMX8 remember to set the ARCH global variable
# to "arm64" otherwise "amd64" (for laptops, etc.) will be set by default
export ARCH=arm64
git clone --recurse-submodules https://github.com/EU-TEACHING/teaching-app
cd teaching-app
source setup.sh
docker-compose -f scenarios/scenario_1.yaml up
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
This project has received funding from the European Union’s Horizon 2020 Research and Innovation program under grant agreement No 871385.