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