système de guidage à double essieu directionnels

Bonjour à tous,

Je souhaite vous présenter une idée de projet de guidage, pour un châssis à double essieu directionnel. La partie mecanique est un montage sur mesure, adapté à de très fortes pentes, pour lesquelles j’ai besoin de rester absolument centré dans le rang, à la fois pour le train avant et le train arrière;
le système dois travailler en avant et en arrière, d’où l’idée de placer un récepteur GPS sur chaque essieu, et calculer automatiquement si la machine travaille en marche avant, ou en marche arrière, en se basant sur la différence de position des deux capteur toutes les 100ms.

:dart: Objectif global

Créer un système de guidage pour machine 4 roues directrices, où chaque essieu suit indépendamment la même ligne AB, avec :

  • Un guidage local par GPS pour chaque essieu,
  • Une correction de tangage via un module IMU (BNO055) centralisé,
  • Un retour d’état par UDP vers un poste maître (ex. AgOpenGPS),
  • Un système de sécurité embarqué, signalé uniquement via UDP.

:jigsaw: Architecture matérielle

:wheel: Modules Essieux (x2)

  • Microcontrôleur : STM32
  • GPS (UART, 10 Hz ),
  • Ethernet via W5500 (UDP),
  • Réception UDP :
  • Ligne AB,
  • Pitch (tangage) du châssis,
  • Calcul autonome de l’angle de braquage.

:straight_ruler: Module Maître Pitch

  • Microcontrôleur STM32,
  • IMU BNO055 (I2C),
  • Transmission du pitch toutes les 100 ms par UDP aux deux essieux.

:closed_lock_with_key: Règles de sécurité intégrées

|Erreur latérale > 15 cm pendant > 2 s|Envoi d’une alerte UDP|
|Ligne AB non reçue depuis > 10 s|Alerte UDP (pas de désactivation du guidage)|


:satellite: Communication UDP

Essieux envoient leur état à 192.168.1.10:8899
Trames d’alerte formatées comme :

ALERT:DEVIATION_HIGH;ERR=0.22;DUR=2.0
ALERT:NO_AB_LINE;LAST_RECEIVED=12.3

Pour réaliser cela, j’ai fait quelques recherche et commencé essayer de corriger le code, mais je ne suis pas certain. est ce que quelqu’un aurait les compétences pour vérifier la faisabilité de mon idée et du premier jet du code ?