Aller au contenu

Niveau 6 — Paramètres ArduPlane & AUTOTUNE

Objectif : comprendre les paramètres qui comptent pour le Swordfish 1200, savoir lancer un AUTOTUNE, sauver/restaurer une config en .parm.

Durée : 2 h.

Prérequis : niveau 5.

ArduPlane a >900 paramètres. On en utilise concrètement ~30. Le reste : il y a des defaults sensés, tu ne touches pas.

1. Catégories de paramètres essentielles

Préfixe Famille Exemple critique
ARMING_* Conditions d'armement ARMING_CHECK (bitmask de vérifs)
BATT_* Battery monitor BATT_CAPACITY, BATT_LOW_VOLT
AIRSPEED_* Vitesses AIRSPEED_CRUISE, AIRSPEED_MIN, AIRSPEED_MAX
THR_* Throttle THR_MAX, THR_CRUISE
FS_* Failsafes FS_SHORT_ACTN, FS_LONG_ACTN, FS_GCS_ENABLE
RTL_* Comportement RTL RTL_ALTITUDE, RTL_RADIUS
WP_* Waypoints / loiter WP_RADIUS, WP_LOITER_RAD
TKOFF_* Décollage auto TKOFF_ALT, TKOFF_THR_MAX
LAND_* Atterrissage LAND_PITCH_CD, LAND_FLARE_ALT
RC1_* à RC8_* Canaux RC RC1_MIN, RC1_MAX, RC1_TRIM, RC1_REVERSED
SERVO1_* à SERVO8_* Sorties servo SERVO1_FUNCTION (rôle du servo)
PTCH2SRV_*, RLL2SRV_* PIDs pitch/roll → servo À régler par AUTOTUNE

2. Lire et modifier des paramètres dans Cockpit

  1. Cockpit → SettingsParameters (ou vue dédiée)
  2. Cherche par nom (ex: AIRSPEED_CRUISE)
  3. Lis la valeur courante + l'unité
  4. Modifie → écris la nouvelle valeur → Save / Write
  5. Cockpit envoie via MAVLink PARAM_SET, le véhicule confirme

Pas besoin de redémarrer ArduPlane — la plupart prennent effet immédiatement.

3. Set de paramètres recommandés pour le Swordfish 1200

Le AtomRC Swordfish 1200 mm est un fixed-wing bimoteur (twin pusher) avec empennage V-tail (ruddervators). AtomRC publie un fichier officiel .param validé pour ce modèle — on l'a importé dans fleet-params/.

Loader le baseline en SITL

# Depuis la racine du repo, plane SITL démarré :
cd ~/Project/bascanada/my_fleet
make plane

# Dans MAVProxy attaché à SITL :
param load fleet-params/swordfish-h743-baseline.parm

# Ou via Cockpit : Parameters → Load from file → swordfish-h743-baseline.parm

Valeurs clés (extraites du baseline)

# Vitesses (m/s) — tuné pour vol économique/observation, pas pour aller vite
TRIM_ARSPD_CM     1200    # 12 m/s croisière (PAS 18 — AtomRC vise plus lent)
ARSPD_FBW_MIN     9       # marge stall (réel ~7-8)
ARSPD_FBW_MAX     22

# Throttle
TRIM_THROTTLE     45      # 45% en croisière (twin motors)
THR_MAX           100

# Loiter — cercles plus serrés qu'un FW classique
WP_LOITER_RAD     60      # 60 m
WP_RADIUS         90      # acceptance

# Twin pusher + V-tail (géométrie CRITIQUE)
SERVO1_FUNCTION   70      # Motor 1 (throttle gauche)
SERVO2_FUNCTION   70      # Motor 2 (throttle droit)
SERVO3_FUNCTION   4       # Aileron droit
SERVO4_FUNCTION   4       # Aileron gauche
SERVO5_FUNCTION   79      # V-tail droit (ruddervator R)
SERVO6_FUNCTION   80      # V-tail gauche (ruddervator L)

# Différentiel de poussée pour assister le yaw (spécifique twin motor)
RUDD_DT_GAIN      10
KFF_RDDRMIX       0.5
MIXING_GAIN       0.5

# Décollage hand-launch (bump detect)
TKOFF_ACCEL_CNT   1
TKOFF_ALT         50
TKOFF_LVL_PITCH   15
TKOFF_THR_DELAY   2

# Failsafes (Fleet — AtomRC laisse vide, on les remplit)
FS_GCS_ENABL      1
FS_LONG_ACTN      1       # RTL après 5s sans GCS
FS_SHORT_ACTN     2       # CIRCLE après 1.5s sans RC
BATT_LOW_VOLT     14.0    # 4S @ 3.5V/cell
BATT_CRT_VOLT     13.2    # 4S @ 3.3V/cell
BATT_FS_LOW_ACT   2       # RTL
BATT_FS_CRT_ACT   1       # LAND
RTL_ALTITUDE      10000   # 100 m AGL (au-dessus couvert forestier QC)

Voir fleet-params/swordfish-h743-baseline.parm pour la liste complète + commentaires inline. Voir aussi fleet-params/README.md pour le workflow versionnage.

Pourquoi 12 m/s et pas 18 ?

AtomRC tune le Swordfish pour autonomie + observation, pas pour aller vite. À 12 m/s avec twin motors à 45% throttle, le pack 3300-4000 mAh tient ~30-45 min de vol selon vent. À 18 m/s tu rajoutes ~30% de conso pour 50% de vitesse en plus — mauvais ratio pour du scouting.

Trois choses absentes du fichier AtomRC officiel (et pourquoi le baseline les ajoute)

Manque Notre choix
Failsafe batterie (BATT_LOW_VOLT=0 chez AtomRC) On force seuils sur pack 4S Fleet
Failsafe GCS (FS_GCS_ENABL=0 chez AtomRC) On l'active — scouting autonome impose lien GCS surveillé
RTL_ALTITUDE non défini On force 100 m pour rester au-dessus de la canopée forestière QC

4. Snapshot d'une config — .parm

Le fichier .parm est texte brut, une ligne par paramètre. C'est ce qu'il faut versionner dans fleet-params/.

Exporter la config courante

Dans Cockpit : Parameters → bouton Save to file → choisis un nom (ex: swordfish-baseline.parm).

Ou via MAVProxy :

param save ~/Project/bascanada/fleet-params/swordfish-baseline.parm

Le fichier ressemble à :

AIRSPEED_CRUISE  18.000000
AIRSPEED_MIN     12.000000
ARMING_CHECK     1
BATT_LOW_VOLT    13.200000
...

Restaurer une config

Cockpit → Parameters → Load from file → sélectionne le .parm → write to vehicle.

Ou MAVProxy :

param load ~/Project/bascanada/fleet-params/swordfish-baseline.parm

5. Versionner les .parm

Le dossier fleet-params/ existe et contient déjà :

my_fleet/fleet-params/
├── README.md                                ← workflow + convention de nommage
├── swordfish-atomrc-navi-reference.parm     ← read-only, source officielle AtomRC
└── swordfish-h743-baseline.parm             ← point de départ avant AUTOTUNE

Convention : <vehicle>-<flight-controller>-<variant>.parm. Variants : baseline, tuned-YYYYMMDD, sim-YYYYMMDD, reference.

Après chaque session AUTOTUNE réussie, faire dans Cockpit Parameters → Save to file → nommer swordfish-h743-tuned-YYYYMMDD.parmgit add fleet-params/. Les .parm étant texte plat, git diff montre exactement ce qui a bougé entre deux sessions.

6. AUTOTUNE — le tuning des PIDs en vol

Les PIDs d'ArduPlane (PTCH2SRV_P, RLL2SRV_I, etc.) contrôlent la réactivité de l'avion aux commandes. Mal réglés : oscille, sous-réactif, ou sur-réactif.

AUTOTUNE = ArduPilot apprend ces PIDs en vol, en analysant la réponse de l'avion à ses propres commandes.

Procédure

  1. Vol stabilisé en FBWA, altitude >100 m
  2. Mode → AUTOTUNE
  3. Tu dois manœuvrer activement — pousser les sticks de gauche à droite, d'avant en arrière, pour donner du signal
  4. ArduPilot mesure les réponses et ajuste les PIDs en live
  5. Faire ~2 min de manœuvres
  6. Mode → FBWA → tu peux retester
  7. Si content : AUTOTUNE_LEVEL = 6 (par défaut 7, plus agressif)
  8. Sauvegarder la config en .parm

En SITL

AUTOTUNE marche dans SITL. C'est un excellent terrain d'expérimentation avant de le faire avec le vrai matos.

Mode → AUTOTUNE
Manœuvres pendant 2 min
Mode → FBWA
Save params → "swordfish-sim-autotuned.parm"

En vrai vol, AUTOTUNE coûte ~20 % de la batterie. Faire ça avec une batterie pleine, en condition calme, à 100 m+.

7. Calibrations capteurs

Avant le premier vol réel, tu dois calibrer dans cet ordre :

  1. Accéléromètres — l'avion immobile sur plat, 6 orientations (Cockpit → Setup → Accel)
  2. Magnétomètre (compass) — l'avion bougé en tous sens, "danse du compas" (Cockpit → Setup → Compass)
  3. Airspeed sensor — au sol vent nul, zéro l'airspeed (Cockpit → Setup → Airspeed)
  4. Baromètre — auto-calibré à l'arm sur le premier altitude
  5. Radio (RC) — bouger tous les sticks aux extrêmes

En SITL ces calibrations sont simulées sans erreurs. Tu n'as rien à faire. Mais en vrai vol, c'est la première étape avant tout.

8. Avant le niveau 7

  • Tu as exporté et importé une config .parm au moins une fois
  • Tu as fait au moins un AUTOTUNE en SITL (avec stick manette)
  • Tu connais les 5 paramètres les plus importants à modifier pour le Swordfish
  • Tu sais ce qu'est un PID et pourquoi AUTOTUNE existe

Niveau 7 — Multi-véhicule