Aller au contenu

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 :

  1. 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.
  2. Rôle 6 — relais intelligent : router proprement deux flux MAVLink (avion ↔ base, et avion ↔ bateau) demande plus de souplesse qu'un FC.
  3. 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.

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 ?