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à.
1 2 3 4 |
git clone https://github.com/nasa/fprime.git cd fprime pip install --upgrade wheel setuptools pip pip install Fw/Python Gds/ |
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.
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.