![Sul drone Ingenuity della NASA arrivato su Marte ci sono Linux e uno Snapdragon 801 Sul drone Ingenuity della NASA arrivato su Marte ci sono Linux e uno Snapdragon 801](https://cdn.ilsoftware.it/pXn-wJZCI8QrkRn9nJG3cHNKzhc=/500x500/filters:format(webp)/https://www.ilsoftware.it/app/uploads/2023/05/img_22597.jpg)
La notizia della piena operatività del drone NASA Ingenuity, spedito su Marte insieme con il rover Perseverance è stata presentata come una vittoria per l’opensource. E in effetti è vero perché il “mini elicottero” realizzato dai tecnici dell’agenzia spaziale statunitense porta per la prima volta il sistema operativo Linux sul suolo marziano.
A dichiararlo è anche Tim Canham, ingegnere software NASA, che sottolinea come Ingenuity sfrutti software opensource e hardware commerciali che chiunque può acquistare autonomamente e che un giorno potrà utilizzare per replicare il progetto realizzato dai tecnici di Pasadena (California).
I precedenti rover e l’attuale Perseverance usano il sistema operativo proprietario VxWorks di Wind River Systems mentre Ingenuity una configurazione hardware costruita intorno al SoC Qualcomm Snapdragon 801. Si tratta di un chip ampiamente utilizzato in centinaia di milioni di smartphone.
Dal momento che non esiste una versione di VxWorks compatibile con questo chip si è preferito optare per una soluzione su Linux e sul framework opensource F’ sviluppato presso il centro di ricerca Jet Propulsion Laboratory (JPL) della NASA.
![](/app/uploads/2023/05/ingenuity_drone_linux_opensource.jpg)
Riferendosi allo Snapdragon 801, Canham ha osservato che “poiché si tratta di una tecnologia relativamente moderna, il chip è molto più potente dei processori usati per il rover. Parliamo di un paio di ordini di grandezza in più in termini di potenza di calcolo rispetto al rover. Ne avevamo bisogno per realizzare il drone“.
Anche perché Ingenuity acquisisce e analizza immagini in tempo reale a 30 Hz: per questo tipo di attività la NASA aveva necessità di usare un chip integrato capace di fornire una sufficiente potenza computazionale.
Il drone utilizza un sistema IMU (unità di misura inerziale) che sfrutta sensori inerziali come accelerometri e giroscopi simili a quelli che si trovano negli smartphone, un altimetro laser e una fotocamera VGA puntata verso il basso. Alcune dozzine di caratteristiche delle immagini vengono confrontate fotogramma per fotogramma per tracciare la posizione relativa e stabilire la direzione e la velocità del drone. Il tutto su stime posizionali invece che sulla memorizzazione dei dati in tempo reale e sulla creazione di mappe.
Sono presenti anche un inclinometro che viene utilizzato per stabilire l’inclinazione del terreno durante il decollo, una fotocamera a colori da 13 Megapixel (RTE) attivata esclusivamente per acquisire foto durante le operazioni di volo.
Il software utilizza componenti opensource che facilitano la rapida implementazione delle applicazioni di volo spaziale e di altri programmi integrati. F’ è stato implementato con successo in varie applicazioni spaziali molte volte in passato. È stato progettato per i sistemi di volo spaziale su scala ridotta ma adesso è diventato lo strumento alla base di un drone autonomo che viaggerà nel cielo di Marte.
La scommessa della NASA è stata quella di utilizzare hardware commerciale standard ampiamente disponibile sul mercato. È stato poi svolto un importante lavoro di personalizzazione per adattare il SoC di Qualcomm allo specifico utilizzo sul drone.
Per esempio, la frequenza di clock è impostata su un valore notevolmente più contenuto rispetto a quello rilevabile sui comuni smartphone.
Processori personalizzati come quelli personalizzati dagli ingegneri NASA richiedono anni di lavoro di progettazione e test prima di essere certificati per il volo spaziale. Basti pensare che il più recente processore general-purpose della NASA è una variante dell’ARM Cortex-A53 adoperato anche nel penultimo modello del single-board computer Raspberry (Raspberry Pi 3).
Ovviamente la NASA usa Linux e il software opensource in generale in modo massiccio per le attività di ricerca spaziale. L’agenzia ha rilasciato più di 500 progetti utilizzando la sua licenza opensource e prima che venissero rilasciati come software la NASA aveva già condiviso molto del suo codice nell’ambito dell’iniziativa COSMIC.
Ingenuity mira a dimostrare utilizzando hardware commerciale poco costoso combinato con Linux e software opensource si possono raggiungere importanti nuovi traguardi.