Niveau 1 — Premier vol SITL¶
Objectif : décoller, monter à 50 m, tourner, atterrir, sans rien casser (c'est virtuel, mais on prend les bonnes habitudes).
Durée : 30 min — répéter 3 fois.
1. Vérifier que tout est UP¶
Dans un terminal :
Tu dois voir :
Sinon make web pour tout relancer.
2. Lire Cockpit — orientation¶
Avant d'agir, observe l'écran principal :
| Zone | Ce que tu y lis |
|---|---|
| Mode courant (haut centre, gros) | Probablement MANUAL ou INITIALIZING au démarrage |
| Armed / Disarmed | Texte ou indicateur — désarmé au démarrage |
| Altitude | 0 m (sol) |
| Airspeed / Groundspeed | 0 m/s |
| Battery | 12.6 V, 100 % (simulé) |
| GPS | nombre de satellites, fix type. Normalement 3D Fix après ~20 s |
| HDOP | "horizontal dilution of precision". <2 = bon |
| Carte | Avion devrait apparaître à Canberra (-35.36, 149.16) par défaut |
| EKF | Voyant santé EKF — attends qu'il soit vert |
| Heartbeat | Latence du dernier heartbeat. <2 s en SITL local |
Critère de succès : tous les indicateurs verts ou neutres, aucun rouge.
Si tu vois "Pre-arm: Need 3D fix" ou similaire, attends 20 s — le GPS simulé prend quelques secondes à converger.
3. Le pré-armement (pre-arm checks)¶
ArduPilot refuse d'armer si quelque chose cloche. C'est la sécurité de base.
Dans Cockpit, cherche le bouton ARM (souvent en bas à droite ou via le widget vehicle status). Clique. Deux scénarios :
Cas A — ça arm directement¶
Tu vois : - Mode passe en armed - Throttle peut être à 0 mais le moteur "tourne" (tu vois un changement de status) - Critère de succès : badge "Armed" affiché, pas d'erreur
Cas B — ça refuse avec un message¶
Lis le message d'erreur dans la notification. Typiquement : - "Need 3D fix" → GPS pas prêt, attendre 20 s - "AHRS not healthy" → EKF pas convergé, attendre 30 s - "Compass not calibrated" → en SITL c'est rare, sinon paramètre à fixer - "RC not calibrated" → on n'a pas de RC en SITL, voir plus bas
En SITL pur sans joystick, ArduPlane peut refuser sur "RC not calibrated". Solution : changer
ARMING_CHECKouARMING_RUDDER, on verra ça au niveau 6. Pour maintenant, utilise le mode TAKEOFF qui arm tout seul (étape 5).
4. Comprendre le système de coordonnées¶
Avant le takeoff, regarde la carte. L'avion est orienté avec un cap (heading). 0° = nord, 90° = est, 180° = sud, 270° = ouest. ArduPilot va décoller dans la direction où il pointe.
Pour le SITL plane par défaut, l'orientation initiale est ~353° (presque plein nord). Bon à savoir parce que ton avion va décoller dans cette direction.
5. Premier décollage automatique — mode TAKEOFF¶
Le mode TAKEOFF d'ArduPlane fait tout pour toi : il monte gaz à fond, garde le bon angle d'attaque, plafonne à une altitude cible (TKOFF_ALT, par défaut ~30 m), puis bascule en FBWA.
Procédure¶
- Dans Cockpit, change le mode → TAKEOFF
- Tu peux le faire via le dropdown de modes ou via le command prompt MAVLink
- Si pas déjà armé : ARM
- Observe la carte : l'avion devrait commencer à avancer puis monter
- Regarde l'altitude grimper de 0 à ~30 m en ~15 s
- À ~30 m, ArduPilot passe automatiquement en FBWA (Fly-By-Wire A) et l'avion continue tout droit
Critères de succès¶
- Altitude > 25 m
- Airspeed > 12 m/s (~43 km/h)
- Mode = FBWA (ou encore TAKEOFF si tu n'as pas attendu)
- Pas de message d'erreur dans Cockpit
6. Laisser l'avion tourner — mode LOITER¶
Maintenant que l'avion vole, mets-le en LOITER. C'est le mode "tourner en rond autour de la position courante", utile pour réfléchir sans crasher.
- Mode dropdown → LOITER
- Observe : l'avion fait des cercles autour de sa position
- Le rayon par défaut est ~80 m (
WP_LOITER_RAD)
Critère de succès¶
L'avion tourne stable, altitude tenue à ±5 m, pas en piqué ni en montée incontrôlée.
7. Retour à la base — RTL¶
RTL = Return To Launch. L'avion retourne au point HOME (là où tu as armé) à une altitude minimum (RTL_ALTITUDE, défaut 100 m), puis fait un cercle.
- Mode → RTL
- Observe : l'avion change de cap vers HOME (rappel: -35.36, 149.16)
- Il monte à 100 m s'il est plus bas, ou maintient son altitude s'il est plus haut
- Arrive au HOME, fait un cercle LOITER permanent
Critère de succès¶
- Avion à <50 m de HOME (regarde la carte)
- Altitude stable autour de 100 m
- Tourne en cercle
8. Atterrir — mode LAND (sans piste, glissé contrôlé)¶
LAND dans ArduPlane = approche glissée jusqu'au sol. En vrai ça suit un glide path précis ; en SITL ça simule.
- Mode → LAND
- L'avion descend progressivement
- Touche le sol → moteur coupé, désarme automatique
- Mode revient à STABILIZE ou MANUAL
Critère de succès¶
- Altitude = 0
- Avion désarmé
- Pas de message d'erreur
En SITL, le LAND peut "crasher" doucement parce que la simulation n'a pas de piste. C'est OK. En vrai vol, tu utilises LAND avec une mission qui contient le glide path.
9. Recommence¶
Désarme si pas déjà, puis recommence la séquence complète : TAKEOFF → LOITER → RTL → LAND.
Vise 3 cycles propres avant de passer au niveau 2.
Récap des modes vus¶
| Mode | Ce qu'il fait | Quand l'utiliser |
|---|---|---|
| TAKEOFF | Décollage automatique jusqu'à TKOFF_ALT |
Au début |
| FBWA | Pilotage assisté, l'avion garde l'attitude commandée | Cruise contrôlé |
| LOITER | Cercle autour de la position courante | Pause / observation |
| RTL | Retour HOME + cercle | Urgence / fin de mission |
| LAND | Approche glissée → touchdown | Atterrissage |
Le niveau 2 couvre tous les autres modes et explique quand utiliser quoi.
Si ça part mal¶
| Symptôme | Cause | Action |
|---|---|---|
| Avion fait un piqué non commandé | Stall ou EKF buggué | Mode → STABILIZE ou MANUAL pour reprendre, sinon RTL |
| Avion en cercle infini sans monter | Mode mal mis (CIRCLE) ou throttle 0 | Mode → AUTO ou TAKEOFF |
| Cockpit "Vehicle disconnected" | mavlink2rest crashé | Terminal : make status ; si rouge make web |
| Avion crash et SITL coincé | Pas grave en sim | Terminal : make plane-down && make plane |
Pour aller plus loin¶
- Lire le code source minimal de
ArduPlane/mode_takeoff.cpp(dans~/Project/bascanada/ardupilot) — pas obligatoire, mais éclairant - Regarder le SITL log :
make logs— voir le flux de messages
Quand tu peux faire le cycle complet sans regarder ce doc, passe au niveau 2.