TeleLaboratorio: Virtual Lab Dipartimento Sistemi Elettrici & Automazione Università di Pisa Motivazioni per il TeleLaboratorio (I) Il TeleLaboratorio rappresenta un ambiente reale al quale si può accedere in modo virtuale tramite connessione Internet. Vantaggi: Non ci sono problemi logistici quali quelli di far entrare un alto numero di studenti all’interno di un laboratorio di dimensioni limitate Possibilità di condividere un’unica risorsa disponibile tra un elevato numero di studenti Possibilità di coinvolgere un pubblico che vada al di là di una semplice classe universitaria Possibilità di uno studente di migliorare le proprie conoscenze in un determinato settore senza la necessità di avere un docente accanto Motivazioni per il TeleLaboratorio (II) Il TeleLaboratorio è stato sviluppato nel contesto del progetto “TIGER”, Telepresence Instant Groupware for higher Education in Robotics, un progetto a livello nazionale inteso a favorire la diffusione di un TeleLaboratorio distribuito per lo studio di materie inerenti il campo della robotica. Pertanto alcune caratteristiche del TeleLaboratorio rispondono a delle specifiche di progetto esterne: • Sistema di autenticazione per l’accesso al TeleLaboratorio • Necessità di prenotare un esperimento prima di poterlo usare • Presenza di materiale didattico a supporto di un esperimento in modo che tutta la documentazione per poter effettuare una determinata esperienza sia disponibile on-line Accesso al TeleLaboratorio Il TeleLaboratorio è accessibile dal sito del dipartimento DSEA, www.dsea.unipi.it, cliccando sul logo del dipartimento e scegliendo Link Utili -> Telelab L’accesso è riservato solo tramite login e password. Nuovi utenti devono prima registrarsi e poi attendere che i login e password scelte vengano abilitate dal docente. Esperimenti disponibili nel TeleLaboratorio(II) L’accesso agli esperimenti avviene tramite prenotazione del particolare esperimento al quale si è interessati. E’ possibile visualizzare l’elenco delle ore disponibili, l’elenco delle proprie prenotazione, o effettuare una nuova prenotazione o cancellarne una. Virtual Lab: un ambiente interattivo per il controllo di sistemi dinamici E’ necessario prenotare il Virtual Lab, e all’interno dell’orario di prenotazione, è sufficiente cliccare sul nome dell’esperimento per lanciare il programma Virtual Lab (II) Ingressi disponibili Impianti disponibili Controllori disponibili Virtual Lab (III) Uscita del sistema in blu mentre in rosso si vede il riferimento. E’ possibile fare una pausa, salvare i dati, scalare il grafico… e cambiare in tempo reale i parametri del controllore!! Progetto VirtualLab realizzazione di un'interfaccia web per il controllo on-line di un impianto simulato impianto e controllore vengono realizzati con Scicos e compilati come processi real-time Un server su piattaforma RTAI gestisce l'avvio delle simulazioni ed il cambiamento dei parametri sul controllore dell'impianto Un'interfaccia java applet permette all'utente finale di controllare l'andamento del sistema complessivo e modificarne i parametri in linea Architettura Componenti del VirtualLab Applet Java VirtualLabGUI LAN Telelaboratorio Internet VirtualLab Server Utente Finale Linux RTAI I sistemi operativi Real-Time Definizione di Sistema Operativo Real-Time: E' un sistema operativo in cui per valutare la correttezza delle operazioni si considera anche la variabile tempo RTOS: definizioni Due tipologie di correttezza devono essere garantite: Correttezza logica: i risultati/risposte forniti devono essere quelli previsti (normalmente richiesta a qualunque sistema di elaborazione) Correttezza temporale: i risultati devono essere prodotti entro certi limiti temporali fissati (deadlines) (specifica dei sistemi real time) RTOS: definizioni Tipologie di Sistemi realtime: Sistemi Hard realtime: Il non rispetto delle deadlines temporali NON e’ ammesso porterebbe al danneggiamento del sistema (applicazioni safety critical) Sistemi Soft realtime: il non rispetto occasionale delle deadlines e’ ammissibile le specifiche temporali indicano solo in modo sommario i tempi da rispettare degrado delle performance accettabile Cenni sull'architettura I sistemi operativi real time fornisco alle applicazioni un'astrazione dell'hardware (Hardware Abstraction Layer, HAL). L'Hardware Abstraction Layer mette a disposizione delle applicazioni una serie di servizi (primitive realtime). Applicazioni dei RTOS 2 tipologie principali Simulazione un processo hard realtime può simulare un processo del quale vogliamo realizzare il controllo (ad esempio una sfunction) Controllo un processo hard realtime può contenere le funzioni che andremo poi a trasferire su un controllore commerciale (PLC, reti di sensori) RTOS: soluzioni Alcuni dei sistemi operativi realtime “general purpose”: Soluzioni proprietarie: Soluzioni opensource: VxWorks QNX RTLinuxFree (solo per kernel 2.4) RTAI RTLinux e RTAI sono soluzioni basate sul kernel di Linux e possono sfruttarne tutte le applicazioni e l'ambiente. Introduzione a RTAI Progetto originale del Politecnico di Milano http://www.aero.polimi.it/~rtai/ http://www.rtai.org/ L'ambiente realtime è realizzato tramite moduli del kernel: ogni modulo gestisce un particolare servizio; disponibilità di diversi scheduler; possibilità di attivare e disattivare il supporto alle applicazioni realtime; modifica trasparente alle applicazioni non realtime. Caratteristiche di RTAI (I) Infrastruttura hard realtime sia in kernel space che in user space: programmazione in user space più semplice e sicura; Funzionalità real time avanzate: supporto al C++ (anche in kernel space per kernel 2.4); supporto al calcolo in virgola mobile in kernel space possibilità di backtrace delle applicazioni realtime; disponibilità di una interfaccia grafica; Caratteristiche di RTAI (II) Opensource Basato sul nanokernel ADEOS (Adaptive DomainEnvironment for Operating Systems) Disponibile per diverse architetture hardware i386, PPC, ARM, MIPS Tempi di latenza nell'ordine di alcuni microsecondi latenza tipica su architettura i386: 2~6 μs adatto quindi anche per sistemi di controllo con frequenza di campionamento nell'ordine del KHz Caratteristiche di RTAI (III) Si possono sfruttare tutti gli editor e gli ambienti di sviluppo normalmente disponibili per Linux come compilatore viene utilizzato solitamente il gcc (GNU Compiler Collection) Disponibilità di ambienti di sviluppo dedicati per CACSD (Computer Aided Control Systems Design) ambiente MatLab/Simulink/RealTime Workshop (piattaforma proprietaria) ambiente Scilab/Scicos (piattaforma opensource) VirtualLabServer è un programma RTAI multithreaded che compie le seguenti azioni pubblica una lista di esperimenti disponibili alle interfacce web attende la comunicazione dell'avvenuta selezione di una tripletta ingresso-controllore-impianto crea un thread con priorità hard realtime che invia il segnale colloquia con l'applet java tramite il protocollo XML-RPC elevata affidabilità elevata compatibilità con diversi linguaggi di programmazione Sistemi di controllo digitale Presenza di un calcolatore nel loop di controllo Elaborazione tempo-discreta della legge di controllo Occorrono dispositivi di interfaccia tra il dominio tempo-continuo dell’impianto e quello tempo-discreto del calcolatore Introduzione a Scilab progetto francese open-source alternativo a Matlab http://www.scilab.org/ come Matlab, permette calcolo matriciale realizzazione di grafici (luogo delle radici) espandibilità con un linguaggio di programmazione di alto livello interno espandibilità tramite l'implementazione di toolbox (Scicos) più di Matlab permette (gratuitamente) alcune funzioni di calcolo simbolico CACSD con Scilab/Scicos (I) Si progetta il sistema di controllo in maniera grafica sulla base dei blocchi funzionali CACSD con Scilab/Scicos (II) Progetto del sistema di controllo VirtualLabGUI Implementa il paradigma Subject-Observer ogni modulo dell'interfaccia può registrarsi in una lista di osservatori del segnale ogni qual volta un campione viene prelevato tutti gli appartenenti alla lista ricevono una notifica e possono compiere delle operazioni sul segnale Prevede componenti riutilizzabili da inserire in interfacce ad-hoc prevede la creazione di pannelli contenenti più grafici ed operazioni da eseguire sul segnale (toolbox) VirtualLab / Matlab (I) consideriamo il seguente modello VirtualLab / Matlab (II) Confronto tra i grafici ottenuti su VirtualLab / Matlab Espandibilità E' possibile implementare 3 tipi di entità Esperienze (livello Java) controllo a ciclo aperto controllo a ciclo chiuso controllo ottimo identificazione Modelli (SISO-MIMO livello Scicos) controllori impianti Toolbox ovvero wizard per l'immissione di parametri su modelli equivalenti Conclusioni VirtualLab permette: l'interazione in linea con un processo senza la necessità di strumenti proprietari e/o piattaforme di difficile installazione l'espandibilità tramite un linguaggio di programmazione di alto livello (Java) ed uno strumento open-source (Scicos) lo studio di simulazioni complesse anche su hardware non particolarmente efficienti, in quanto l'elaborazione è effettuata completamente lato server Materiali utili www.rtai.org www.scilab.org alternativamente www.octave.org www.ni.com/realtime/ National Instruments (LabVIEW) Dispense di introduzione a Scilab Disponibili per diffusione diretta www.r-project.org7 Programma di statistica R (free)