Aller au contenu

Niveau 5 — Failsafes et gestion d'incidents

Objectif : provoquer chaque type de panne dans le SITL, comprendre la réaction d'ArduPlane, savoir intervenir.

Durée : 1 h.

Prérequis : niveau 4.

Tout ce qui peut t'arriver en vrai vol doit t'être arrivé d'abord en simulation. C'est le but de cette section.

Les 4 grandes familles de failsafe

Famille Cause Réaction par défaut
RC failsafe Perte du signal radio (RC) Mode → CIRCLE puis RTL
GCS failsafe Perte du lien station de base Mode → RTL
Batterie failsafe Tension basse / consommation excessive Mode → RTL puis LAND
GPS failsafe Perte de fix GPS Mode → LOITER ou LAND selon config
Geofence breach Sortie de zone autorisée Mode → RTL ou LAND

Tous configurables via paramètres FS_*.

1. Provoquer un RC failsafe en SITL

Méthode

SITL accepte des commandes pour simuler des pannes :

# Dans MAVProxy (si tu le lances) :
rc 1 0 2 0 3 0 4 0     # tous les canaux à 0 = perte simulée

Ou plus simple — dans Cockpit, désactiver le joystick (icône joystick → off) pendant un vol manuel.

Procédure exercice

  1. Lance un vol en mode FBWA avec joystick actif
  2. Vole 30 s
  3. Coupe la manette (débranche USB ou désactive dans Cockpit)
  4. Compte les secondes : ArduPlane attend FS_SHORT_TIMEOUT (~2 s) avant de réagir
  5. Observe : mode passe à CIRCLE d'abord
  6. Si tu attends FS_LONG_TIMEOUT (~10 s) sans reconnecter : mode passe à RTL
  7. Rebranche la manette → tu peux reprendre le contrôle en changeant de mode manuellement

Critère de succès

  • Tu as vu le mode passer en CIRCLE
  • Tu as vu le mode passer en RTL après le timeout long
  • Tu sais que reconnecter la manette ne reprend pas le contrôle automatiquement — il faut explicitement changer de mode

En vrai vol : si l'avion entre en RTL pour cause de perte RC, il revient seul. Tu peux le récupérer en LOITER quand il est en cercle au-dessus de HOME.

2. Provoquer un GCS failsafe

C'est la perte du lien station de base ↔ avion. Pour la fleet, c'est ton MacBook qui devient injoignable (Mac s'éteint, lien Tailscale tombe, etc.).

Procédure

  1. Lance le vol normalement
  2. Dans le terminal, kill mavlink2rest :
    make mavlink2rest-down
    
  3. Cockpit perd le véhicule (icône "disconnected")
  4. ArduPlane détecte aussi la perte (paramètre FS_GCS_ENABLE)
  5. Après timeout (~5 s default) : RTL automatique

Critère de succès

  • Cockpit affiche "disconnected"
  • L'avion continue à voler — il n'est pas arrêté
  • Après ~5 s, l'avion bascule en RTL (visible quand tu relances make mavlink2rest et reconnectes Cockpit)

Important : la perte GCS n'arrête pas l'avion. Il fait RTL → cercle. Si tu n'as plus aucun lien, l'avion finira son carburant en cercles au-dessus de HOME.

3. Provoquer un battery failsafe

ArduPlane lit la tension batterie. Sous BATT_LOW_VOLT, il alerte. Sous BATT_CRT_VOLT, il prend une action drastique (RTL ou LAND).

Procédure SITL — injection de tension

En SITL, on peut forcer la tension simulée :

# Dans MAVProxy connecté au SITL :
param set SIM_BATT_VOLTAGE 9.5

Ou — plus simple sans MAVProxy — changer le seuil pour qu'il déclenche à tension normale :

# Forcer FS_BATT_VOLT à 13.0 (tension actuelle ~12.6 V)
# Via Cockpit → Parameters → search "FS_BATT_VOLT" → set 13.0

Observation

  1. Le seuil franchi → notification Cockpit "Battery low"
  2. Mode bascule sur BATT_FS_LOW_ACT (souvent RTL)
  3. Si critique : BATT_FS_CRT_ACT (souvent LAND)

Critère de succès

  • Tu as vu la notification
  • Le mode a basculé automatiquement
  • Tu sais où voir les paramètres BATT_* dans Cockpit

4. Provoquer un GPS failsafe

Perte de fix GPS = catastrophe pour un fixed-wing autonome.

Procédure SITL

# Via Cockpit Parameters ou MAVProxy :
param set SIM_GPS_DISABLE 1

Ou simule des satellites perdus :

param set SIM_GPS_NUMSATS 2     # < 6 satellites = pas de fix

Observation

  1. Quelques secondes plus tard : "GPS Glitch" ou "EKF Failsafe" dans Cockpit
  2. Si en AUTO : mode bascule vers LAND ou RTL selon FS_EKF_ACTION
  3. L'avion essaie de garder l'attitude par baromètre + IMU (dead reckoning) — précis quelques minutes max

Recovery

param set SIM_GPS_DISABLE 0

GPS revient, EKF re-converge en ~10 s, mode peut être repris manuellement.

Critère de succès

  • Tu as vu le mode auto-basculer
  • Tu as restauré et repris le contrôle
  • Tu réalises que le GPS, c'est ta vie en autonome

5. Geofence — barrière virtuelle

Tu peux définir une zone (cercle ou polygone) où l'avion a le droit de voler. Sortie = action de failsafe.

Setup

  1. Cockpit → Geofence (souvent dans le menu Mission)
  2. Dessine un cercle de rayon 500 m autour de HOME
  3. Active FENCE_ENABLE = 1
  4. FENCE_ACTION = 4 (RTL) ou 1 (report only)

Test

  1. Lance une mission qui sort de la zone (ex : WP à 1 km de HOME alors que fence = 500 m)
  2. À la frontière, ArduPlane refuse de continuer
  3. Mode passe à RTL automatiquement

Critère de succès

  • Tu as défini une geofence
  • Tu as vu l'avion s'arrêter à la frontière

6. Tableau de bord "santé véhicule"

Cockpit affiche en permanence ces indicateurs critiques. Apprends à les lire en moins de 2 secondes :

Indicateur Valeur saine Alerte si...
Batt voltage 12.6 V (4S nominal 14.8 V, low 13.2) < 13.2 V
Batt current varie selon throttle > seuil défini
GPS sats ≥ 10 < 6
HDOP < 1.5 > 3
EKF status green rouge / yellow
Heartbeat latency < 2 s > 5 s
Mode celui que tu attends un mode failsafe non demandé
Armed selon contexte armed quand tu ne t'y attends pas

Apprendre à scanner cette barre du coin de l'œil = le réflexe pilote autonome.

7. Pratique : enchaîner les pannes

Exercice final : lance un vol AUTO. Pendant qu'il vole, provoque dans cet ordre :

  1. RC loss (coupe la manette) → laisse l'avion entrer en CIRCLE puis RTL
  2. Reconnecte la manette, mode → LOITER, reprends position
  3. Geofence breach (force-le à sortir d'une fence) → RTL
  4. Bas batterie (param BATT_LOW_VOLT = 13.0) → notification + RTL
  5. GPS loss (SIM_GPS_DISABLE = 1) → LAND ou EKF failsafe

Si l'avion survit cet enchaînement → tu maîtrises les failsafes.

Avant le niveau 6

  • Tu sais déclencher chaque failsafe dans SITL
  • Tu sais reconnaître chaque failsafe en regardant Cockpit
  • Tu sais recover de chaque failsafe (reprendre la main)
  • Tu as une checklist mentale des 5 indicateurs santé à vérifier en vol

Niveau 6 — Paramètres & AUTOTUNE