La NASA rilascia il software di volo per Raspberry

NASA Raspberrypi fprime logo

La NASA ha rilasciato in open source per il Raspberry il suo framework per il software di controllo volo F’ (F Prime), progettato per lo sviluppo rapido di sistemi embedded in robotica e astronavi.

F´ (F Prime) è un framework basato su componenti che consente lo sviluppo e la distribuzione rapidi di informazioni per voli spaziali e altre applicazioni software integrate. Sviluppato originariamente presso il Jet Propulsion Laboratory, F´ è stato implementato con successo in diverse applicazioni spaziali. È adattato, ma non limitato, a sistemi di volo spaziale su piccola scala come CubeSats, SmallSats e strumenti.

F´ comprende diversi elementi:

  • Un’architettura che scompone il software di volo in componenti discreti con interfacce ben definite
  • Un framework C ++ che fornisce funzionalità di base come code e thread di messaggi
  • Strumenti di modellazione per specificare componenti e connessioni e generare automaticamente codice
  • Una collezione in continua crescita di componenti pronti all’uso
  • Strumenti di test per testare il software di volo a livello di unità e di integrazione.

Guida di installazione

Il sistema è stato reso pubblico attraverso il seguente link su GIT.

F´ può essere installato rapidamente utilizzando le seguenti istruzioni. Per prima cosa è necessaria la presenza delle seguenti utility: cmake, git e Python 3.5+ con pip. Dopo averli installati, si consiglia agli utenti di installare le dipendenze di F´ relative a python. Istruzioni complete per l’installazione, inclusa la creazione dell’ambiente virtuale e la verifica dell’installazione soi trovano nel file INSTALL.md. Di seguito sono riportati i passaggi più basilari per comodità.

NASA fprime raspberry

Rilasci di esempio

F´ viene fornito con due implementazioni di esempio. Le distribuzioni rappresentano applicazioni F´ funzionanti per aiutare a comprendere F´. Questi esempi possono essere utilizzati come riferimento o clonati per avviare un nuovo progetto. Ulteriori tutorial passo passo sono presenti nelle relative cartelle, ma poiché si tratta di applicazioni complete, si consiglia all’utente di creare ed eseguire almeno la prima per assicurarsi che F´ sia installato correttamente.

Rif: L’applicazione di riferimento standard mostra come collegare insieme la maggior parte dei componenti del sistema. Inoltre, l’applicazione di riferimento può essere costruita su Linux o Mac OSX consentendo all’utente di iniziare immediatamente senza la necessità di hardware incorporato.

RPI: L’applicazione Raspberry PI mostra come eseguire F´ in un contesto embedded. Questa applicazione consente all’utente di come iniziare a lavorae nel mondo embedded con cross-compilazione, drivers e altro. Il Raspberry Pi è stato scelto in quanto è disponibile in commercio a un prezzo basso e funziona con Linux.

La cartella RPI del trunk dispone di un tutorial passo-paso per  accompagnare l’utente nell’installazione.

Tutorial

F´ fornisce diversi tutorial per imparare a muoversi e a sviluppare all’interno del framework. Questi tutorial coprono la creazione di componenti di base, la progettazione di sistemi e topologie, strumenti e altro ancora, e sono disponibili su docs/Tutorials/README.md.

NASA Raspberry

Caratteristiche di F’

F´ ha le seguenti caratteristiche chiave che consentono un design robusto del sistema embedded.

Riusabilità

L’architettura basata sui componenti di F´ consente un elevato grado di modularità e riutilizzo del software.

Distribuzione rapida

F´ fornisce un ecosistema di sviluppo completo, inclusi strumenti di modellazione, strumenti di test e un sistema di dati a terra. Gli sviluppatori utilizzano gli strumenti di modellazione per scrivere specifiche di alto livello, generare automaticamente implementazioni in C++ e compilare le implementazioni con codice specifico del dominio. Il framework e i generatori di codice forniscono tutto il codice richiesto in una distribuzione F’, incluso il codice per la gestione dei thread, il codice per la comunicazione tra i componenti e il codice per la gestione dei comandi, della telemetria e dei parametri. Gli strumenti di test e il sistema di dati a terra semplificano il test del software, sia sulle workstation che sull’hardware di volo in laboratorio.

Portabilità

F´ funziona su un’ampia gamma di processori, dai microcontrollori ai computer multicore e su diversi sistemi operativi. Il porting di F´ su nuovi sistemi operativi è semplice.

Alte prestazioni

F´ utilizza un’architettura punto a punto. L’architettura riduce al minimo l’uso di risorse di calcolo ed è adatta per processori più piccoli.

Adattabilità

F´è adattato al livello di complessità richiesto per piccole missioni. Questo lo rende accessibile e facile da usare, pur continuando a supportare un’ampia varietà di missioni.

Analizzabilità

Le connessioni di porta tipizzate forniscono forti garanzie di correttezza in fase di compilazione.

 

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.