Aller au contenu

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