Contents — find the section you need

ArduPilot non è un'app di "pilota automatico" specifica per droni. Dagli aerei ad ala fissa (Plane) e multicotteri (Copter) ai veicoli terrestri (Rover) e persino sommergibili/imbarcazioni (configurazioni ibride), è una piattaforma embedded che legge i sensori, stima lo stato, impartisce comandi agli attuatori e passa a uno stato di sicurezza in caso di guasto. Prima di far volare un veicolo, è fondamentale comprendere la stima, il controllo, la comunicazione, l'alimentazione e la stazione di terra come un unico scenario di sicurezza.

Drone Skydio X2D utilizzato per l'ispezione di aeromobiliEsempio di aeromobile autonomo

Immagine: Skydio X2D durante l'ispezione di un aeromobile (Mauricio Campino, pubblico dominio), Wikimedia Commons. Non si tratta di un veicolo ArduPilot; illustra il contesto del computer di bordo e del volo autonomo.

Riepilogo di 30 secondi

  • ArduPilot integra i dati di IMU, GNSS, magnetometro, barometro e telemetro tramite un filtro di Kalman esteso (EKF) per stimare assetto, velocità, posizione e bias.

  • L'elicottero si concentra sull'allocazione della spinta e sul controllo dell'assetto, l'aereo sull'aerodinamica e sulla gestione dell'energia, e il rover su ruote/sterzo e inseguimento della traiettoria: non condividono gli stessi parametri.

  • Un ciclo interno di velocità angolare/assetto funziona ad alta frequenza, mentre un ciclo esterno di posizione/velocità/missione genera i target. Verificare i simboli e le unità PID sul veicolo reale.

  • MAVLink è il protocollo di messaggistica che collega il veicolo alla stazione di terra, ai computer di bordo e alle periferiche. La perdita di comunicazione, la bassa tensione, la perdita del segnale GNSS e le violazioni del geofence vengono gestite tramite sistemi di sicurezza.

  • I test si svolgono in fasi: SITL (Simulating Initiation, Test-in-the-Loop), riproduzione dei log, test al banco con eliche rimosse, test con cavo e test a bassa quota. Anche se la simulazione ha successo, le vibrazioni del veicolo reale, il rumore elettromagnetico e i cali di potenza sono problemi separati.

1. Architettura

Diagram 1 · Use the button to switch views
SensorsIMU / GNSSMag / BaroRange / Voltage EKF3Attitude/position est.Bias / qualityInnovation check Attitude/rate control Mixer / output MotorsServosVehicle motion MAVLink / GCS100–1000 Hz estimation and control

Figura 1 — I sensori sono integrati tramite l'EKF; il circuito interno di controllo di assetto/velocità pilota un mixer che invia il segnale a motori e servomotori. MAVLink costituisce il confine con la stazione di terra e i computer esterni.

Il circuito principale del veicolo elabora l'acquisizione, la stima, il controllo, l'output, la comunicazione e la registrazione dei dati dei sensori a un ciclo fisso. I dati IMU ad alta frequenza prevedono l'assetto, mentre GNSS, magnetometro, barometro e visione esterna forniscono correzioni a frequenza inferiore. Quando la qualità della stima si degrada, anziché continuare a inseguire il bersaglio, il controllore passa a un'azione sicura: mantenimento della posizione, ritorno o atterraggio.

2. Stima dello stato tramite EKF

Un esempio di vettore di stato è costituito da posizione p, velocità v, assetto R e bias giroscopio/accelerometro b_g,b_a. La predizione proviene dall'IMU e gli aggiornamenti da osservazioni esterne.

\dot p=v,\qquad \dot v=R(a_m-b_a-n_a)+g,
\dot R=R[\omega_m-b_g-n_g]_{\times}

Qui a_m,\omega_m sono i valori misurati, g è la gravità e [\cdot]_{\times} è la matrice del prodotto vettoriale. L'EKF propaga la covarianza P e rifiuta temporaneamente un sensore ogni volta che il suo residuo di osservazione (innovazione) esce dall'intervallo previsto: un meccanismo per non accettare ciecamente interferenze magnetiche o GNSS multipath.

Le vibrazioni del veicolo aggiungono contenuto ad alta frequenza all'accelerometro, destabilizzando sia la stima che il controllo. La rigidità del telaio, il bilanciamento dell'elica, gli smorzatori e la latenza del filtro devono essere regolati sia dal punto di vista meccanico che software. Sovrapporre lo spettro di vibrazione del log con l'innovazione dell'EKF allo stesso timestamp facilita l'isolamento della causa.

3. Controllo in elicottero, aereo e rover

Elicottero

Un multicottero genera la coppia di assetto dalla spinta totale T e dalla velocità di rotazione di ciascun motore. Approssimativamente,

T=k_f\sum_i\omega_i^2,\qquad \tau_z=k_m(\omega_1^2-\omega_2^2+\cdots)

dove il mixer distribuisce le richieste di rollio, beccheggio, imbardata e accelerazione a ciascun motore. Al di fuori del circuito di controllo dell'assetto si trova un circuito di controllo velocità/posizione, che monitora il margine di spinta in funzione del vento e delle variazioni di carico utile.

Aereo

Un aereo ad ala fissa vola utilizzando la portanza e la resistenza alare, la velocità, l'angolo di attacco e lo stato energetico. Vira tramite l'angolo di rollio e regola velocità/altitudine tramite il beccheggio, quindi i vantaggi di un multicottero non possono essere riutilizzati direttamente. L'atterraggio automatico richiede test specifici che tengano conto del vento, della pista e della latenza dei sensori.

Rover

Il rover integra velocità delle ruote, angolo di sterzata, GNSS, bussola, LiDAR e sensori simili per seguire waypoint e obiettivi di velocità. Poiché lo slittamento delle ruote e le pendenze influenzano la navigazione inerziale, la covarianza e la rilocalizzazione sono progettate nello stesso modo dell'odometria descritta nell'articolo robotics-dead-reckoning.

4. Missioni e MAVLink

Una missione è una sequenza di comandi: waypoint, velocità, altitudine, attivazione della telecamera, atterraggio e così via. MAVLink è un protocollo di messaggistica binaria (SBM) che scambia heartbeat (HEARTBEAT), posizione, assetto, parametri, dati di missione e conferme di ricezione dei comandi. SITL e la stazione di terra si connettono tramite UDP; su hardware reale, è necessario valutare la latenza, la larghezza di banda, la crittografia e l'autenticazione del collegamento radio.

Quando si automatizza una missione, non passare al comando successivo senza attendere la conferma. Definire ACK, timeout, retry, cancel e la posizione di ripristino dopo un ciclo di alimentazione. La comunicazione non dovrebbe mai essere il singolo punto di guasto per il controllo: progettare in modo che il veicolo possa tornare e atterrare in sicurezza anche se la stazione di terra perde la connessione.

  1. Sistemi di sicurezza e test di sicurezza

Rilevare bassa tensione, perdita del collegamento RC, degrado della qualità GNSS, guasti EKF, violazioni del geofence e guasti al motore, e passare a un comportamento appropriato al tipo di velivolo. La funzione "Ritorno al decollo" dell'elicottero non è sempre la scelta più sicura: in presenza di vento forte, in prossimità di ostacoli o con una posizione di partenza non confermata, l'atterraggio o la fase di attesa potrebbero essere più appropriati. Una volta impostate le soglie, testare effettivamente il superamento di tali soglie in un ambiente a basso rischio.

I test dovrebbero essere eseguiti in fasi: SITL → hardware-in-the-loop → rimozione delle eliche → velivolo vincolato → bassa quota → quota operativa. Eseguire test di iniezione di guasti registrati: interruzione improvvisa dell'alimentazione, schermatura dell'antenna GNSS, interruzione delle comunicazioni, rimozione di un singolo sensore. L'autorizzazione al volo, la legislazione aeronautica locale, la privacy e le normative radio sono parte integrante dei requisiti tecnici.

  1. Ordine consigliato per la regolazione dei parametri

  2. Verificare l'orientamento, la calibrazione, la temporizzazione e la tensione di alimentazione dei sensori.

  3. Con il veicolo bloccato, misurare la derivata e le vibrazioni del giroscopio/accelerometro/bussola.

  4. Regolare il circuito interno di controllo dell'assetto partendo da piccoli guadagni, monitorando la saturazione e le oscillazioni.

  5. Aggiungere i circuiti di velocità/posizione/altitudine e valutare il tracciamento in condizioni di vento e carico variabili.

  6. Eseguire un test completo end-to-end di missioni, failsafe, riavvii e registrazione dei dati.

Copiare i valori di guadagno da un altro veicolo non garantirà la stabilità se le eliche, il momento d'inerzia, il margine di spinta o il periodo di campionamento sono diversi. Sovrapporre i valori target, misurati, la saturazione dell'uscita e l'innovazione nel log per individuare quale circuito introduce il ritardo.

7. Utilizzo attuale e ricerca

ArduPilot viene utilizzato in diversi campi con varie tipologie di veicoli: irrorazione agricola, rilevamento topografico, valutazione dei danni, ricerca su velivoli a decollo e atterraggio verticale (VTOL) e imbarcazioni autonome. Alcune configurazioni inviano i target da un computer di bordo tramite MAVLink e utilizzano ROS 2 o stime di visione artificiale come osservazioni ausiliarie. La ricerca sta progredendo nella navigazione visiva, nella diagnosi di guasti multisensore, nella stima del vento basata sull'apprendimento automatico e nel coordinamento multiveicolo, ma la prassi migliore rimane quella di far sì che l'output finale superi i limiti e i sistemi di sicurezza esistenti.

Riepilogo

L'essenza di ArduPilot è l'unificazione della fusione dei sensori, del controllo gerarchico, dell'esecuzione della missione, della comunicazione e dei sistemi di sicurezza in un unico sistema embedded. Prima di scrivere il codice che controlla il veicolo, è necessario specificare lo stato stimato e i sistemi di coordinate, il periodo di controllo, i limiti di output e le transizioni in caso di guasto. Utilizzando SITL e i log, ed eseguendo attentamente i test di sicurezza sul veicolo reale, il software open source può portare un progetto dalla fase di ricerca a quella operativa.

Verifica la tua comprensione
È sufficiente inserire una rotta per il volo autonomo?

La configurazione del veicolo, la stima, il controllo e i sistemi di sicurezza devono funzionare insieme. Separare la pianificazione della rotta dalle condizioni per l'esecuzione dei comandi.

Riferimenti

What to read next

Review the backgroundIntroduzione ai sistemi idraulici: dal principio di Pascal al controllo della forza nei robot.Continue the seriesGuida introduttiva al controllo di sciami (multi-robot): creazione di gruppi, formazioni e consenso.Explore another aspect of this fieldPerché ICP fallisce: inizializzazione, valori anomali e geometria simmetrica