Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
autopilota PX4 e
sistema operativo NuttX
Corso di Sistemi Operativi
o Autopilota PX4
▪ architettura
▪ caricamento
▪ integrazione moduli esterni
o Software di simulazione
o QGroundControl
o jMAVSim
▪ Java3D per l'implementazione grafica
▪ controllabile tramite ROS, QGroundControl (tramite UDP)
▪ impossibile integrare sensori ulteriori o ostacoli
▪ nessuna ispezione visuale
o User layer
▪ layer di comunicazione con l'utente
• shell, applicazioni esterne e script
▪ layer di librerie POSIX
• permettono la comunicazione delle applicazioni con i meccanismi implementati nel layer inferiore
o OS Layer
▪ logica di base del sistema operativo NuttX (algoritmi di scheduling,
gestione risorse, meccanismi IPC)
▪ driver per i possibili hardware
Arnaldo Tomasino – Sistemi Operativi
Sistemi UAV: autopilota PX4 e sistema operativo NuttX
15 of 25
Architettura di NuttX (2)
o Upper-half driver
▪ hardware independent
o Lower-half driver
▪ diversi driver lower-half collegati ai driver upper-half tramite
interfacce comuni
▪ offrono interfacce specifiche per l'hardware per cui sono progettate
o Librerie organizzate tramite le directory che compongono
l'implementazione del sistema operativo
Arnaldo Tomasino – Sistemi Operativi
Sistemi UAV: autopilota PX4 e sistema operativo NuttX
16 of 25
Task in NuttX
o Task in NuttX
▪ sequenza di istruzioni dotata di un opportuno stack:
• struttura dati chiamata Task Control Block (TCB)
• lo stato del thread è indicato nel campo task-field
▪ identificato da un taskID
• dato il taskID, il sistema operativo può reperire il TCB e viceversa
• unico dato esposto alle API del sistema operativo
▪ organizzati tramite relazioni parent-child
• child: eredita i file stream, stdIN/stdOUT
• parent: attende la terminazione dei processi figli per essere rimosso
o Semafori
▪ mutual exclusion
▪ signaling semaphores