Architecture système¶
Topologie¶
flowchart TD
Base["Station de base mobile<br/>Laptop · MAVProxy + QGC · TX ELRS 915<br/>Mât télescopique · Antenne LoRa haut gain · FPV 5.8 GHz"]
Aircraft["Aéronef<br/>ArduPlane<br/>Scout + Relais radio"]
Rover["Rover<br/>ArduRover<br/>Scout sol + Sentinelle PIR"]
Boat["Bateau<br/>ArduRover<br/>Jet drive + Cam locale"]
Base <-- "MAVLink LoRa 915 MHz<br/>+ vidéo 5.8 GHz (LOS)" --> Aircraft
Base <-. "MAVLink LoRa 915 MHz" .-> Rover
Base <-. "MAVLink LoRa 915 MHz" .-> Boat
Aircraft <== "Relais MAVLink<br/>(orbite haute)" ==> Rover
Aircraft <== "Relais MAVLink<br/>(orbite haute)" ==> Boat
Phasage : la flotte n'arrive pas d'un coup. Avion en V1, rover en V3 (validation multi-véhicules), bateau en V5 (de-risqué par le rover). Voir
roadmap.md.
Couches¶
1. Couche véhicule (firmware embarqué)¶
| Véhicule | Firmware | Contrôleur de vol | Rôle |
|---|---|---|---|
| Aéronef | ArduPilot — branche ArduPlane (config Plane standard, fixed-wing) | Matek H743-WING V3 | Scouting autonome, relais radio aérien |
| Rover | ArduPilot — branche ArduRover | Matek (même famille) | Scouting terrestre, mode sentinelle PIR |
| Bateau | ArduPilot — branche ArduRover (config Boat) | Matek (même famille) | Exploration de rivière, captation vidéo |
Les trois véhicules tournent sur des contrôleurs Matek de la même famille pour partager le toolchain de configuration et les habitudes de tuning. Le rover et le bateau partagent le même firmware (ArduRover) → code et configuration largement réutilisables entre eux.
2. Couche communication¶
Lien primaire (contrôle + télémétrie) — ExpressLRS 915 MHz (LoRa) - Récepteur ELRS Nano sur chaque véhicule. - Émetteur ELRS 915 MHz à la station de base (radio Radiomaster Boxer 915 ou module externe sur laptop). - Transporte les commandes pilote + flux MAVLink bidirectionnel. - Portée pratique en forêt québécoise : 1–3 km au sol, plus avec relais aérien.
Lien vidéo POV — 5.8 GHz (analogique ou numérique HD) - Émetteur vidéo (VTx) sur l'aéronef et le bateau. - Latence très faible, indispensable pour pilotage manuel précis. - Décroche derrière le terrain — c'est attendu, le pilote bascule en mode autonome quand ça arrive.
Captation HD — locale, sur carte SD (RunCam Thumb Pro ou équivalent). Aucun transfert temps réel.
Relais aérien — l'aéronef en orbite Loiter à 100 m agit comme bridge MAVLink à 2 radios 915 MHz :
- ELRS RX primaire (côté base) : reçoit/transmet vers la base, branché au FC en CRSF/SBUS. Trame standard ELRS.
- ELRS TX module bare board (côté véhicules de surface) : le Pi companion l'alimente en CRSF via UART et il transmet aux RX 915 des rover/bateau (eux le voient comme leur "base"). Bidirectionnel : leur télémétrie remonte au Pi.
- Pi companion + mavlink-router : router multi-endpoints qui forwarde les paquets entre FC MAVLink (base↔avion) et TX module (avion↔surface), filtrage par
system_id.
Les deux radios partagent la bande 902-928 MHz avec des bind phrases distincts. Quelques % de pertes sur paquets simultanés acceptés (MAVLink non critique latence, retries inclus). Cellule avion sépare physiquement les antennes (~30 cm typique) pour réduire couplage.
3. Couche station de base¶
MAVProxy (CLI Linux) agit comme hub : - Reçoit les flux MAVLink de l'avion et du bateau. - Logge tout (rejeu, debug post-mission). - Redistribue sur ports UDP locaux.
QGroundControl (GUI) consomme les ports UDP : - Carte (en ligne ou tuiles offline pré-téléchargées). - Édition de missions (waypoints). - Supervision télémétrie temps réel.
Glue logicielle custom (Rust ou Go, à écrire) :
- Bibliothèques : rust-mavlink ou gomavlib.
- Logique multi-véhicules : « si avion en RTL → bateau en ancrage GPS », « si bateau perd liaison directe → avion monte en orbite relais », etc.
- Tableau de bord léger (terminal ou web local) pour superviser la flotte sans la lourdeur de QGC.
4. Couche énergie¶
Standardisation Li-ion 21700 : - Cellules Molicel P42A (haute capacité) ou P45B (haute décharge). - Packs assemblés maison : configurations 4S et 6S selon véhicule. - Même format physique de pack pour avion et bateau → interchangeabilité.
Charge — chargeur DC-DC (ISDT Q6 Nano ou ToolkitRC M4Q) branché directement sur le 12V du véhicule. Pas de passage par onduleur, perte minimale.
Solaire (futur) — possibilité d'ajouter des panneaux flexibles sur le pont du bateau avec MPPT, pour autonomie prolongée en mission longue.
Décisions d'architecture clés¶
| Décision | Choix | Raison |
|---|---|---|
| Firmware | ArduPilot (vs PX4) | Plus mature côté QuadPlane et Rover, communauté plus large pour terrain accidenté |
| Radio contrôle | LoRa 915 MHz (vs 2.4 GHz) | Pénètre la végétation et diffracte autour des reliefs ; portée largement supérieure |
| Vidéo | 5.8 GHz courte portée + enregistrement local HD | Diffusion HD longue portée trop coûteuse en énergie/poids/complexité |
| Cellule avion | EPO commercial (vs impression 3D structurelle) | Vol prouvé, pas de calibration LW-PLA, focus sur l'intégration logicielle |
| Énergie | Li-ion 21700 standardisé (vs LiPo) | Densité énergétique supérieure, longévité, mutualisation entre véhicules |
| Langage glue | Rust ou Go (à choisir) | Écosystème MAVLink solide dans les deux ; compilation statique adaptée à l'embarqué léger |