Companion computer (à explorer)¶
Statut : exploratoire. Pas requis pour le premier vol. À évaluer en Phase 4 (intégration multi-véhicules) ou plus tôt si les besoins du rôle 4 (données vers serveur base) le justifient.
Pourquoi¶
ArduPilot sur le Matek H743 est un excellent contrôleur de vol, mais ce n'est pas un ordinateur d'usage général. Trois rôles du projet sont mal servis sans un compagnon de calcul à bord :
- Rôle 4 — données vers serveur base : ArduPilot diffuse de la télémétrie MAVLink, mais pas du logging structuré, du buffering en cas de perte de lien, ni de logique de routage personnalisée.
- Rôle 6 — relais intelligent : router proprement deux flux MAVLink (avion ↔ base, et avion ↔ bateau) demande plus de souplesse qu'un FC.
- Future vision par ordinateur : suivi visuel d'un véhicule (le bateau), détection d'obstacles, photogrammétrie post-vol — tout ça vit dans un companion, pas dans le FC.
Candidat principal : Raspberry Pi Zero 2W¶
| Spec | Valeur |
|---|---|
| Poids | ~10 g (avec dissipateur passif) |
| CPU | Quad-core ARM Cortex-A53 1 GHz |
| RAM | 512 MB |
| WiFi/BT | 2.4 GHz intégré (utile pour debug terrain) |
| Alimentation | 5V, ~0.6 A peak |
| GPIO | UART, I2C, SPI dispos |
| OS | Linux (Raspberry Pi OS Lite ou Alpine) |
Alternative : Radxa Zero, Orange Pi Zero 2W, ou plus haut de gamme Raspberry Pi 4 Compute Module si charge utile CV exigeante.
Connexion à ArduPilot¶
- Lien physique : UART du FC ↔ UART du Pi (TELEM2 typiquement, baudrate 921600).
- Alimentation : BEC 5V du FC suffit (le H743-WLITE peut fournir 2.5 A).
- Protocole : MAVLink natif. Le Pi devient un nœud MAVLink comme la station au sol.
Logiciels à explorer¶
| Brique | Rôle |
|---|---|
| mavlink-router | Routeur MAVLink multi-endpoints (FC, base radio, autre véhicule, logger local) |
| MAVProxy (sur le Pi) | Possible alternative à mavlink-router, plus scriptable |
| MAVSDK (Rust/Python) | API moderne pour scripts custom de coordination |
| OpenCV / picamera2 | Si caméra dédiée vision branchée sur CSI |
| rsync over WiFi | Récupération automatique des logs au retour à la base |
Cas d'usage concrets pour Fleet¶
Buffer de données quand le lien dégrade¶
En vol, le lien LoRa 915 MHz peut dropper temporairement. Plutôt que de perdre des paquets de télémétrie ou des points GPS, le Pi les bufferise localement et les retransmet quand le lien revient.
Pont MAVLink intelligent (rôle relais)¶
Le Pi est le bridge à 2 interfaces RF entre la base et les véhicules de surface. Deux UART utilisés :
- UART1 ─ FC MAVLink : le Pi voit tout le trafic base↔avion qui transite par le RX ELRS primaire et le FC. Il y lit aussi la télémétrie propre de l'avion.
- UART2 ─ TX module ELRS 915 bare board (lien dédié vers rover/bateau) : le Pi parle aux RX surface en CRSF, et reçoit leur télémétrie.
mavlink-router (config statique sur le Pi) forwarde les paquets entre les deux endpoints, en filtrant par system_id :
- Paquets de base avec sysid=rover → forward vers UART2
- Paquets surface vers sysid=base → forward vers UART1 (qui remonte via FC + RX au base)
- Paquets sysid=avion : restent au FC
Cf. architecture.md §Relais aérien pour la topologie radio complète.
Logique multi-véhicules embarquée¶
Au lieu d'avoir toute la coordination dans la station au sol (avec risque de coupure), embarquer la logique critique sur le Pi : - Si la base coupe, l'avion peut décider seul de monter pour rétablir le relais avec le bateau. - Si le bateau perd son GPS, l'avion peut estimer sa position visuellement (CV) et la lui retransmettre.
Pipeline de captation HD¶
La RunCam Thumb Pro enregistre en local sur sa carte SD. Avec un Pi, on peut : - Préparer un upload automatique vers un NAS au retour à la base. - Indexer les vidéos avec timestamps GPS extraits du log MAVLink. - Pré-traiter (Gyroflow CLI) pendant que l'avion recharge.
Coût et impact¶
| Item | Estimation |
|---|---|
| Raspberry Pi Zero 2W | ~25 $CAD (Canakit, BuyaPi.ca) |
| Carte microSD 64 GB classe A2 | ~15 $CAD |
| Câble UART + dissipateur | ~10 $CAD |
| Total | ~50 $CAD |
Impact poids : ~15 g (Pi + carte + câblage). Négligeable sur le Swordfish.
Quand l'intégrer¶
| Phase | Véhicule | Décision |
|---|---|---|
| Phase 1 | Avion | Non. Premier vol = config minimale. ArduPilot suffit. |
| Phase 2 | Station de base | Pas embarqué — base = laptop standard. |
| Phase 3 | Rover | Oui, requis dès le MVP pour le mode sentinelle PIR + photo-on-demand. Pi Zero 2W + Pi Camera Module 3. |
| Phase 4 | Avion (ajout) | Probablement requis pour la logique relais multi-véhicules propre. |
| Phase 5 | Bateau | Oui — symétrique au rover (même code et architecture). |
Questions ouvertes¶
- Pi Zero 2W vs Pi 4 : si CV embarquée prévue, le 2W sera limite. Le 4 (CM4 ou Lite version) pèse plus mais offre du muscle réel.
- Distribution Linux : Raspberry Pi OS (familier, large support) vs Alpine (léger, boot rapide) vs Yocto custom (max contrôle, plus de travail).
- Sourcing alternative : ESP32-CAM (~15 $CAD) si le Pi est jugé trop gourmand pour le rôle minimal sur certains véhicules. Compromis : qualité 2 MP, pas de Linux.
- Code partagé entre les 3 nœuds (avion, rover, bateau) : architecture monorepo avec un runtime commun, ou trois codebases distinctes ?