SE5 IdO IA embarquée et informatique en périphérie
Introduction
L’objectif de ce projet est de distribuer le calcul à différents endroits du réseau afin d’être en mesure de proposer des pistes d’optimisation que ce soit en termes de performance ou de sobriété énergétique. Pour cela, vous allez mettre en œuvre un réseau d’objets connectés à des passerelles et à un serveur. Les objets collecteront des données de l’environnement et suivant les scénarios traiteront les données ou les enverront de façon brute à la passerelle ou au serveur. Chaque scénario sera évalué en terme de performance de calcul et de sobriété énergétique. Les indicateurs de performances sont à définir (indicateur pour le calcul, pour l’énergie mais aussi un indicateur combiné).
Mise en œuvre du réseau
La première étape consiste à mettre en place le réseau dans son ensemble. Le réseau est constitué d’objets connectés (Nucleo + capteurs) reliés de façons filaire à une passerelle WiFi (Raspberry Pi) permettant l’accès à un serveur. Dans un premier temps, une Raspberry Pi contrôlera quatre objets connectés
Machine virtuelle sur chassiron avec un accès internet IPv6
- Création
xen-create-image --hostname test --force --dist bookworm --size 10G --memory 1G --dir /usr/local/xen --password glopglop --dhcp --bridge bridgeStudents
- Configuration
- fichier /etc/network/interfaces
auto enX0 iface enX0 inet6 auto
- fichier /etc/resolv.conf
domain plil.info search plil.info nameserver 2a01:c916:2047:c800:216:3eff:fe82:8a5c
- fichier /etc/apt/sources.list
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
- supprimer /etc/apt/apt.conf.d/01proxy
Image de la Raspberry Pi pour connexion avec le serveur via WiFi
Objet connecté (STM32F401RE) avec capteurs
Protocole de communication et acquisition des données
Il convient d’être en mesure d’envoyer les données (brutes ou traitées) de l’objet connecté à la Raspberry Pi puis au serveur. Pour cela, il faudra :
- Développer un firmware embarqué pour collecter les données ;
- Mettre en œuvre un protocole de communication entre les quatre objets et la Raspberry Pi en garantissant que toutes les données sont bien reçues ;
- Mettre en œuvre un protocole de communication entre la Raspberry Pi et le serveur. Ce protocole doit facilement pouvoir être étendu à un grand nombre de Raspberry Pi ;
- Stocker les données reçues côté serveur.
Entraînement du modèle d’apprentissage
Une fois les données reçues et stockées, vous allez entraîner un algorithme de Machine Learning pour classifier ces données. Dans un premier temps, l’algorithme sera entraîné et exécuté sous environnement Linux :
- sur le serveur uniquement (données brutes jusque au serveur) ;
- sur la Raspberry Pi uniquement (données brutes jusque à la Raspberry Pi).
Le choix de l’algorithme de Machine Learning est laissé libre en fonction de la finalité de chaque application.
Mise en place du modèle embarqué et des modèles hybrides
Afin d’éviter d’envoyer trop de données sur le réseau, il peut être intéressant de localiser une partie du traitement au plus près du capteur. Pour cela, il est possible de :
- simplement “nettoyer” et compresser les données produites par le capteur ;
- entraîner un modèle de calcul embarqué dans le microcontrôleur. Pour cela, vous utiliserez la plateforme NanoEdgeAIStudio de ST Microelectronics ;
- mettre en œuvre des modèles hybrides avec pré-traitement à chaque couche du réseau.