Le blog personnel d'un lycéen

[Projet] Recherche sur un système d'optimisation du routage adaptatif Mesh basé sur une IA auto-entraînée

Aperçu des projets

Redirection :Mémoire de modélisation

Documentation du projet et présentation de la recherche

I. Contexte de la recherche

Actuellement, les réseaux Mesh sans fil présentent généralement le problème d'un “ signal fort mais d'une connexion instable ”. Les protocoles traditionnels tels que Zigbee et WIFI Mesh s'appuient sur un facteur unique de force du signal pour le choix de routage, sans pouvoir percevoir de manière globale des facteurs clés tels que le taux de perte de paquets de la liaison, les obstructions physiques et la charge des nœuds. En cas d'interférences dynamiques telles que l'obstruction par des murs ou le déplacement de personnes, le réseau est susceptible d'être interrompu, ne peut pas s'adapter à des environnements changeants/complexes, et peine à répondre aux besoins de communication dans des environnements particuliers.
Ce projet modifie le mode de décision traditionnel à facteur unique et met en place une architecture de “ décision intelligente par IA ”. En déployant l'algorithme de forêt aléatoire sur la puce ESP32-C6, chaque nœud se voit doté d'une capacité de décision indépendante, sans nécessiter de participation du cloud. Le système fusionne des caractéristiques multidimensionnelles telles que la qualité du signal, le nombre de sauts de liaison, la charge des nœuds et la stabilité de la liaison, réalisant le passage d'une “ connexion passive ” à une “ optimisation proactive ”, garantissant que le réseau reste robuste, efficace et auto-réparateur dans des environnements complexes et changeants.


II. Présentation du projet

Ce projet construit un système d'optimisation de routage adaptatif basé sur un algorithme d'IA.
Grâce au logiciel de simulation physique de réseau sans fil OMNet++, une scène contenant plusieurs murs et nœuds de communication a été construite, permettant d'obtenir 6959 données d'entraînement de simulation. Ensuite, l'algorithme de forêt aléatoire a été utilisé pour ajuster les données de l'ensemble d'entraînement, aboutissant à un modèle mathématique avec un bon effet d'ajustement.
Ce modèle peut être approximé par une fonction (f est approximé par la forêt aléatoire) :

DeliveryRatio=f(RSSI,Hop,Child,Loss)DeliveryRatio = f(RSSI, Hop, Child, Loss)

Après recherche, l'algorithme de prédiction obtenu a été déployé sur le microcontrôleur ESP32-C6 et des expériences ont été menées. Les résultats montrent que le modèle obtenu dans cet article peut mieux prendre en compte des informations telles que la force du signal, le nombre de sauts de liaison et la charge des nœuds lors de la sélection du nœud supérieur, afin de choisir un nœud de qualité globale supérieure pour la constitution du réseau.
Cet algorithme peut être appliqué à des scénarios tels que le déploiement rapide de réseaux dans de grands environnements complexes, et présente une certaine perspective pratique.


III. Points forts essentiels

Décision de routage par fusion multi-caractéristiques

Dépassant le mode de routage traditionnel qui repose uniquement sur la force du signal, il intègre des caractéristiques multidimensionnelles telles que le RSSI, la distance de transmission, la qualité de la liaison et la consommation d'énergie, améliorant la précision des décisions de chemin.

Constitution de réseau intelligente modulaire

Chaque ESP32-C6 est une unité indépendante, les unités communiquent et négocient entre elles, et par le biais du modèle de décision entraîné, elles estiment l'indice de qualité des nœuds en combinant diverses données réelles, permettant finalement de former un réseau topologique optimal.
Après la constitution du réseau, que ce soit un ESP32 (C6/S3/C3/8266), un téléphone, une tablette ou un ordinateur, tous peuvent accéder au réseau via ces nœuds. Ces nœuds jouent alors le rôle de routeur relais dans le réseau.

Entraînement d'un modèle de prédiction par ajustement basé sur l'apprentissage automatique

Collecte de données via l'outil de simulation physique sans fil OMNeT++, utilisation de la forêt aléatoire pour entraîner le modèle de sélection de routage, coefficient de détermination :

R2=0.965047,MSE=0.001571\mathrm{R}^2 = 0.965047, \mathrm{MSE} = 0.001571

Réalisation d'une prédiction de qualité de chemin à haute précision.

Déploiement en périphérie de l'IA

Déploiement du modèle sur les nœuds ESP32-C6 pour réaliser une inférence locale en temps réel, sans nécessiter de participation du cloud, améliorant la vitesse de réponse et la commodité des décisions du modèle.

Modélisation et impression 3D + conception de PCB

La conception du boîtier du terminal sera réalisée par modélisation et impression 3D, avec intégration d'une batterie au lithium et d'un module de charge/décharge, et l'intégration des circuits sera réalisée en soudant les différents composants sur une carte de circuit imprimé (PCB) conçue et prototypée.

Surveillance en temps réel des données/structure dans le cloud

Le serveur (backend) sera construit avec le framework Python Flask, et déployé en conteneur Docker sur un serveur cloud Linux (Debian-12.0). Les pages frontend seront développées avec Vue.JS pour permettre la surveillance en temps réel de la topologie réseau et des informations des nœuds.


IV. Illustration comparative avec les modes de connexion réseau traditionnels

Situation normale

Situations imprévues possibles (obstruction du signal ou signal faible dû à une distance éloignée)

Illustration comparative 1, 2 : Cette solution innovante présente des avantages évidents. Grâce à l'intégration d'un modèle d'IA entraîné, ce projet possède la capacité de s'adapter à des environnements changeants et d'optimiser automatiquement la topologie réseau, offrant ainsi une meilleure adaptabilité, flexibilité et prévisibilité.


V. Perspectives d'application

  • Communications d'urgence sur site de catastrophe (environnement sans station de base)
  • Réseau IoT intelligent
  • Réseau de surveillance industriel à faible consommation d'énergie
  • Réseau auto-organisé pour maison intelligente

Journal de recherche

Un : Choix du sujet

Situation actuelle :
Les réseaux Mesh sans fil actuels présentent généralement le phénomène de “ signal fort mais instable ”.
Problème identifié :
Les protocoles traditionnels s'appuient sur une seule intensité de signal pour le choix de routage, sans pouvoir percevoir de manière globale des facteurs clés tels que le taux de perte de paquets de la liaison, l'occultation physique et la charge des nœuds.
Objectif de recherche :
Construire un système de réseau Mesh intelligent robuste, efficace et auto-réparateur.


Deux : Construction de l'environnement de simulation et collecte de données

Le logiciel de simulation physique de réseaux sans fil OMNet++ a été choisi pour construire les scénarios.
La logique de simulation repose sur les hypothèses suivantes :

  1. Le scénario est une pièce en deux dimensions ; la passerelle, les terminaux, les relais et les murs sont générés aléatoirement à chaque tour.
  2. Les murs sont simplifiés en segments de droite ; le franchissement d'un mur par une liaison est déterminé par l'intersection de segments, et l'atténuation du signal s'accumule linéairement avec le nombre de murs traversés.
  3. Le réseau est structuré en arbre, avec la passerelle principale comme nœud racine.
  4. Le nombre de sauts est défini comme la longueur du chemin du relais vers la passerelle (sauts de relais), et le nombre de sous-appareils est défini comme le nombre de nœuds enfants directs de ce relais dans l'arbre.
  5. L'impact d'affaiblissement du signal causé par les murs est calculé à l'aide du modèle corrigé de perte de trajet en distance logarithmique.
PL=PL0+10njournal10(dd0)+NmurAmurPL = PL_0 + 10n \log_{10}\left(\frac{d}{d_0}\right) + N_{\text{wall}} \cdot A_{\text{wall}}
  1. Plus le nombre de sous-appareils d'un nœud relais est élevé, plus la charge du nœud est importante, et plus la probabilité de perte de paquets de données est élevée.
  2. Les paquets de données présentent une certaine probabilité de perte à chaque étape de retransmission par relais.

Sur la base des hypothèses ci-dessus :
La logique de simulation est écrite en C++, comprenant la génération aléatoire de l'environnement (positions de la passerelle, des terminaux, des nœuds relais et des murs), le calcul du RSSI et du nombre de sauts pour les chemins des terminaux vers chaque relais et des relais vers la passerelle, l'impact de la charge des sous-appareils sur le taux de réussite de la liaison, la perte probabiliste de paquets par les relais, les statistiques sur le taux d'accessibilité des paquets de données envoyés par la simulation, ainsi que la sortie des résultats au format CSV (RSSI, nombre de sauts, nombre de sous-appareils, taux de perte de paquets du nœud vers la passerelle, taux d'accessibilité).


Trois : Traitement des données, entraînement et optimisation du modèle d'IA

(I) Prétraitement des données

Les données comprennent au total 6959 enregistrements, chaque enregistrement étant composé de 5 champs :

  • Intensité du signal (RSSI_dBm)
  • Nombre de sauts du nœud (HopCount)
  • Nombre de nœuds enfants du nœud (ChildCount)
  • Taux de perte de paquets du nœud vers la passerelle (NodeToGatewayLossRate)
  • Taux d'accessibilité des paquets de données du terminal (DeliveryRatio)
    Parmi ceux-ci, RSSI_dBm, HopCount, ChildCount et NodeToGatewayLossRate sont utilisés comme caractéristiques.
    Le taux de reachabilité entre le terminal et la passerelle DeliveryRatio sert d'étiquette (variable cible) pour la prédiction du modèle.
    Lire les données csv via la bibliothèque pandas en Python.

(二) Division de l'ensemble d'entraînement et de l'ensemble de test

Division aléatoire des données avec 20% comme ensemble de test et 80% comme ensemble d'entraînement.

(三) Ajustement de l'algorithme

Utiliser la bibliothèque scikit-learn en Python pour construire respectivement les algorithmes de régression linéaire, de régression polynomiale et de forêt aléatoire.

(四) Analyse des résultats

(1) Régression linéaire

R2=0.622295,MSE=0.016977\mathrm{R}^2 = 0.622295, \mathrm{MSE} = 0.016977

L'effet d'ajustement est faible, la relation linéaire entre les données de caractéristiques et les données d'étiquettes n'est pas évidente.

(2) Régression polynomiale (quadratique)


Selon l'image, l'effet d'ajustement est légèrement meilleur que la régression linéaire, mais des valeurs négatives apparaissent dans les prédictions aux faibles valeurs réelles, le modèle présente un phénomène de surapprentissage.

R2=0.836970,MSE=0.007328\mathrm{R}^2 = 0.836970, \mathrm{MSE} = 0.007328

(3) Forêt aléatoire


En raison de la relation non linéaire entre les caractéristiques et les étiquettes, et de la présence de bruit dans les échantillons, après analyse, cet algorithme est une méthode de prédiction conforme aux exigences.

R2=0.965047,MSE=0.001571\mathrm{R}^2 = 0.965047, \mathrm{MSE} = 0.001571

Quatre : Développement matériel et déploiement

Cœur :
Sélection du microcontrôleur ESP32-C6 comme unité de contrôle centrale. Déploiement de l'algorithme de prédiction entraîné sur le nœud ESP32-C6. Perfectionnement de la logique de base.
Structure :
Conception du boîtier du terminal par technologie de modélisation et d'impression 3D. Achèvement de la conception et du prototypage du circuit imprimé PCB.
Fonctionnalités :
Intégration d'une batterie au lithium et d'un module de charge/décharge, d'un interrupteur, d'un écran OLED.
Capacité de mise en réseau :
Chaque ESP32-C6 est une unité indépendante, communiquant et négociant entre elles pour former un réseau topologique optimal.
Compatibilité avec la série ESP32 (C6/S3/C3/8266) ainsi qu'avec les terminaux tels que téléphones, tablettes, ordinateurs, etc.


Cinq : Construction du système de surveillance cloud

Backend :
Construction du serveur en combinant le framework Python Flask.
Déploiement conteneurisé via Docker sur un serveur cloud Linux (Debian-12.0).
Frontend :
Écriture des pages frontend avec Vue.JS.
Réalisation de la surveillance en temps réel de la structure topologique du réseau et des informations des nœuds (incluant l'affichage des données telles que le numéro de nœud, le nombre de sous-appareils, le taux de perte de paquets, le RSSI, etc.).
Les journaux backend peuvent enregistrer en temps réel la réception des données (comme le traitement des requêtes POST /api/data).


Six : Optimisation du système, correction des problèmes

Organisation des programmes de chaque partie, recherche et correction des erreurs logiques et de détail, optimisation du système, tout en ajoutant certaines fonctionnalités significatives.