Come fare telemetria in droni con autopilota

La telemetria è, in generale, la raccolta di misurazioni o altri dati in punti remoti o inaccessibili e la loro trasmissione automatica alle apparecchiature di ricezione per il monitoraggio. I sistemi come i droni o i veicoli giocattolo radiocomandati  – che necessitano di istruzioni e dati esterni per funzionare – richiedono anche la controparte della telemetria, il telecomando. Il termine telemetria si riferisca comunemente a meccanismi di trasferimento dati wireless, ad es. mediante sistemi radio. In questo articolo vedremo come (e perché) implementare la telemetria nei droni con autopilota “Ardupilot”.

Nel caso dei droni, la telemetria permette di inviare a terra vari dati forniti dai sensori a bordo, che tipicamente consistono nella posizione GPS e in dati diagnostici, ma può essere utilizzata anche per cambiare i settaggi del drone durante il volo e fornire le coordinate di nuovi punti da raggiungere. I dati della telemetria sono inviati tipicamente tramite un collegamento seriale. Ma questo della telemetria è solo uno dei tre possibili utilizzi delle comunicazioni wireless nel caso dei droni.

L’uso per ricevere immagini video è ciò che rende così eccitate l’esperienza del moderno volo con radio modelli: l’idea di poter vedere in tempo reale standosene al suolo ciò che una telecamera a bordo riprende spiega perché i droni hanno un grande successo. Per la maggior parte degli hobbisti, la sola opzione per ricevere un video da un drone è usare un ricevitore / trasmettitore analogico wireless. I sistemi analogici hanno il vantaggio di essere relativamente low-cost e con bassi tempi di latenza.

Un esempio di un kit di telemetria senza pilota in vendita online, ad es. qui. Alcuni di questi sistemi, a 915 MHz od a 433 MHz, possono essere usati con il pilota automatico Ardupilot.

Il terzo – e più importante – uso delle comunicazioni wireless nel caso dei droni è costituito, naturalmente, dal controllo del mezzo. Normalmente, con un radiocomando è possibile decidere se guidare da solo il modello o passare alla modalità di guida autonoma. Con tutti e tre questi sistemi operanti allo stesso tempo, vi è il rischio di interferenze fra i rispettivi segnali, con conseguenze potenzialmente disastrose, perciò gli operatori usano bande differenti per ciascun sistema.

Tipicamente, gli operatori di droni usano la banda dei 900 MHz per la telemetria (almeno negli USA; in Europa lo standard è 433 MHz), quella dei 2,4 GHz (Wi-Fi) per il controllo, e quella a 5 GHz per il video. Dato che frequenze più alte comportano un range più breve, quello video è solitamente il collegamento più debole e va via prima che l’operatore perda il controllo del modello o i dati della telemetria. Ma questa non è l’unica possibilità di gestire le cose, come ora vedremo.

Infatti, una migliore soluzione è quella di combinare i tre sistemi sotto un’unica tecnologia wireless, una che garantisca il range necessario per il volo ma abbia anche una banda tale da garantire video, controllo e telemetria con una singola radio. A questo scopo, il Wi-Fi risulta la scelta ovvia: è veloce, poco costoso, e (se settato in modo opportuno) ha il lungo range necessario. Naturalmente, al posto del Wi-Fi si potrebbero usare altre tecnologie basate sul protocollo TCP/IP.

Esempio di implementazione di un modulo per la telemetria in un drone con autopilota.

Sul lungo termine, l’uso del Wi-Fi e di tali tecnologie sarà fondamentale per poter creare dei droni controllati via Internet. Oggi esistono già dei droni per il grande pubblico – come il Parrot AR – che usano il Wi-Fi per i segnali video e di controllo. Ingegneri e hacker hanno già iniziato a sperimentare come adattare ArduPilot (un noto software di autopilota per droni e altri sistemi autonomi) per telemetria e controllo Wi-Fi, e credo sia solo questione di tempo che tutti i droni usino il Wi-Fi.

Importanza della telemetria per l’autopilota

In generale, il collegamento di telemetria tra un veicolo (drone, razzo, pallone, barca, etc.) e un dispositivo portatile / mobile / stazione di terra può essere molto utile. Non solo per ottenere la posizione attuale del mezzo, l’altitudine o il livello della batteria, ma anche – quando il collegamento wireless offre tale possibilità – per aggiornare i parametri del veicolo, ad esempio di un drone in volo. Di conseguenza, essa è oggi molto diffusa fra chi utilizza questi apparecchi anche solo per hobby.

Alcuni collegamenti radio, come ad esempio OpenLRS (un sistema di controllo radio open source in grado di trasmettere su una banda UHF abbastanza grande: 413-453 MHz), offrono tale possibilità. Includono un ponte seriale e quasi ogni tipo di dispositivo può usarlo per comunicare con il controllore di volo. Sfortunatamente, la maggior parte dei sistemi di radiocomando non ha questa funzionalità e devono essere utilizzati collegamenti di telemetria aggiuntivi, come il collegamento radio a 433Mhz della 3DR.

Il sistema di collegamento radio a 433 MHz della 3DR. Ne trovi vari qui.

L’aggiunta della telemetria a un drone, dunque, è molto utile, ma non è necessaria, a meno che tu non usi un sistema di pilota automatico (come Ardupilot). I moduli di telemetria sono i dispositivi radio effettivi che trasmettono e ricevono i dati. Ne avrai uno a bordo del tuo drone e uno a terra collegato al dispositivo della tua stazione di terra. La cosa più importante quando si usano tali moduli per il proprio autopilota è che spesso dovranno essere accoppiati insieme in modo da poter comunicare.

Una stazione di terra è un software che gira sul tuo PC o tablet che puoi utilizzare per monitorare dove sta volando il tuo drone, impostare nuovi “waypoint” (punti di riferimento nello spazio fisico utilizzato per qualsiasi tipo di navigazione) o dire al tuo drone di eseguire altri comandi, come ad esempio seguirti. La maggior parte dei piloti di droni utilizzerà uno smartphone o un tablet come stazione di controllo a terra. Tuttavia, a seconda del pilota automatico utilizzato, potrebbe non essere possibile.

Il sistema di pilota automatico Ardupilot / Arducopter consente ai dispositivi Android di essere utilizzati come stazione di controllo a terra.

La maggior parte delle persone che vogliono usare un drone per riprese video usano un quadricottero, che è più semplice da usare rispetto ai tricotteri, e più affidabile degli esacotteri. I controllori di volo elettronici dei quadricotteri, i sensori e il GPS stabilizzano in modo automatico il volo, ed in alcuni casi permettono missioni di volo autonome attraverso la programmazione degli waypoint, consentendo così che queste piattaforme video volanti possano manovrare da sole in località precise.

Come implementare la telemetria per Ardupilot

Ardupilot Mega (APM) è un pilota automatico di qualità professionale basato sulla piattaforma Arduino Mega. Questo pilota automatico può controllare velivoli ad ala fissa, elicotteri a più rotori, nonché elicotteri tradizionali. È un pilota automatico completo in grado di stabilizzare autonomamente, la navigazione è basata su waypoint e telemetria bidirezionale con moduli wireless Xbee. Supporta ben 8 canali RC con 4 porte seriali. ArduPilot Mega è costituito dalla scheda del processore e da uno schermo.

Il sistema ArduPilot Mega (APM), un pilota automatico basato su Arduino, in vendita anche sotto forma di kit (ad esempio qui) con modulo GPS sul web.

Il software di controllo open source APM viene costantemente aggiornato con funzionalità nuove e migliorate da un team di circa 30 sviluppatori, supportato da una community di oltre 10000 membri. Ha un semplice processo di configurazione e caricamento del firmware: nessuna programmazione è richiesta, ma se vuoi armeggiare con il codice, puoi farlo. Supporta centinaia di waypoint 3D, nonché comandi autonomi di decollo, atterraggio e azioni speciali come controlli di foto- e videocamera.

Il firmware APM è il codice che viene eseguito sulla scheda a bordo. Esistono diverse basi firmware tra cui scegliere. A seconda del codice caricato, è possibile utilizzare l’APM per controllare velivoli ad ala fissa, multi-rotori, elicotteri e anche rover a terra. Il software APM è il programma che viene eseguito sul PC, viene utilizzato per caricare il firmware e modificare le impostazioni sulla scheda APM. Puoi anche utilizzare questo software per pianificare le missioni e monitorare il tuo drone su una mappa.

Il software APM usato per pianificare e gestire la missione del tuo drone.

L’aggiunta della telemetria wireless non è difficile e può estendere immensamente le capacità del tuo drone. Raccomandiamo Xbees a 900 MHz per gli Stati Uniti. Se ti trovi in Europa, dove i 900 Mhz non sono consentiti, puoi invece utilizzare un kit Xbee operante a 2,4 Ghz. Per l’APM 2, devi collegare l’adattatore XtremeBee (con l’Xbee collegato) all’APM 2 come mostrato in figura. L’adattatore deve essere in modalità “Master” (“Master” e “Slave” invertono semplicemente i pin TX e RX). Consigliamo di usare il cavo Xbee a quattro fili 3DR, fornito con il kit di telemetria wireless ufficiale.

Collegamento dell’Xbee (in vendita qui)  all’APM 2 tramite l’adattatore XtremeBee.

Sull’APM 2.5, usa la porta di telemetria dedicata e il cavo in dotazione. Se usi un adattatore USB, è sufficiente collegarlo tramite un cavo USB; se usi un adattatore XtreamBee sul lato terra, collegalo a un cavo FTDI e alla porta USB. L’adattatore dovrebbe essere in modalità Master. Ricorda di selezionare la porta Xbee corretta (puoi vedere quale è stata assegnata all’Xbee nel gestore dispositivi del Pannello di controllo di Windows) e una velocità di trasmissione di 57k nel Pianificatore missione quando ti connetti.

Per impostazione predefinita, un Xbee collegato all’APM2 utilizzerà l’UART0 (cioè la “Seriale” in Arduino) che è condiviso con l’USB come menzionato sopra. Se si desidera invece utilizzare l’UART2 (cioè la “Seriale3”) per la telemetria, è possibile modificare il jumper “AutoMUX UART0” nella parte inferiore dell’APM2. Sebbene difficile da vedere, per impostazione predefinita ci sono due piccoli ponticelli tra i cuscinetti superiori che devono essere tagliati con una lama X-Acto. Quindi un nuovo ponticello di saldatura deve essere realizzato per unire i cuscinetti inferiori.

Come usare l’UART2 per la telemetria.

Se lo desideri, puoi creare il tuo kit di telemetria personale. La prima cosa da tenere a mente è che è necessario utilizzare i moduli Xbee in una gamma di frequenza diversa rispetto al radiocomando. In generale, raccomandiamo moduli Xbee a 900Mhz, ma in alcuni paesi l’uso dei 900 Mhz non è approvato. In questi casi è possibile utilizzare i moduli Xbee a 2,4 Ghz. In tale configurazione, utilizziamo i moduli wireless Xbee Pro, anche se l’installazione può essere un po’ complicata.

La configurazione dei moduli wireless Xbee

Se hai il kit di telemetria per droni fai-da-te, i tuoi moduli Xbee sono già configurati e pronti all’uso. Ma se stai configurando il tuo, ecco alcune istruzioni. I moduli Xbee vengono forniti con un valore predefinito di 9600 bps, che è necessario modificare per corrispondere alla velocità seriale dell’APM di 57600 bps; imposta i tuoi moduli Xbee in modo che corrispondano a questa velocità. (Se si desidera utilizzare una velocità diversa, è possibile modificarla inserendo la seguente riga nel file APM_Config.h: #define SERIAL3_BAUD [qualunque baud rate si desideri]).

Collegali ciascuno alla scheda dell’adattatore USB, collega il cavo USB al PC e usa l’utilità X-CTU di Digi per selezionare la porta seriale corretta e comunicare con loro. Ricorda di impostare inizialmente l’utility su 9600 bps per contattare i nuovi moduli Xbee e, dopo aver modificato la velocità, modifica di conseguenza la velocità seriale dell’utility. Dovresti anche fornire ai moduli ID di rete (VID) univoci in modo che vengano accoppiati. Usa semplicemente un numero di 3 cifre e assicurati di averlo impostato su entrambi i moduli. Se volerai vicino ad altri droni, assicurati di verificare che gli ID di rete non siano usati da altri.

Ecco come dovrebbe apparire l’impostazione quando si fa clic su “Leggi” nella scheda Configurazione modem di X-CTU (qui stiamo usando 999 come VID a titolo di esempio e ho evidenziato la velocità di trasmissione corretta). Se hai acquistato i tuoi moduli Xbee da Sparkfun, anziché dal kit ufficiale di droni fai-da-te, tieni presente che a volte vengono spediti con il firmware errato. X-CTU potrebbe tentare di scaricare un nuovo codice, e probabilmente non ci riuscirà (annullalo).

In tal caso, se il tuo modulo Xbee segnala che è un XBP09-DM (anziché l’XBP09-DP come dovrebbe essere correttamente), procedi come segue. Se si dispone dei moduli XBP09-DP, è necessario scaricare il firmware XBP09-DP. Se hai scaricato il firmware XBP09-DM, funzionerà in qualche modo, ma non funzionerà nella schermata di configurazione PID. X-CTU riporterà il modulo come XBP09-DM. Ignoralo. Vai alla scheda Configurazione modem ed esegui le seguenti operazioni:

Settaggio dei moduli XBP09-DP.

  • Seleziona Modem come XBP09-DP, Set di funzioni XBEE-PRO 900, Versione 1002. È importante selezionare 1002. La versione 1061 non funziona all’inizio.
  • Fai clic sul pulsante Mostra valori predefiniti nella vista parametri.
  • Fai clic sul pulsante Scrivi in ​​”Parametri modem e firmware”.
  • Torna alle impostazioni del PC, modifica Baud su 9600. Fai clic su Query. Mostrerà XBP09-DM. Ignoralo.
  • Torna a Configurazione modem. Fai clic su Leggi. Dovrebbe mostrare XBP09-DP come modem. Versione 1002.
  • Ora seleziona la versione 1061.
  • Fai clic su “Mostra valori predefiniti”
  • Fai clic sul parametro DD e impostarlo su 0. Questo passaggio è importante, altrimenti il ​​download del firmware 1161 non riuscirà.
  • Fai clic su “Scrivi”. Ora il firmware è XBP09-DP versione 1161.
  • Ora modifica la velocità di trasmissione e il VID del modem, scarica nuovamente e dovresti essere pronto per partire.
  • Mostrerà ancora XBP09-DM nella query delle impostazioni del PC. Non ti preoccupare.

Ora puoi testare la tua connessione, qualunque sia il modulo XBee da te utilizzato. Se apri il programma terminale sul tuo laptop (puoi usare anche il monitor seriale di Arduino IDE per questo), seleziona la porta seriale corretta e imposta il baud rate su qualunque cosa tu abbia impostato nei moduli Xbee (il valore predefinito è 57600 ). Una volta fatto questo, dovresti vedere la telemetria APM in arrivo. Ogni volta che c’è un “Serial3.println” nel codice, quei dati verranno inviati a terra attraverso gli Xbee. È possibile registrare tutti i dati desiderati. È inoltre possibile aprire il software Ground Station (impostando la porta e la velocità baud corrette) e dovrebbe iniziare a mostrare i dati APM.