Il cloud di Amazon aiuta la NASA a guidare i rover su Marte

Di - 8 January 2014 - in
Post image for Il cloud di Amazon aiuta la NASA a guidare i rover su Marte

Come si guida un rover su Marte? Con l’aiuto di una grande quantità di dati, buona parte dei quali archiviati ed elaborati sulla Terra nel cloud di Amazon.

Un rover è un veicolo spaziale a ruote che può muoversi ed esplorare la superficie di un pianeta o un altro corpo celeste. Su Marte sono attualmente operativi due rover robotici della NASA: Curiosity, atterrato nel 2012, e Opportunity, arrivato sul pianeta rosso nel 2004. Entrambe le missioni sono gestite dal Jet Propulsion Laboratory (JPL) di Pasadena, in California, un centro della NASA che realizza e conduce missioni automatiche di esplorazione scientifica del Sistema Solare.

Sebbene i rover abbiano ruote come le automobili, non si guidano allo stesso modo. Non è conveniente teleguidare interattivamente da Terra un rover su Marte perché, anche nelle condizioni di massima vicinanza del pianeta alla Terra, i segnali radio richiederebbero diversi minuti per raggiungerci da Marte, e altrettanto tempo per inviare comandi di risposta al rover.

Guidare i rover

Mosaico autoritratto del rover Curiosity della NASA nell’area John Klein del cratere Gale su Marte. Foto: PIA16937. Credit: NASA/JPL-Caltech/MSSS

Autoritratto del rover Curiosity della NASA nell’area John Klein del cratere Gale su Marte. Foto: PIA16937. Credit: NASA/JPL-Caltech/MSSS

Curiosity e Opportunity dispongono di sofisticate capacità di raggiungere un luogo prestabilito navigando autonomamente ed evitando gli ostacoli. Questa modalità di guida viene però utilizzata più raramente. Normalmente si preferisce invece pianificare a terra in anticipo e fare eseguire in seguito ai rover i drive, cioè i percorsi con le operazioni giornaliere. In un drive il veicolo percorre generalmente meno di un centinaio di metri nell’arco di una giornata marziana.

Al JPL si svolgono ogni giorno riunioni fra gli scienziati, che utilizzano i dati degli strumenti scientifici per le loro ricerche, e i rover driver, una squadra di addetti alla mobilità dei rover che hanno la “patente interplanetaria”. Al JPL lavorano una quindicina di rover driver, tra cui l’italiano Paolo Bellutta che ha una lunga esperienza.

I rover driver appartengono al team ingegneristico delle missioni che, in base alle richieste degli scienziati di visitare zone o formazioni geologiche interessanti, pianifica i percorsi di Curiosity e Opportunity per ciascuna giornata marziana, ottimizzando gli spostamenti ed evitando rischi per il funzionamento e l’operatività dei veicoli. I rover driver codificano i percorsi in sequenze di comandi per guidare e comandare i sistemi di bordo, che vengono poi trasmesse via radio su Marte ed eseguiti dai rover.

L’architettura cloud-oriented del JPL e Amazon AWS

Le immagini riprese dalle fotocamere di navigazione e scientifiche dei rover, integrate dai dati telemetrici, costituiscono il repertorio informativo su cui si basano i rover driver per pianificare i drive. Queste attività di pianificazione della navigazione sono definite operazioni tattiche. Le immagini sono utilizzate anche dal team scientifico per l’analisi geologica e il lavoro di ricerca.

Le elaborazioni necessarie a queste attività fanno largo uso delle infrastrutture cloud di Amazon. Il JPL utilizza da tempo i servizi cloud del colosso del web. Le processing pipeline per le operazioni tattiche dei rover e le analisi scientifiche richiedono l’esecuzione su larga scala di passi in sequenza che offrono ampie opportunità di parallelizzazione.

Il framework Poliphony è l’implementazione di riferimento dell’architettura cloud-oriented del JPL/NASA con funzionalità di gestione, memorizzazione, monitoraggio e coordinamento dei job di elaborazione nel cloud. Poliphony sfrutta diversi componenti di Amazon Web Services (AWS) fra cui Elastic Compute Cloud (EC2) per i servizi web, Simple Storage Service (S3) per l’archiviazione dei dati, Simple Queue Service (SQS) per le code di messaggi, ed Elastic MapReduce (EMR) con il framework di distribuzione dei processi e dati Hadoop. L’elaborazione può avvenire localmente al JPL o nel cloud.

Le immagini di navigazione

Due operazioni importanti per la guida dei rover sono particolarmente adatte all’implementazione con i servizi di Amazon: la generazione di viste stereoscopiche e la creazione di mosaici panoramici.

Alcune fotocamere dei rover sono montate affiancate in modo da fornire coppie di riprese per la creazione di immagini tridimensionali, per esempio anaglifi visibili con gli occhialini rossi e blu. Le sequenze di foto contigue acquisite dalle fotocamere nei luoghi esplorati dai rover vengono inoltre combinate in mosaici che comprendono panorami parziali o completi di quelle zone. Complessivamente questi dati aiutano i rover driver a ricostruire e visualizzare rappresentazioni tridimensionali dei luoghi in cui far muovere i veicoli per valutare le distanze e scegliere i percorsi.

I workflow di queste elaborazioni grafiche sono complessi per la difficoltà di esprimere gli ordinamenti, le dipendenze dei passi nelle code di elaborazione, e la duplicazione di passi che rallenterebbero l’elaborazione. Per superare le difficoltà espressive sono necessari adeguati servizi di orchestrazione e coordinamento.

Viste stereoscopiche e panorami

La produzione di una vista stereoscopica a partire da una coppia di immagini è parallelizzabile, ma non si può procedere alla creazione della vista combinata prima che siano stati elaborati entrambi i frame della coppia. Si tratta di un workflow split-join complesso da esprimere con sistemi basati sulle code, ma Amazon Simple Workflow (SWF) richiede solo poche semplici righe di codice Java integrate da alcune direttive di flusso del framework.

Immagine stereoscopica anaglifa della zona John Klein del cratere Gale su Marte (per la visione tridimensionale sono necessari gli occhialini rossi/blu). Panorama ripreso dal rover della NASA Curiosity. Foto: PIA16925. Credit: NASA/JPL-Caltech

Immagine stereoscopica anaglifa della zona John Klein del cratere Gale su Marte (per la visione tridimensionale sono necessari gli occhialini rossi/blu). Panorama ripreso dal rover della NASA Curiosity. Foto: PIA16925. Credit: NASA/JPL-Caltech

Anche la generazione dei panorami è implementabile con workflow paralleli. Per avere un’idea della complessità di queste elaborazioni, e delle opportunità di miglioramento delle prestazioni offerte dalla parallelizzazione, notiamo che un tipico panorama di Opportunity ha una dimensione di 11280×4280 pixel, è costituito da 77 foto a colori e sono necessari sei livelli di risoluzione. Nel caso di Curiosity, tecnologicamente più avanzato, un panorama ha una risoluzione di quasi 2 Gigapixel e comprende fino a 1.296 foto.

Ogni nuova immagine acquisita in un sito dalle fotocamere di bordo si aggiunge a quelle che costituiscono il panorama, un problema su larga scala che deve essere scomposto. L’algoritmo combina il panorama costruendo lunghe righe orizzontali multiple di singole foto. Dopo essere state combinate, le sequenze panoramiche sono poi scalate a risoluzioni minori e montate in mosaici per l’uso tattico e scientifico.

La creazione dei panorami è espressa attraverso Amazon SWF in pipeline strutturate con worker per l’upload, l’elaborazione parallela e il download dei dati. Visto che SWF non vincola la localizzazione dei nodi worker, i job possono essere eseguiti in regioni multiple del cloud o nei datacenter del JPL. Un’impostazione che offre scalabilità e distribuzione.

Le avanzate capacità di navigazione che permettono ai rover Curiosity e Opportunity di esplorare Marte sono dunque solo la punta di un complesso iceberg tecnologico che comprende anche i servizi cloud di Amazon, particolarmente espressivi per le elaborazioni parallele richieste dalle operazioni tattiche.

Leave a Reply

Articolo scritto da

Paolo vive a Milano dove si occupa di divulgazione e didattica dell'astronomia e dello spazio. Per le sue attività informatiche ha scelto Linux, Android e i prodotti Google, che segue e approfondisce.

Contatta l'autore

Previous post:

Next post: