Aller au contenu

S10 — Architecture logicielle : machine à états + superviseur « Director » + repli sûr

Répond à : P16 (événement non prévu), P17 (failsafe dangereux)

LE poste où EPITA doit exceller — et le risque n°1 prédit du défi

Principe

Niveau 1 — Machine à états avec modes dégradés explicites

Événement Mode dégradé
GPS perdu Navigation à l'estime
Gouvernail HS Dérive contrôlée + report continu
Batterie basse Ralentir/délester (S8)
Capteurs en désaccord Vote/repli sûr
Comms perdues On continue — surtout pas de retour au départ

Niveau 2 — Superviseur indépendant (« Director »)

Inspiré du superviseur de Peruagus : surveille pannes, mouvements anormaux et chavirage, et impose des règles de repli sûres.

Principe cardinal

Un repli ne doit jamais aggraver la situation. En cas de doute, dériver/loiter vaut mieux que toute manœuvre « intelligente ».

Faisabilité (équipe étudiante)

Excellente — c'est exactement ce qu'une école d'informatique sait faire

À condition d'adopter une discipline de codage défensif :

  • Tout capteur peut renvoyer du garbage
  • Tout tester (voir S13)

Le superviseur peut tourner sur un second microcontrôleur indépendant de l'autopilote (séparation des préoccupations + tolérance de panne).

Le piège de l'excès de confiance

Une équipe forte en logiciel peut sous-estimer les cas non prévus. Le seuil de décision : si en essais le bateau tourne en rond ou dévie plusieurs heures sans correction autonome, ne pas lancer.

Matériel / composants

  • Calculateur principal (Pixhawk sous ArduPilot, ou Raspberry Pi/STM32)
  • MCU superviseur indépendant
  • Bus de communication inter-MCU
  • Boîte noire (logs récupérables)

Coût estimatif

100–250 € (autopilote + MCU superviseur). L'essentiel est l'effort logiciel.

Avantages / Inconvénients / Risques

Avantages

  • Transforme la faiblesse historique du domaine en force
  • Un superviseur indépendant rattrape les défaillances de l'autopilote

Inconvénients

  • Effort de conception et de test important

Risques

  • Excès de confiance
  • Un cas non prévu reste toujours possible → injection de fautes (S13) obligatoire

Exemples & sources

  • Peruagus : 18 % de l'échec prédit = événement non géré ; superviseur « Director » — ceur-ws.org/Vol-2331/paper2.pdf
  • Erreur fatale de SB Wave 2017 : failsafe « retour au départ »
  • ABoat Time 2015, Endeavour 2020 : bugs de logique de cap
  • ENSTA Bretagne : architecture Arduino « facile à dupliquer/modifier », circuits par waypoints sans capteur de vent