FACOLTÀ DI INGEGNERIA INFORMATICA SVILUPPO DI AMBIENTI IN REALTÀ VIRTUALE PER IL MONITORAGGIO REMOTO DI ROBOT ARTICOLATI

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "FACOLTÀ DI INGEGNERIA INFORMATICA SVILUPPO DI AMBIENTI IN REALTÀ VIRTUALE PER IL MONITORAGGIO REMOTO DI ROBOT ARTICOLATI"

Transcript

1 FACOLTÀ DI INGEGNERIA INFORMATICA SVILUPPO DI AMBIENTI IN REALTÀ VIRTUALE PER IL MONITORAGGIO REMOTO DI ROBOT ARTICOLATI RELATORE: PROF. LUCA ZACCARIAN LAUREANDO: ROBERTO ANTONELLI Matr. II A.A

2 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 1 INDICE Introduzione. pag. 3 1-Generalità sulla visualizzazione prospettica. pag Legge prospettica.. pag Rotazione di corpi rigidi... pag Concetti di base sulla libreria grafica OpenGL.... pag Primitive.... pag Illuminazione.... pag Utilizzo delle librerie OpenGL nella libreria grafica..... pag Applicazione della legge prospettica... pag Rotazione dei corpi visualizzati... pag Visualizzazione 3D del robot... pag Descrizione del robot articolato pag Il motore elettrico in corrente continua. pag Encoder Incrementale pag Modalità di rappresentazione di link 3D... pag Modalità di visualizzazione dei link 3D pag Calcolo del movimento dei link pag Aggiornamento dell animazione... pag. 30

3 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag Procedure aggiuntive... pag Conversione da passi encoder ad angoli pag Tool Bar.... pag Modalità di utilizzo della libreria pag Generalità.. pag Variabili.... pag Funzioni. pag Esempio di Applicazione pag. 41 -BIBLIOGRAFIA.... pag. 43 -APPENDICE A Robot Scortec... pag. 44 -APPENDICE B Robot Scorbot... pag. 72 -APPENDICE C Funzioni principali della libreria OpenGL pag. 103

4 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 3 Introduzione Tutto quello che ci circonda è rappresentato nello spazio tridimensionale. Grazie allo sviluppo degli elaboratori elettronici, tale mondo è rappresentabile su un terminale utilizzando le tecniche di grafica tridimensionale. Tramite queste tecniche è possibile ricostruire sullo schermo di un normale personal computer tutto l ambiente circostante, considerando le luci, i riflessi degli oggetti, il loro movimento, per rappresentare anche i diversi materiali di cui essi sono composti. Anche il più piccolo particolare può essere rappresentato,con la tecnologia odierna, sul monitor di un pc. Il fine che giustifica tale ricostruzione non è unico: in ambito scientifico è possibile visualizzare e/o manipolare oggetti tridimensionali non visibili direttamente dall occhio umano quali, per esempio, composti chimici (catena del DNA); valutare a priori la stabilità della struttura portante di un edificio, in edilizia, o la sua resa finale dal punto di vista architettonico; simulare il comportamento di macchine e meccanismi; controllare il comportamento di un robot e analizzare la posizione occupata nello spazio. Prendiamo in considerazione l ultimo punto: quello del controllo di un robot. La grafica tridimensionale permette di controllare il robot solo guardando il monitor del pc, senza essere legati alla vicinanza fisica al meccanismo reale. La grafica tridimensionale permette, peraltro, di controllare come si comporterà il robot in seguito ad un determinato spostamento, prima di compierlo realmente. Entrambe queste situazioni costituiscono un interessante contesto in cui la sicurezza dell operatore umano è preservata attraverso l impiego della grafica tridimensionale. Inizialmente la grafica tridimensionale è stata sviluppata principalmente, per realizzare videogames sempre più realistici e commerciabili. Tuttavia, l incalzante richiesta di giochi sempre più realistici e avvincenti ha portato allo sviluppo di tecniche di rappresentazione tridimensionale sempre più evolute, portando inoltre allo sviluppo di hardware sempre più potente, capace di sfruttare a pieno le rappresentazioni tridimensionali. L evoluzione di tali tecniche è tale, ormai, che esse permettono di rappresentare virtualmente la realtà fisica e di modellare, testare e controllare qualunque ambiente reale. Per questo motivo, ai giorni nostri, la grafica tridimensionale è ormai utilizzata in moltissimi campi, con gli scopi più disparati. Il concetto di grafica tridimensionale è, di per sé, semplice: indica il modo di rappresentare un qualsiasi oggetto solido tridimensionale su di un piano (lo schermo del pc). Per quanto semplice sia il concetto, la sua realizzazione è alquanto difficile. La definizione apre un mondo di problemi e di possibilità da tener presente al momento della costruzione di un qualsiasi ambiente tridimensionale. Il primo problema è quello di riuscire a disegnare un oggetto a due dimensioni che mantenga le stesse caratteristiche visive di quello a tre dimensioni. Gli altri problemi vengono dalla rappresentazione di oggetti complessi e in movimento. Se poi si desidera realizzare una simulazione convincente della realtà, si deve tener anche conto delle luci, delle ombre, dei materiali, delle parti nascoste e di quelle trasparenti, della riflessione delle superfici, delle interazioni fra gli elementi della scena. In questi

5 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 4 concetti entrano in gioco le leggi fisiche dell ottica e della meccanica che il calcolatore deve elaborare in tempi brevissimi, per creare animazioni realistiche e fluide. Quindi si può facilmente immaginare la quantità di calcoli che il computer deve compiere per creare una semplice scena animata. Per questo, per la realizzazione di una scena tridimensionale è necessario utilizzare un hardware sufficientemente potente. Infatti non basta solo la potenza di calcolo del processore, ma è anche necessario utilizzare una scheda video capace di gestire una mole di dati elevata e con caratteristiche grafiche specifiche. La risoluzione delle problematiche di visualizzazione saranno discusse in modo approfondito nel corso di questa tesi, incentrata sull applicazione della grafica tridimensionale a strutture robotiche. Queste hanno un ruolo fondamentale nel panorama dell automazione industriale, dato che con la loro struttura e i loro movimenti assai simili a quelli di un braccio umano, permettono di automatizzare e rendere più efficienti numerose operazioni che, fino a pochi decenni fa, erano riservate esclusivamente all intervento di uno o più operatori. Lo sviluppo di unità elettroniche di controllo ad elevate prestazioni, ha allargato il campo di applicazione a numerosi settori, facendo del robot uno strumento indispensabile ad una industria moderna e competitiva. Il robot industriale può essere considerato un manipolatore riprogrammabile, multifunzionale, progettato per muovere materiali, pezzi, utensili o attrezzi speciali attraverso movimenti variabili, programmati per l esecuzione di una varietà di lavori ed operazioni tecnologiche. Da questa definizione si deduce che le caratteristiche peculiari di un robot sono quindi: Possibilità di manipolare e spostare oggetti, tramite opportuni organi prensili; Programmabilità, cioè capacità di essere di volta in volta programmato secondo traiettorie opportune in funzione della particolare operazione da svolgere; Flessibilità, ovvero possibilità di essere impiegato per scopi diversi. Presso il laboratorio di robotica dell Università degli studi di Roma Tor Vergata, sono disponibili due tipologie di robot didattici articolati: lo Scortec-ER I e lo Scorbot-ER, entrambi prodotti dalla ESHED ROBOTEC. Scortec-ER I Scorbot-ER Figura 1-Robots disponibili presso il laboratorio di robotica dell Università degli studi di Roma Tor Vergata.

6 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 5 Entrambi i robot hanno cinque gradi di libertà e sono forniti di una pinza motorizzata come strumento di presa. I giunti che collegano i link vengono denominati: Base Shoulder, Elbow, Pitch (Wrist), Roll (Wrist). Figura 2-Rappresentazione schematica dei cinque gradi di libertà dei robot articolati. I movimenti dei giunti sono ottenuti con motori in corrente continua dotati di rapporti di riduzione diversi per ogni giunto. L informazione relativa alla posizione angolare del giunto è ottenuta tramite trasduttori di posizione ottici di tipo incrementale, montati in asse con l albero di ogni singolo motore. I trasduttori di posizione sono encoders incrementali che permettono di gestire dal punto di vista logico un motore in corrente continua come un motore passo passo. In questa tesi è stata sviluppata una libreria grafica che riproduce i due robot in una rappresentazione tridimensionale, sfruttando tecniche di grafica tridimensionale. Essa crea un animazione del robot, dando la possibilità di cambiare l angolo di visualizzazione dell intera struttura. La libreria è stata scritta in linuguaggio C ed implementata sull interfaccia X del sistema operativo Linux. Per risolvere molte delle problematiche relative alla rappresentazione della grafica tridimensionale è stata utilizzata la libreria OpenGL: una raccolta di funzioni capaci di rappresentare gli oggetti e l ambiente circostante, sfruttando le leggi fisiche. Nel seguito della tesi si approfondirà dapprima la legge prospettica, cioè la tecnica che permette di riprodurre un oggetto tridimensionale su un piano, successivamente saranno commentate le funzioni fornite dalla libreria OpenGL mostrando come queste risolvano parte dei problemi di rappresentazione. Verranno anche descritti i concetti base di una struttura di un robot articolato e come questi concetti sono stati impiegati all interno della libreria. Nella tesi si farà riferimento, principalmente, alla libreria Scort3dX, riguardante la rappresentazione del robot Scortec-ERI (a sinistra in Figura 1). La libreria Scorb3dX, riguardante la rappresentazione del robot Scorbot-ER (a destra in Figura 1) verrà presa in considerazione solo quando necessario per commentare eventuali differenze tra le due.

7 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 6 La tesi è articolata nel seguente modo. Nel capitolo 1 (Generalità sulla visualizzazione prospettica), viene descritta la legge prospettica, e come questa è stata implementata sul calcolatore. Inoltre viene descritta, in questo capitolo, la tecnica utilizzata per ruotare un corpo nello spazio e in specifico come viene effettuata la rotazione dei link del robot. Nel capitolo 2 (Concetti di base dulla libreria grafica OpenGL), viene introdotta la libreria grafica OpenGL e ne viene spiegato l utilizzo. Viene anche spiegata, in questo capitolo, la tecnica utilizzata per rappresentare tutti i componenti del robot. Nel capitolo 3 (Visualizzazione 3D del robot), sono descritti i concetti base della struttura di un robot e le tecniche per calcolare le rotazioni dei link del robot. Sono discussi in questo capitolo le tecniche di visualizzazione dell intero robot. Nel capitolo 4 (Procedure aggiuntive), vengono descritte delle procedure opzionali inserite nella libreria per migliorarne. Nel capitolo 5 (Modalità di utilizzo della libreria), viene chiarito l utilizzo della libreria e vengono descritte tutte le procedure che il programmatore può sfruttare per gestire il robot grafico. Questo capitolo può essere inteso come un vero e proprio manuale d uso per la libreria. Infine, in Appendice A sono riportati gli schemi strutturali di ogni componente del robot Scortec-ER I; in Appendice B sono riportati gli schemi strutturali del robot Scorbot-ER e in Appendice C vengono descritte le principali procedure della libreria grafica OpenGL utilizzate per questo lavoro di tesi.

8 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 7 Capitolo 1 Generalità sulla visualizzazione prospettica La realtà che ci circonda è collocata nello spazio tridimensionale. Per rappresentare questa realtà su un piano, come ad esempio lo schermo di un pc in un contesto di realtà virtuale, è necessario effettuare una trasformazione. Tuttavia, un requisito essenziale di questa trasformazione è mantenere le stesse caratteristiche visive dell oggetto tridimensionale originale. Una tecnica usata per questo genere di trasformazione è la legge prospettica. 1.1 Legge prospettica La legge prospettica è basata sul principio secondo cui più un oggetto è lontano dall osservatore, più questo tende a rimpicciolirsi. Per chiarire il meccanismo alla base della trasformazione prospettica, supponiamo di voler rappresentare un segmento disposto nello spazio tridimensionale sul monitor del pc. In particolare, si faccia riferimento alla Figura Figura Proiezione sul Piano di Osservazione

9 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 8 Il primo componente da descrivere è l osservatore. Esso rappresenta l occhio umano, cioè il punto da cui una persona osserva il segmento tridimensionale. L occhio umano ha un campo visuale di circa 90. Quindi l angolo θ, che rappresenta la metà del campo visivo, può essere preso uguale a 45 (Fig ). Figura Angolo visivo dell osservatore Tra l oggetto e l osservatore interponiamo un piano immaginario, detto piano di osservazione. Questo è posto, per semplificare i calcoli, ad una distanza fissa dall osservatore ed è suddiviso in due quadranti, destro e sinistro. Proiettando il vertice A del segmento tridimensionale, sul piano di osservazione, si traccia il punto A (analogamente per B e B ). Sempre partendo dal vertice del segmento viene tracciata una retta (retta di traccia) che interseca il piano di osservazione, fomando con esso un angolo θ. Questa intersezione ci permette di ricavare i punti di traccia T a =(T ax,t ay ) e T b =(T bx,t by ). La suddivisione in quadranti è utilizzata per identificare la direzione delle rette di traccia (ovvero le direzioni BT b e AT a ). In particolare, con riferimento all angolo visivo θ prima introdotto, se la proiezione (A o B ) sul piano di osservazione di ogni estremo (A o B) ritrova nel semipiano destro, la corrispondente retta di traccia è inclinata verso destra (ad esempio BT b ). Viceversa, è inclinata verso sinistra (ad esempio AT a ). Nel seguito del paragrafo faremo solo riferimento al vertice A, per semplicità. Il procedimento per il vertice B è analogo e le relative formule sono identiche. Il valore di T ax è ricavabile mediante un sistema lineare. Se si considera la retta A-T a nel piano di osservazione, si ottiene la seguente equazione: Tg( θ ) *(Tax - A x ') + A y' = 0 riordinando: Tg( θ ) *(Tax - A x') = A y' e ancora: A y' Tax - A x' = Tg( θ )

10 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 9 da cui si ricava: A y' Tax = + A x' Tg( θ ) essendo θ costante e Tg(θ) unitario, la formula si riduce a: Tax = A ' Mentre T ay è pari alla quota del punto B (questo valore non sarà necessario per la trasformazione prospettica). Si osservi che i punti di proiezione e i punti traccia si devono trovare sempre sullo stesso quadrante. y + A x' Figura Proiezione sullo schermo del computer Prendiamo ora in considerazione il piano che rappresenta lo schermo del computer Fig Anche questo viene diviso in due quadranti, quello superiore e quello inferiore. Sullo schermo bisogna proiettare i punti, A, T a (analogamente B, T b ) vengono proiettati sul bordo superiore dello schermo se il segmento tridimensionale si trova sopra il centro del piano di osservazione, viceversa vengono proiettati sulla parte inferiore, questo spiega perché il valore T ay non è necessario per la trasformazione (ma il suo segno si). Dal punto T a viene tracciata la congiungente con il punto F a (fuoco), le cui coordinate dipendono da una formula trigonometrica: Esiste un triangolo P-F a -O (nel piano di osservazione) per il quale sussiste la seguente relazione:

11 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 10 Tg( θ ) = dove y^ è pari alla distanza dell osservatore dal piano di osservazione. Quindi il valore cercato è dato dalla formula: semplificando, si ottiene: y^ Fax y^ Fax = Tg( θ ) Fax = y^ Anche in questo caso F ay è costante. Dal punto A viene tracciata la congiungente con il punto P. Consideriamo questo punto al centro dello schermo. L intersezione delle due rette individua il punto A v, le cui coordinate sono ricavabili dal seguente sistema: (Fx *Tg( α) ) - (A x'*tg( σ )) Avx = Tg( α) - Tg( σ ) Avy = Tg( σ ) *(Avx A x') A y' dove α, σ sono gli angoli che le due rette secanti formano con il piano dello schermo del pc. I loro valori sono ricavabili dal sistema: Tg( α ) = Fay - Tay ScreenDX + Fax - Tax 2 Tg( σ ) = Py - A y' Px- Ax' Ora manca ancora un fattore molto importante, la coordinata Z di ognuno dei punti della retta. Essa non è stata presa in considerazione perché bastano due sole coordinate per rappresentare genericamente qualsiasi entità geometrica in prospettiva. Inserendo la coordinata Z il sistema a due equazioni non cambia. Cambiano invece le formule di Tg(α) e Tg(σ). Se la coordinata Z del punto A è diversa da zero, allora bisogna tenere in considerazione i valori di F ay e P y. Il valore delle due coordinate assumerà ora il valore di A z, mentre il resto rimarrà inalterato. Questo perché se A z varia ed è diverso da zero, allora anche il piano su cui poggia A si alza o si abbassa a seconda di tale valore.

12 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 11 Da queste ultime considerazioni, e sostituendo a F ay -T ay ed P y -A y il valore ScreenDY/2 ed aggiungendogli il valore A z le formule di Tg(α) e Tg(σ) diventano quindi più semplici: ScreenDY - Az Tg( α ) = 2 ScreenDX + y^-a x' + A y' 2 ScreenDY - Az Tg( σ ) = 2 ScreenDX - A x' 2 Già da questi calcoli si potrebbe ricavare una procedura iterativa che riceva come parametri i tre parametri delle coordinate A x,a y,a z e restituisca i due parametri delle coordinate (A xv,a yv ) dello schermo. Quindi riassumendo, il procedimento per renderizzare una retta su schermo è il seguente: Calcolare il valore di T ax ; Calcolare il valore di F ax ; Calcolare il valore di Tg(α); Calcolare il valore di Tg(σ) e Tg(ϕ); Calcolare infine il valore di A xv e di A yv. Tuttavia, ragionando sulle espressioni precedenti, si può procedere ad una semplificazione per ottimizzare la procedura. Nella formula per calcolare le coordinate di A v sostituendo le espressioni di Tg(α) e Tg(σ) si ricavano le seguenti equazioni: ScreenDX (y^*x + ( * y)) 2 Axv = y^+ y Ayv = ScreenDY y * ( - z - 2 y^+ y y^-y) Si osservi che modificando la variabile Z, il punto sullo schermo non subisce variazioni lungo l asse delle X, ma viene traslato lungo l asse delle Y. Si noti la presenza di y^, che rappresenta la distanza dell osservatore dal piano di proiezione.

13 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag Rotazione di corpi rigidi Un corpo rigido è composto da un insieme di punti nello spazio tridimensionale vincolati tra loro dalla condizione di mutua distanza: P i (t) P j (t) =r ij =cost per ogni i,j che impone che la distanza tra due punti qualsiasi appartenenti al corpo sia costante nel tempo. La configurazione di un corpo rigido nello spazio tridimensionale è univocamente determinata dalla posizione di almeno tre punti non allineati. La configurazione di un corpo rigido è individuata dalla posizione e dall orientamento di una terna di riferimento solidale con il corpo rispetto ad una terna di riferimento fissa. Se lo spostamento rigido lascia invariati gli orientamenti degli assi della terna di riferimento solidale con il corpo rigido, si dice traslatorio. Mentre uno spostamento rigido si dice sferico se lascia invariata la posizione di un punto, chiamato centro. Altrimenti uno spostamento rigido si dire rotatorio se lascia invariata la posizione di tutti i punti appartenenti ad una retta, chiamata asse di rotazione. Poiché lo Scortec e lo Scorbot sono due robot formati solo da giunti rotoidali, è importante inserire il concetto di rotazione per ogni link. Consideriamo un sistema di riferimento a due dimensioni. Per determinare la rotazione θ di un corpo intorno ad un punto (x,y) in un piano, bisogna prima traslare l oggetto di (-x,-y), poi ruotarlo di θ e successivamente riportare l oggetto nella posizione iniziale (x,y). Per esempio consideriamo la rotazione di un angolo θ, del secondo giunto (shoulder) del robot scortec in Figura Dapprima ruota il robot di un angolo α intorno alla base (asse z) per portare il braccio sul piano xz. Successivamente si trasla il secondo giunto verso l origine. La matrice di trasformazione calcolata viene poi moltiplicata per la matrice di rotazione intorno a y di un angolo θ. Il risultato viene moltiplicato per la matrice di traslazione che riporta il secondo giunto nella sua posizione originale e,per finire, viene moltiplicato per la matrice di rotazione intorno alla base di un angolo -α. In definitiva la matrice finale della rotazione del corpo è data dal prodotto: [M]= [R z ][T 1 ][R y ][T 2 ][R z ] Una volta determinata la trasformazione di coordinate data da [M], è possibile rappresentare in prospettiva i vari link del robot in seguito alla determinazione delle coordinate 3D dei punti essenziali che ne caratterizzano l aspetto.

14 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 13 Figura Rotazione Shoulder (α=0; θ=90)

15 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 14 Capitolo 2 Concetti di base sulla libreria grafica OpenGL La libreria grafica OpenGL (Open Graphics Library) è un insieme di funzioni chiamabili da un programma personalizzato che consentono di produrre su un display immagini di oggetti tridimensionali. La libreria fornisce, quindi a livello di programmazione l interfaccia per accedere all hardware grafico disponibile su una determinata piattaforma, pertanto essa è una API (Application Programming Interface). Le funzioni della libreria OpenGL tuttavia non contengono alcun riferimento diretto all hardware o al sistema operativo, per garantire la portabilità del codice fra sistemi diversi. Si suppone semplicemente che sia disponibile un area di memoria per il framebuffer (commentato di seguito) e che il sistema operativo abbia la capacità di allocare almeno parte di essa (una finestra) alle funzioni della OpenGL che vi disegneranno dentro. La portabilità è anche rafforzata dal fatto che se per una macchina esiste una implementazione conforme della OpenGL, essa deve essere completa, cioè contenere tutte le funzioni definite dalle specifiche (ovvero non esistono subset di OpenGL). Tuttavia un implementazione è libera di estendere le funzionalità standard con nuove capacità. Questo consente di mantenere l API aggiornata rispetto alle innovazioni che avvengono nell hardware grafico e negli algoritmi di rendering. Un altra caratteristica fondamentale è che la libreria OpenGL definisce una macchina a stati. Un programma può porre una transizione fra due stati abilitando o disabilitando uno dei modi con cui avviene il rendering (ad esempio disattivando tutte le luci presenti nella scena). Tutte le primitive geometriche vengono disegnate in base allo stato corrente: se ad esempio viene impostato il colore rosso, tutti gli oggetti seguenti verranno visualizzati in rosso. L aggiornamento dello stato comporta un impatto sulle prestazioni. Per creare una scena la libreria OpenGL si basa su due concetti fondamentali: Primitive e illuminazione, commentati nei seguenti paragrafi.

16 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag Primitive La libreria ammette un certo numero di primitive elementari per l immissione dei dati geometrici nel processo di rendering: punti, linee, triangoli, quadrilateri, poligoni. Ciascuna primitiva è caratterizzata da una topologia e da un numero di vertici, che può essere minimizzato utilizzando delle primitive speciali (strip e fan). Per una strip (striscia) di triangoli consecutivi è sufficiente ad esempio specificare i 3 vertici del primo triangolo, poi un vertice per ciascuno dei triangoli seguenti. Per ogni vertice si deve successivamente calcolare la posizione rispetto all osservatore, secondo la composizione di trasformazioni negli spazi del modello, della scena e dell osservatore, tenendo conto della prospettiva e delle caratteristiche della finestra di visualizzazione. 2.2 Illuminazione: L illuminazione nella libreria OpenGL è basata sul modello seguente. Per ogni vertice di ciascuna primitiva il colore viene calcolato in base alle proprietà del materiale e a quelle delle luci. La libreria scompone l effetto delle luci nelle tre componenti RGB: ogni sorgente luminosa è caratterizzata (tramite un valore compreso tra 0 e 255) dalla quantità emessa di luce rossa, verde o blu ed ogni materiale dalla percentuale riflessa di ciascun colore. Inoltre per ogni colore vengono individuati quattro contributi: 1. ambientale: luce che non proviene da nessuna direzione precisa, in quanto ha subito un gran numero di riflessioni e diffusioni. Agisce come un sottofondo che illumina tutti gli oggetti allo stesso modo. 2. diffuso: luce che proviene da una direzione specifica ma che viene riflessa in modo omogeneo in tutte le direzioni. 3. speculare: luce che proviene da una direzione specifica e che viene riflessa come singolo raggio secondo l angolo di incidenza. È responsabile dei riflessi sull acqua o sui metalli. 4. emissivo: è una componente luminosa che viene considerata solo se l oggetto emette luce propria (ad esempio se è incandescente). La libreria OpenGL permette solo tre tipi di sorgenti luminose: 1. direzionali: la sorgente viene considerata come un punto all infinito: i raggi prodotti sono dunque paralleli, per cui è sufficiente specificarne il vettore di direzione. 2. puntiformi: i raggi vengono generati uniformemente in tutte le direzioni a partire da un punto di cui si deve specificare la posizione all interno della scena. 3. spot: come le sorgenti puntiformi ma l emissione dei raggi è limitata ad un cono con vertice nel punto della sorgente. Occorre definire quindi anche l angolo di apertura del cono.

17 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 16 È anche possibile specificare un fattore di attenuazione dell intensità luminosa in funzione della distanza dalla sorgente. Il modello di illuminazione adottato dalla libreria è dunque notevolmente approssimato rispetto alla realtà fisica. Ciononostante, l effetto visivo è di ottima qualità. 2.3 Utilizzo delle librerie OpenGL nella libreria grafica Per trasformare il robot tridimensionale in un immagine bidimensionale lo si scompone dapprima nei suoi link (si vedano le Appendici A e B). Ogni link è dunque caratterizzato da un set di vertici. Questi vertici sono usati come primitive per la libreria OpenGL, che riproduce sul video l intero link dopo aver applicato le dovute rotazioni. Per rendere fluida la visualizzazione del movimento del robot, è stata scelta una tecnica classica usata nei videogiochi, che prevede l utilizzazione di due pagine video. I driver grafici consentono la lavorazione parallela su due pagine video (utilizzando il framebuffer): la prima pagina è quella che appare sul monitor, la seconda pagina è invisibile all utente, che può essere utilizzata come se fosse una pagina normale. Sulla base di queste due pagine video, per realizzare un animazione, si disegna ogni nuovo fotogramma sulla pagina invisibile. Una volta completato il tracciamento del fotogramma la pagina invisibile e quella visibile vengono scambiate. Di conseguenza, scompare dallo schermo la vecchia pagina (che ora diventa la pagina invisibile) e la nuova pagina (nuovo fotogramma) appare in modo quasi istantaneo. Ripetendo questa procedura per tutto il movimento del robot, si crea un animazione fluida. Figura Uso delle pagine video

18 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag Applicazione della legge prospettica nella libreria La legge prospettica commentata nel Capitolo 1 viene utilizzata nelle OpenGL tramite la procedura gluperspective() ed implementata nella nostra libreria tramite la seguente procedura: //Imposta il piano visuale. //W=Larghezza pagina video //H=Lunghezza pagina video static void ScortReshape(int w, int h) glviewport(0,0,(glsizei)w, (GLsizei) h); glmatrixmode(gl_projection); glloadidentity(); gluperspective(65.0,(glfloat)w/(glfloat) h, 1.0,100.0); glmatrixmode(gl_modelview); glloadidentity(); gltranslatef(0.0,0.0,-5.0); Prima di descrivere come opera la funzione, riportata sopra, è necessario spiegare il funzionamento delle OpenGL. Tutto quello che viene inserito in una scena, oggetti, luci, osservatore è regolato da matrici che ne caratterizzano la posizione. Tali matrici vengono usate dalla libreria OpenGL per agire sulle varie trasformazioni (rotazioni, traslazioni, ridimensionamenti, etc.). Per completare il tracciamento di un fotogramma è dunque necessario procedere secondo i seguenti passi: Passo1: Impostare la pagina video su cui si deve lavorare. Passo2: Impostare la matrice di proiezione come la matrice su cui operare. Passo3: Impostare la matrice corrente uguale alla matrice identità. In questo modo si annullano tutti gli eventuali cambiamenti di coordinate precedenti, resettando la matrice. Passo4: Impostare i parametri per la visualizzazione prospettica: -Fovy=65.0-Angolo del campo visuale sul piano x-z. -Aspect=w/h-Rapportro tra Larghezza e Lunghezza. -Near=1.0-Distanza tra osservatore e piano di visualizzazione. -Far=100.0-Distanza tra osservatore e piano di osservazione. Passo5: Impostare la matrice dei modelli come la matrice su cui lavorare. Passo6: Resettare la matrice corrente. Passo7: Traslare tutti gli oggetti del piano.

19 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag Rotazione dei corpi visualizzati L utilizzo della libreria OpenGL, in virtù della caratteristica di lavorare con matrici, consente di ruotare i link, in maniera semplificata, utilizzando le nozioni di matrice di rotazione e traslazione. //Link2 glrotatef ((GLfloat)Angoli[1], 0.0, 0.0, 1.0); gltranslatef(0,0,+0.217); glrotatef ((GLfloat)Angoli[2], 0.0, 1.0, 0.0); gltranslatef(0.0,0.0,-0.217); //Rz //T2 //Ry //T1 In particolare, la libreria OpenGL utilizza le chiamate gltranslate() per le traslazioni e glrotate() per le rotazioni. Bisogna ricordare che viene utilizzata una singola matrice per esprimere la trasformazione di coordinate. Inizialmente essa coincide con la matrice identità, poi viene moltiplicata progressivamente per le matrici associate alle varie trasformazioni prima di eseguire il con le coordinate dei vertici associati al link in oggetto. Ogni traslazione o rotazione deve essere quindi considerata come relativa alla trasformazione di coordinate definita dalla matrice corrente e non come assoluta rispetto allo spazio del modello (rappresentazione dell intera scena).

20 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 19 Capitolo 3 Visualizzazione 3D del robot Fino ad ora è stata commentata la struttura generale della libreria grafica, sviluppata in questo lavoro, e come questa adoperi le chiamate alla libreria OpenGL. In questo capitolo ci occuperemo di descrivere più in specifico la struttura di un robot articolato e come effettivamente la libreria riesca a rappresentare il robot tridimensionalmente. 3.1 Descrizione del robot articolato Un robot può essere condiserato come una macchina costituita da un certo numero di elementi, detti link, uniti tra loro tramite giunti, che consentono tra loro un movimento relativo. Esistono due tipi di giunto utilizzati normalmente in robotica: 1. giunto prismatico P: che consente un moto lineare relativo tra due link adiacenti; 2. giunto rotoidale R: che consente un moto rotatorio relativo tra due link adiacenti; La geometria del robot è definita dal numero dei link e dalla tipologia dei giunti. Con il termine gradi di libertà di un robot si intende il numero di movimenti di cui il robot è dotato; ciascun grado di libertà è ottenuto tramite un giunto che unisce due link adiacenti. Ogni coppia giunto-link, rappresenta dunque un grado di libertà. Quindi per un manipolatore con N gradi di libertà ci sono N coppie giunto-link. I giunti e i link sono numerati in successione partendo dalla base; così, ad esempio, il giunto 1 costituisce il punto di connessione fra il link1 e la base. Poiché i movimenti di un robot sono spesso simili a quelli di un braccio umano, anche la denominazione dei vari link e giunti che lo costituiscono segue spesso quella comunemente adottata nella anatomia umana. Nella Figura si può notare come, per una struttura di un robot detta antropomorfa, si possano individuare, oltre al basamento, il corpo che rappresenta l elemento principale, la spalla, che unisce il braccio alla base, e successivamente si ha il gomito, il polso su cui viene montato l effettore che, nel caso in cui il robot sia utilizzato per la presa e manipolazione di oggetti, viene denominato mano (o pinza).

21 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 20 Figura Nomenclatura delle componenti di un robot La Tabella riassume le caratteristiche relative ad alcune strutture classiche con cui sono realizzati i robot industriali. Esse differiscono fondamentalmente nella disposizione, nel tipo e nel numero di coppie cinematiche usate. Tipo Successione coppie Num. g.d.l. Applicazioni principali cinematiche base Cilindrico R P P 3 Asservimento Polare R R P 3 Asservimento Cartesiano P P P 3 Asservimento-Montaggio A portale P P P 2-3 Montaggio-Taglio Articolato R R R 3-6 Saldatura-Verniciatura-Taglio Scara R R P 2-4 Montaggio Tabella Tipologie di Robot I due robot Scortec-ER I e Scorbot-ER sono robot articolati (anche detti antropomorfi) che possiedono cinque gradi di libertà. Questa tipologia di robot ha una struttura versatile e frequentemente utilizzata nell industria meccanica. 3.2 Motore elettrico in corrente continua Un robot antropomorfo, come precedentemente detto, è costituito da giunti rotoidali che legano link adiacenti, permettendo loro di muoversi l uno relativamente all altro. In particolare, questo movimento è comandato da opportuni motori che, nel caso dei robot disponibili presso il nostro laboratorio, sono in corrente continua. Un motore elettrico in corrente continua è generalmente contenuto in una cassa cilindrica. Dalla base del cilindro fuoriesce l albero motore; sulla superficie laterale, in prossimità della base opposta, sporgono due portaspazzole.

22 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 21 Figura Motore elettrico in corrente continua La cassa racchiude lo statore e il rotore. Il primo è solidale con la cassa e ha lo scopo di produrre un campo magnetico stazionario. Nei motori di piccola potenza può essere costituito da un magnete permanente, altrimenti è un elettromagnete costituito da un nucleo internamente cavo con alcuni avvolgimenti di eccitazione. Il rotore, detto anche armatura, è calettato sull albero e può ruotare liberamente su cuscinetti fissati alle basi opposte della cassa. Esso è costituito da un cilindro di materiale ferromagnetico, realizzato con lamelle circolari elettricamente isolate una dall altra per ridurre le correnti parassite. La superficie laterale del rotore è incisa da numerose cave equidistanti, nelle quali sono alloggiati i conduttori isolati che formano l avvolgimento d armatura. Questo è formato da numerose matasse di più spire che si estendono da una cava a quella diametralmente opposta; le matasse sono collegate alle lamelle del collettore e, tramite queste, in serie tra loro. Il collettore ruota tra due spazzole, che sono solidali con la cassa e permettono il passaggio della corrente nell avvolgimento d armatura. Figura Rotore di un motore in corrente continua Lo statore crea un campo magnetico stazionario che, in prima approssimazione, si può supporre uniforme. Consideriamo un conduttore disposto lungo una cava rotorica e percorso da corrente continua: su questo conduttore agisce una forza perpendicolare al piano individuato dal campo e dalla corrente e questa forza ha una componente tangente al rotore. Questa componente tangenziale genera una coppia tanto maggiore quanto maggiore è l allineamento tra le spire rotoriche e il campo magnetico. Tramite

23 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 22 il collettore a lamelle, le spire rotoriche commutano adeguatamente per garantire la connessione delle spazzole con la spira ad allineamento massimo. In tal modo, la coppia generata è quasi costante. I motori elettrici appena descritti possono erogare potenze che vanno da pochi milliwatt ai megawatt. Ogni motore ha dei limiti caratteristici: un limite massimo di velocità angolare, dovuto a problemi di commutazione sul collettore; un limite massimo di tensione d alimentazione, dovuto all isolamento dei conduttori e alla struttura del collettore; un limite massimo di coppia, dovuto alla saturazione del circuito magnetico d armatura; un limite massimo di potenza elettrica assorbita, che dipende dalla velocità di rotazione e dalle modalità di raffreddamento. Entro questi limiti, il motore elettrico trasforma l energia elettrica in energia meccanica con un rendimento molto alto, che in prima approssimazione si può assumere unitario. 3.3 Encoder incrementali Per consentire la misura della posizione angolare di ogni giunto del robot (il quale è generalmente attuato tramite un motore), si utilizzano spesso dispositivi elettromeccanici connessi all albero del motore (cioè indirettamente ai due link adiacenti al giunto) denominati encoder. L'encoder è un apparato elettromeccanico che converte la posizione angolare del suo asse rotante in un segnale elettrico digitale. Collegato ad opportuni circuiti elettronici e con appropriate connessioni meccaniche, l'encoder è in grado di misurare spostamenti angolari, movimenti rettilinei e circolari nonchè velocità di rotazione. Gli encoder utilizzati dai due robot, oggetto di questa tesi, sono incrementali. Essi segnalano gli incrementi (variazioni) rilevabili rispetto a una posizione di riferimento. Dal punto di vista costruttivo, un encoder è costituito da un disco di materiale plastico, sul quale sono stati ricavati dei fori o, più comunemente, alcune zone particolarmente trasparenti attraverso le quali è possibile il passaggio di un fascio luminoso. Da un lato e dall altro del disco sono inoltre disposte due coppie di sensori, ognuna costituita da un trasmittente e un ricevente, che sono in grado di individuare il passaggio dei fori applicati sul disco. Figura Encoder Incrementale

24 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 23 La geometria del disco è in modo tale che le zone opache e le zone trasparenti abbiano la stessa larghezza. Questo accorgimento fa si che, posizionando le due coppie di sensori opportunamente, le forme d onda in uscita dai sensori siano del tipo indicato in Figura Figura Segnali dell encoder incrementale. A seconda del verso di rotazione del motore, lo stato logico dei due segnali provenienti dai sensori è diverso: in corrispondenza del fronte di salita del segnale A infatti, in un caso il segnale B è alto, nell altro caso è basso. Questa proprietà permette di decodificare con successo non solo la rotazione ma anche il verso di rotazione, in base alle letture fatte dal sensore. 3.4 Modalità di rappresentazione dei link 3D Come già accennato, per realizzare la rappresentazione 3D, il robot è stato scomposto in più parti. Ognuna di esse è stata poi suddivisa nei suoi vertici fondamentali. I vertici, di quasi tutte le parti, sono stati inseriti in tre vettori, uno per ogni coordinata. //Link2 static short int Link2X[49]=0.0,-10.0,-10.0,+10.0,+10.0,+20.0, +20.0,+25.0,+25.0,+25.0,+25.0,+25.0, +35.0,+35.0,+35.0,+35.0,+45.0,+45.0, +50.0,+50.0,+45.0,+45.0,+35.0,+35.0, +5.0,+5.0,-5.0,-5.0,-35.0,-35.0, -45.0,-45.0,-50.0,-50.0,-45.0,-45.0, -35.0,-35.0,-35.0,-35.0,-25.0,-25.0, -25.0,-25.0,-25.0,-20.0,-20.0,0.0, 0.0; static short int Link2Y[49]=0.0,+0.0,+30.0,+0.0,+30.0,+0.0,+30.0, +0.0,+30.0,+0.0,+30.0,+40.0,+0.0, +40.0,+0.0,+40.0,+5.0,+40.0,+10.0, +40.0,+20.0,+40.0,+25.0,+40.0,+30.0, +40.0,+30.0,+40.0,+25.0,+40.0,+20.0, +40.0,+10.0,+40.0,+5.0,+40.0,+0.0, +40.0,+0.0,+40.0,+0.0,+30.0,+40.0, +0.0,+30.0,+0.0,+30.0,0.0,0.0; static short int Link2Z[49]=0.0,197.0,197.0,197.0,197.0,207.0, 207.0,217.0,217.0,317.0,317.0,317.0, 327.0,327.0,367.0,367.0,377.0,377.0,

25 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag ,397.0,417.0,417.0,432.0,432.0, 447.0,447.0,447.0,447.0,432.0,432.0, 417.0,417.0,397.0,397.0,377.0,377.0, 367.0,367.0,327.0,327.0,317.0,317.0, 317.0,217.0,217.0,207.0,207.0,397.0, 332.0; Alcune parti grazie alla loro forma particolare (ad esempio gli encoder), non necessitano di strutture che contengano, preventivamente, i valori dei loro vertici. Per alcune tipologie di oggetti, infatti i vertici possono essere quasi tutti calcolati con semplici procedure, godendo questi di particolari proprietà di simmetria. Figura Encoder0 Ad esempio il primo motoriduttore, denominato encoder0 (nella libreria grafica, i motoriduttori sono denominati con la dicitura encoder0, encoder1, etc.), è formato da due cilindri. La sua rappresentazione può partire con il calcolo dei vertici del primo cilindro. Questi vengono inseriti in maniera automatica in vettori, come quelli riportati sopra. Di seguito è riportata la relativa funzione C (si noti che per semplicità sono stati inseriti come vertici anche quelli che rappresentano i due cerchi che chiudono la figura cilindrica). static void Carica_Encoder0() x1=(25*cos((m_pi*i)/360))/1000; y1=(25*sin((m_pi*i)/360))/1000; x2=(25*cos((m_pi*(i+60))/360))/1000; y2=(25*sin((m_pi*(i+60))/360))/1000; Encoder0X[k]=x1; Encoder0Y[k]=y1-0.07; Encoder0Z[k]=0.07; k++; Encoder0X[k]=x1; Encoder0Y[k]=y1-0.07; Encoder0Z[k]=0.1; k++; Encoder0X[k]=x2; Encoder0Y[k]=y2-0.07; Encoder0Z[k]=0.1; k++; Encoder0X[k]=x2; Encoder0Y[k]=y2-0.07; Encoder0Z[k]=0.07;

26 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 25 k++; x1=(25*cos((m_pi*i)/360))/1000; y1=(25*sin((m_pi*i)/360))/1000; Encoder0X[k]=x1; Encoder0Y[k]=y1-0.07; Encoder0Z[k]=0.1; k++; x1=(25*cos((m_pi*i)/360))/1000; y1=(25*sin((m_pi*i)/360))/1000; Encoder0X[k]=x1; Encoder0Y[k]=y1-0.07; Encoder0Z[k]=0.07; k++; La rappresentazione del motoriduttore, encoder0, prosegue con la descrizione del secondo cilindro, che è analoga alla precedente e non viene pertanto riportata qui. Infine, l oggetto parallelepipedonale antistante ai due cilindri (che è effettivamente l encoder) conclude la descrizione. Avendo questo una struttura non simmetrica, i relativi vertici, sono stati inseriti in modo manuale: Encoder0X[144]=0.017; Encoder0Y[144]=-0.080; Encoder0Z[144]=0.155; Encoder0X[145]=0.017; Encoder0Y[145]=-0.080; Encoder0Z[145]=0.175; Encoder0X[146]=0.010; Encoder0Y[146]=-0.087; Encoder0Z[146]=0.175; Encoder0X[147]=-0.030; Encoder0Y[147]=-0.087; Encoder0Z[147]=0.175; Encoder0X[148]=-0.032; Encoder0Y[148]=-0.080; Encoder0Z[148]=0.175; Encoder0X[149]=-0.032; Encoder0Y[149]=-0.080; Encoder0Z[149]=0.155; Encoder0X[150]=-0.030; Encoder0Y[150]=-0.087; Encoder0Z[150]=0.155; Encoder0X[151]=0.010; Encoder0Y[151]=-0.087; Encoder0Z[151]=0.155; Encoder0X[152]=0.017; Encoder0Y[152]=-0.060; Encoder0Z[152]=0.155; Encoder0X[153]=0.017; Encoder0Y[153]=-0.060; Encoder0Z[153]=0.175; Encoder0X[154]=0.010; Encoder0Y[154]=-0.053; Encoder0Z[154]=0.175;

27 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 26 Encoder0X[155]=-0.030; Encoder0Y[155]=-0.053; Encoder0Z[155]=0.175; Encoder0X[156]=-0.032; Encoder0Y[156]=-0.060; Encoder0Z[156]=0.175; Encoder0X[157]=-0.032; Encoder0Y[157]=-0.060; Encoder0Z[157]=0.155; Encoder0X[158]=-0.030; Encoder0Y[158]=-0.053; Encoder0Z[158]=0.155; Encoder0X[159]=0.010; Encoder0Y[159]=-0.053; Encoder0Z[159]=0.155; Inseriti i vertici nelle strutture rimane solo il compito di riunirli per creare un oggetto completo. Per fare questo si opera nello stesso modo per tutti i link. Si costruisce una procedura che contiene un vettore statico che identifica l indice del struttura che contiene i vertici che formano una faccia dell oggetto. Un vettore così costruito fornisce la sequenza di vertici da unire. Di seguito è riportato un esempio: static void Link5b() int punti1[237]=0,2,10,11,3,0,6,7,15,14,0,1,2,3,4,0,1,4, 5,8,0,5,8,7,6,0,9,10,11,12,0,12,9,16, 13,0,13,16,15,14,0,3,11,12,13,14,6,5, 4,0,17,21,22,18,0,20,24,23,19,0,17,18, 19,20,0,21,22,23,24,0,17,21,24,20,0, 25,31,32,26,0,18,22,31,25,0,30,36,35, 29,0,30,36,23,19,0,18,25,26,29,30,19, 0,22,31,32,35,36,23,0,26,32,35,29,0, 28,34,60,54,0,29,35,59,53,0,29,28,54, 53,0,35,34,60,59,0,37,43,44,38,0,41,47, 46,40,0,52,58,57,51,0,53,49,50,51,52, 0,55,56,57,58,59,0,49,55,59,53,0,50,56, 57,51,0,51,57,58,52,0,26,32,43,37,0,27, 33,48,42,0,27,26,37,42,0,33,32,43,48, 0,49,55,56,50,0,39,45,44,38,0,53,52,58, 59,0,37,38,39,40,41,0,43,44,45,46,41, 0,41,47,43,37,0,40,46,45,39,0,39, 45,44,38; int i,j; for (i=1; i < 237;i++) for (j=i; j < 237; j++) if (punti1[j]==0) j=999; else glvertex3f((glfloat)link5bx[punti1[j]]/1000, (GLfloat)Link5bY[punti1[j]]/1000, (GLfloat)Link5bZ[punti1[j]]/1000);

28 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 27 i++; 3.5 Modalità di visualizzazione dei link 3D La maggiore difficoltà nel rappresentare un oggetto articolato come un robot è di riuscire ad ordinare la visualizzazione degli oggetti. In particolare, si devono prima disegnare i link che sono dietro alla struttura, e poi i link che stanno davanti a tutti. Per un oggetto statico questo è banale, dato che una volta stabilito l ordine di visualizzazione, esso non cambia mai; ma per un oggetto dinamico come un robot, tale procedura può risultare difficile. Anche in questo caso l uso della libreria OpenGL semplifica il lavoro. La libreria permette di ordinare gli oggetti in una lista e successivamente è la stessa libreria a calcolare l ordine di visualizzazione in base alla posizione assunta dal robot. In dettaglio, vengono dapprima generate le variabili relative ad ogni parte del robot: static GLuint BaseList, PianoList,Link1aList,Link1bList, Link2List,Link3List,Link4List,Link5aList, Link5bList; static GLuint Encoder0aList,Encoder0bList,Encoder1aList, Encoder1bList,Encoder2aList,Encoder2bList, Encoder3aList,Encoder3bList,Encoder4aList, Encoder4bList; Ogni sottoparte del robot viene identificata con un indice di lista, inserito in una variabile. //PIANO PianoList = glgenlists(1); glnewlist(pianolist, GL_COMPILE); Piano(); glendlist(); //BASE BaseList = glgenlists(1);

29 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 28 glnewlist(baselist, GL_COMPILE); Base1(); glendlist(); //LINK1a Link1aList = glgenlists(1); glnewlist(link1alist, GL_COMPILE); Link1a(); glendlist(); Per generare un indice di lista diverso per ogni link si usa la funzione glgenlists(). Tra la chiamata glnewlist() e glendlist() vengono inseriti tutti gli oggetti che costituiscono un corpo unico, diventando parte di una stessa lista. Quando è necessario rappresentare per intero il robot, tramite la libreria si possono analizzare le varie liste, identificando la posizione sullo schermo delle parti corrispondenti, successivamente ordinarli in base alla prospettiva e disegnare dapprima quelli più lontani fino ad arrivare a quelli che si trovano davanti a tutti gli altri. 3.6 Calcolo del movimento dei link Ni paragrafi precedenti è stata già discussa la procedura per realizzare una generica rotazione di un link. A titolo di esempio, analizziamo qui in dettaglio come viene descritto il movimento, per esempio, del link4 (Wrist pitch). La procedura del movimento del link viene interamente inserita tra la chiamata glpushmatrix() e glpopmatrix(). In questo modo tutte le operazioni tra le matrici vengono delimitate al link specifico, non influenzando gli altri. //Link4 glpushmatrix (); glscalef(4.0+zoom,4.0+zoom,4.0+zoom); gltranslatef (TX, TY, TZ); glrotatef (300+(GLfloat)Ang_ruota[1], 1.0, 0.0, 0.0); glrotatef ((GLfloat)Ang_ruota[2], 0.0, 1.0, 0.0); glrotatef ((GLfloat)Ang_ruota[3], 0.0, 0.0, 1.0); gltranslatef (-TX, -TY, -TZ); glrotatef ((GLfloat)Angoli[1], 0.0, 0.0, 1.0); gltranslatef(0,0,+0.217); glrotatef ((GLfloat)Angoli[2], 0.0, 1.0, 0.0); gltranslatef(0.0,0.0,-0.217); gltranslatef(0,0,+0.397); glrotatef ((GLfloat)Angoli[3], 0.0, 1.0, 0.0); gltranslatef(0.0,0.0,-0.397); gltranslatef(0,0,+0.572); glrotatef ((GLfloat)Angoli[4], 0.0, 1.0, 0.0); gltranslatef(0.0,0.0,-0.572);

30 Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di robot articolati pag. 29 Abbiamo già parlato del funzionamento delle procedure gltranslatef() e glrotatef(), manca solo da descrivere la procedura glscalef(). Questa non fa altro che ridimensionare il link, permettendo l operazione di zoom dell oggetto. In dettaglio, la procedura compie i seguenti passi (dato che la libreria OpenGL inserisce tutte le trasformazioni, prima di eseguirle, in uno stack FILO, queste saranno eseguite partendo dall ultima trasformazione inserita): Traslare il link, portando il centro di rotazione del link nel centro di rotazione del link-1. Ruotare intorno all asse y di un angolo pari a Angoli[4], dove Angoli[4] identifica l angolo di rotazione del link4. Riportare il link nella posizione iniziale. Traslare il link, portando il centro di rotazione del link nel centro di rotazione del link-2. Ruotare intorno all asse y di un angolo pari a Angoli[3], dove Angoli[3] identifica l angolo di rotazione del link3. Riportare il link nella posizione iniziale. Traslare il link, portando il centro di rotazione del link nel centro di rotazione del link-3. Ruotare intorno all asse y di un angolo pari a Angoli[2], dove Angoli[2] identifica l angolo di rotazione del link2. Riportare il link nella posizione iniziale. Traslare il link, riportandolo nella posizione centrale, se nel programma sono stati modificati i parametri di centratura del robot. Ruotare intorno all asse z di un angolo pari a Ang_ruota[3], dove Ang_ruota[3] identifica l angolo di visuale dell asse z. Ruotare intorno all asse y di un angolo pari a Ang_ruota[2], dove Ang_ruota[2] identifica l angolo di visuale dell asse y. Ruotare intorno all asse x di un angolo pari a Ang_ruota[1]+300, dove Ang_ruota[1] identifica l angolo di visuale dell asse x e 300 e l angolo di visuale di partenza. Riportare il link nella posizione iniziale. Riscalare del link. Per la rappresentazione dell oggetto si usano le seguenti chiamate: //Corpo glenable(gl_polygon_offset_fill); gldisable(gl_lighting); glcolor3ub(20,20,20); glpolygonoffset(1.0,1.0); glcalllist (Link4List); gldisable(gl_polygon_offset_fill); glenable(gl_lighting); //Contorni gldisable(gl_lighting);

6 Cenni sulla dinamica dei motori in corrente continua

6 Cenni sulla dinamica dei motori in corrente continua 6 Cenni sulla dinamica dei motori in corrente continua L insieme di equazioni riportato di seguito, costituisce un modello matematico per il motore in corrente continua (CC) che può essere rappresentato

Dettagli

Esempi di funzione. Scheda Tre

Esempi di funzione. Scheda Tre Scheda Tre Funzioni Consideriamo una legge f che associa ad un elemento di un insieme X al più un elemento di un insieme Y; diciamo che f è una funzione, X è l insieme di partenza e X l insieme di arrivo.

Dettagli

La propagazione delle onde luminose può essere studiata per mezzo delle equazioni di Maxwell. Tuttavia, nella maggior parte dei casi è possibile

La propagazione delle onde luminose può essere studiata per mezzo delle equazioni di Maxwell. Tuttavia, nella maggior parte dei casi è possibile Elementi di ottica L ottica si occupa dello studio dei percorsi dei raggi luminosi e dei fenomeni legati alla propagazione della luce in generale. Lo studio dell ottica nella fisica moderna si basa sul

Dettagli

13. Campi vettoriali

13. Campi vettoriali 13. Campi vettoriali 1 Il campo di velocità di un fluido Il concetto di campo in fisica non è limitato ai fenomeni elettrici. In generale il valore di una grandezza fisica assegnato per ogni punto dello

Dettagli

Trasformazioni Geometriche 1 Roberto Petroni, 2011

Trasformazioni Geometriche 1 Roberto Petroni, 2011 1 Trasformazioni Geometriche 1 Roberto etroni, 2011 Trasformazioni Geometriche sul piano euclideo 1) Introduzione Def: si dice trasformazione geometrica una corrispondenza biunivoca che associa ad ogni

Dettagli

GIROSCOPIO. Scopo dell esperienza: Teoria fisica. Verificare la relazione: ω p = bmg/iω

GIROSCOPIO. Scopo dell esperienza: Teoria fisica. Verificare la relazione: ω p = bmg/iω GIROSCOPIO Scopo dell esperienza: Verificare la relazione: ω p = bmg/iω dove ω p è la velocità angolare di precessione, ω è la velocità angolare di rotazione, I il momento principale d inerzia assiale,

Dettagli

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

Dettagli

PRINCIPI DI TRASDUZIONE

PRINCIPI DI TRASDUZIONE PRINCIPI DI TRASDUZIONE Passiva Trasduzione resistiva Trasduzione capacitiva Trasduzione induttiva Attiva Trasduzione fotovoltaica Trasduzione piezoelettrica Trasduzione elettromagnetica Trasduzione fotoconduttiva

Dettagli

Tutorial 3DRoom. 3DRoom

Tutorial 3DRoom. 3DRoom Il presente paragrafo tratta il rilievo di interni ed esterni eseguito con. L utilizzo del software è molto semplice ed immediato. Dopo aver fatto uno schizzo del vano si passa all inserimento delle diagonali

Dettagli

Processo di rendering

Processo di rendering Processo di rendering Trasformazioni di vista Trasformazioni di vista Il processo di visione in tre dimensioni Le trasformazioni di proiezione 2 Rendering nello spazio 2D Il processo di rendering (visualizzazione)

Dettagli

Test, domande e problemi di Robotica industriale

Test, domande e problemi di Robotica industriale Test, domande e problemi di Robotica industriale 1. Quale, tra i seguenti tipi di robot, non ha giunti prismatici? a) antropomorfo b) cilindrico c) polare d) cartesiano 2. Un volume di lavoro a forma di

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

APPUNTI SUL CAMPO MAGNETICO ROTANTE

APPUNTI SUL CAMPO MAGNETICO ROTANTE APPUTI UL CAPO AGETICO ROTATE Campo agnetico Rotante ad una coppia polare Consideriamo la struttura in figura che rappresenta la vista, in sezione trasversale, di un cilindro cavo, costituito da un materiale

Dettagli

DISEGNO TECNICO INDUSTRIALE

DISEGNO TECNICO INDUSTRIALE DISEGNO TECNICO INDUSTRIALE COSTRUZIONI GEOMETRICHE Anno Accademico 2014-2015 Le Costruzioni Geometriche Nello studio del disegno tecnico, inteso come linguaggio grafico comune fra i tecnici per la progettazione

Dettagli

Capitolo V : Il colore nelle immagini digitali

Capitolo V : Il colore nelle immagini digitali Capitolo V : Il colore nelle immagini digitali Lavorare con il colore nelle immagini digitali L uso dei colori nella visione computerizzata e nella computer grafica implica l incorrere in determinate problematiche

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Sistema di diagnosi CAR TEST

Sistema di diagnosi CAR TEST Data: 30/09/09 1 di 7 Sistema di diagnosi CAR TEST Il sistema di diagnosi CAR TEST venne convenientemente utilizzato per: - verificare che la scocca di un veicolo sia dimensionalmente conforme ai disegni

Dettagli

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari A.A. 2012 2013 1 Introduzione Questo documento raccoglie i requisiti preliminari per il software di controllo

Dettagli

La spirale iperbolica: Fu descritta per la prima volta da Pierre Varignon (1654-1722). L equazione, espressa in coordinate polari, è del tipo:

La spirale iperbolica: Fu descritta per la prima volta da Pierre Varignon (1654-1722). L equazione, espressa in coordinate polari, è del tipo: Esistono delle forme geometriche che sono in grado, per complessi fattori psicologici non del tutto chiariti, di comunicarci un senso d equilibrio, di gradimento e di benessere. Tra queste analizzeremo

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

CONI, CILINDRI, SUPERFICI DI ROTAZIONE

CONI, CILINDRI, SUPERFICI DI ROTAZIONE CONI, CILINDRI, SUPERFICI DI ROTAZIONE. Esercizi x + z = Esercizio. Data la curva x, calcolare l equazione del cilindro avente γ y = 0 come direttrice e con generatrici parallele al vettore v = (, 0, ).

Dettagli

V= R*I. LEGGE DI OHM Dopo aver illustrato le principali grandezze elettriche è necessario analizzare i legami che vi sono tra di loro.

V= R*I. LEGGE DI OHM Dopo aver illustrato le principali grandezze elettriche è necessario analizzare i legami che vi sono tra di loro. LEGGE DI OHM Dopo aver illustrato le principali grandezze elettriche è necessario analizzare i legami che vi sono tra di loro. PREMESSA: Anche intuitivamente dovrebbe a questo punto essere ormai chiaro

Dettagli

Lezione 16. Motori elettrici: introduzione

Lezione 16. Motori elettrici: introduzione Lezione 16. Motori elettrici: introduzione 1 0. Premessa Un azionamento è un sistema che trasforma potenza elettrica in potenza meccanica in modo controllato. Esso è costituito, nella sua forma usuale,

Dettagli

L EQUILIBRIO UNIVERSALE dalla meccanica celeste alla fisica nucleare

L EQUILIBRIO UNIVERSALE dalla meccanica celeste alla fisica nucleare L EQUILIBRIO UNIVERSALE dalla meccanica celeste alla fisica nucleare Cap.4 giroscopio, magnetismo e forza di Lorentz teoria del giroscopio Abbiamo finora preso in considerazione le condizionidi equilibrio

Dettagli

19 Il campo elettrico - 3. Le linee del campo elettrico

19 Il campo elettrico - 3. Le linee del campo elettrico Moto di una carica in un campo elettrico uniforme Il moto di una particella carica in un campo elettrico è in generale molto complesso; il problema risulta più semplice se il campo elettrico è uniforme,

Dettagli

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R Studio di funzione Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R : allo scopo di determinarne le caratteristiche principali.

Dettagli

FIRESHOP.NET. Gestione del taglia e colore. www.firesoft.it

FIRESHOP.NET. Gestione del taglia e colore. www.firesoft.it FIRESHOP.NET Gestione del taglia e colore www.firesoft.it Sommario SOMMARIO Introduzione... 3 Configurazione iniziale... 5 Gestione delle varianti... 6 Raggruppamento delle varianti... 8 Gestire le varianti

Dettagli

Esponenziali elogaritmi

Esponenziali elogaritmi Esponenziali elogaritmi Potenze ad esponente reale Ricordiamo che per un qualsiasi numero razionale m n prendere n>0) si pone a m n = n a m (in cui si può sempre a patto che a sia un numero reale positivo.

Dettagli

UNIVERSITÀ DEGLI STUDI DI SIENA

UNIVERSITÀ DEGLI STUDI DI SIENA UNIVERSITÀ DEGLI STUDI DI SIENA FACOLTÀ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria Informatica, orientamento Robotica ed Automazione Tesi di Laurea Interazione Visuo-Aptica con Oggetti Deformabili

Dettagli

FIRESHOP.NET. Gestione Lotti & Matricole. www.firesoft.it

FIRESHOP.NET. Gestione Lotti & Matricole. www.firesoft.it FIRESHOP.NET Gestione Lotti & Matricole www.firesoft.it Sommario SOMMARIO Introduzione... 3 Configurazione... 6 Personalizzare le etichette del modulo lotti... 6 Personalizzare i campi che identificano

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

Il controllo della visualizzazione

Il controllo della visualizzazione Capitolo 3 Il controllo della visualizzazione Per disegnare in modo preciso è necessario regolare continuamente l inquadratura in modo da vedere la parte di disegno che interessa. Saper utilizzare gli

Dettagli

Forze come grandezze vettoriali

Forze come grandezze vettoriali Forze come grandezze vettoriali L. Paolucci 23 novembre 2010 Sommario Esercizi e problemi risolti. Per la classe prima. Anno Scolastico 2010/11 Parte 1 / versione 2 Si ricordi che la risultante di due

Dettagli

4. Proiezioni del piano e dello spazio

4. Proiezioni del piano e dello spazio 4. Proiezioni del piano e dello spazio La visualizzazione di oggetti tridimensionali richiede di ottenere una vista piana dell'oggetto. Questo avviene mediante una sequenza di operazioni. Innanzitutto,

Dettagli

Usando il pendolo reversibile di Kater

Usando il pendolo reversibile di Kater Usando il pendolo reversibile di Kater Scopo dell esperienza è la misurazione dell accelerazione di gravità g attraverso il periodo di oscillazione di un pendolo reversibile L accelerazione di gravità

Dettagli

Generazione campo magnetico

Generazione campo magnetico ELETTRO-MAGNETISMO Fra magnetismo ed elettricità esistono stretti rapporti: La corrente elettrica genera un campo magnetico; Un campo magnetico può generare elettricità. Generazione campo magnetico Corrente

Dettagli

Matematica e Statistica

Matematica e Statistica Matematica e Statistica Prova d esame (0/07/03) Università di Verona - Laurea in Biotecnologie - A.A. 0/3 Matematica e Statistica Prova di MATEMATICA (0/07/03) Università di Verona - Laurea in Biotecnologie

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Il concetto di valore medio in generale

Il concetto di valore medio in generale Il concetto di valore medio in generale Nella statistica descrittiva si distinguono solitamente due tipi di medie: - le medie analitiche, che soddisfano ad una condizione di invarianza e si calcolano tenendo

Dettagli

Capitolo 13: L offerta dell impresa e il surplus del produttore

Capitolo 13: L offerta dell impresa e il surplus del produttore Capitolo 13: L offerta dell impresa e il surplus del produttore 13.1: Introduzione L analisi dei due capitoli precedenti ha fornito tutti i concetti necessari per affrontare l argomento di questo capitolo:

Dettagli

Animazioni 3D. Informatica Grafica I. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D

Animazioni 3D. Informatica Grafica I. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D Informatica Grafica I Marco Gribaudo marcog@di.unito.it Animazioni 3D L'animazione 3D si basa sugli stessi principi dell'animazione tradizionale. Il filmato viene realizzato attraverso una sequenza di

Dettagli

Università degli studi di Messina facoltà di Scienze mm ff nn. Progetto Lauree Scientifiche (FISICA) Prisma ottico

Università degli studi di Messina facoltà di Scienze mm ff nn. Progetto Lauree Scientifiche (FISICA) Prisma ottico Università degli studi di Messina facoltà di Scienze mm ff nn Progetto Lauree Scientifiche (FISICA) Prisma ottico Parte teorica Fenomenologia di base La luce che attraversa una finestra, un foro, una fenditura,

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Lunghezza ocale. Donato Di Bello

Lunghezza ocale. Donato Di Bello F Lunghezza ocale Donato Di Bello Cinepresa, telecamera, macchina fotografica: tre strumenti tecnologici che utilizziamo per registrare la realtà intorno a noi o per trasformare in immagini la nostra fantasia.

Dettagli

METODO PER LA DESCRIZIONE DEL CAMPO MAGNETICO ROTANTE

METODO PER LA DESCRIZIONE DEL CAMPO MAGNETICO ROTANTE Ing. ENRICO BIAGI Docente di Tecnologie elettrice, Disegno, Progettazione ITIS A. Volta - Perugia ETODO PER LA DESCRIZIONE DEL CAPO AGNETICO ROTANTE Viene illustrato un metodo analitico-grafico per descrivere

Dettagli

Transitori del primo ordine

Transitori del primo ordine Università di Ferrara Corso di Elettrotecnica Transitori del primo ordine Si consideri il circuito in figura, composto da un generatore ideale di tensione, una resistenza ed una capacità. I tre bipoli

Dettagli

TRASFORMAZIONI GEOMETRICHE NEL PIANO. Parte 1

TRASFORMAZIONI GEOMETRICHE NEL PIANO. Parte 1 TRASFORMAZIONI GEOMETRICHE NEL PIANO Parte 1 La geometria è la scienza che studia la forma e l estensione dei corpi e le trasformazioni che questi possono subire. In generale per trasformazione geometrica

Dettagli

Nuovi oggetti grafici per la Visualizzazione del Tracker

Nuovi oggetti grafici per la Visualizzazione del Tracker Chapter 4 Nuovi oggetti grafici per la Visualizzazione del Tracker In questo capitolo illustrerò i nuovi oggetti grafici che ho sviluppato ed implementato nel software di visualizzazione di CMS. Prima

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

SymCAD/C.A.T.S. modulo Canali Schema

SymCAD/C.A.T.S. modulo Canali Schema SymCAD/C.A.T.S. modulo Canali Schema Il modulo Ventilazione Standard permette di effettuare la progettazione integrata (disegno e calcoli) in AutoCAD di reti di canali aria (mandata e ripresa). Il disegno

Dettagli

Fondamenti di macchine elettriche Corso SSIS 2006/07

Fondamenti di macchine elettriche Corso SSIS 2006/07 9.13 Caratteristica meccanica del motore asincrono trifase Essa è un grafico cartesiano che rappresenta l andamento della coppia C sviluppata dal motore in funzione della sua velocità n. La coppia è legata

Dettagli

3 GRAFICI DI FUNZIONI

3 GRAFICI DI FUNZIONI 3 GRAFICI DI FUNZIONI Particolari sottoinsiemi di R che noi studieremo sono i grafici di funzioni. Il grafico di una funzione f (se non è specificato il dominio di definizione) è dato da {(x, y) : x dom

Dettagli

LA CORRENTE ELETTRICA Prof. Erasmo Modica erasmo@galois.it

LA CORRENTE ELETTRICA Prof. Erasmo Modica erasmo@galois.it LA CORRENTE ELETTRICA Prof. Erasmo Modica erasmo@galois.it L INTENSITÀ DELLA CORRENTE ELETTRICA Consideriamo una lampadina inserita in un circuito elettrico costituito da fili metallici ed un interruttore.

Dettagli

Introduzione 2. Serie P20 4. Serie P28 6. Serie P35 8. Serie P39 10. Serie P42 12. Serie P57 14. Serie P60 16. Serie P85 18.

Introduzione 2. Serie P20 4. Serie P28 6. Serie P35 8. Serie P39 10. Serie P42 12. Serie P57 14. Serie P60 16. Serie P85 18. INDICE Introduzione 2 Serie P20 4 Serie P28 6 Serie P35 8 Serie P39 10 Serie P42 12 Serie P57 14 Serie P60 16 Serie P85 18 Serie P110 20 Schemi di connessione 22 Codifica 23 Note 24 Motori Passo Passo

Dettagli

a) Il campo di esistenza di f(x) è dato da 2x 0, ovvero x 0. Il grafico di f(x) è quello di una iperbole -1 1

a) Il campo di esistenza di f(x) è dato da 2x 0, ovvero x 0. Il grafico di f(x) è quello di una iperbole -1 1 LE FUNZIONI EALI DI VAIABILE EALE Soluzioni di quesiti e problemi estratti dal Corso Base Blu di Matematica volume 5 Q[] Sono date le due funzioni: ) = e g() = - se - se = - Determina il campo di esistenza

Dettagli

Motori brushless. Alimentando il motore e pilotando opportunamente le correnti I in modo che siano come nella figura 2 si nota come

Motori brushless. Alimentando il motore e pilotando opportunamente le correnti I in modo che siano come nella figura 2 si nota come 49 Motori brushless 1. Generalità I motori brushless sono idealmente derivati dai motori in DC con il proposito di eliminare il collettore a lamelle e quindi le spazzole. Esistono due tipi di motore brushless:

Dettagli

PROVE SULLA MACCHINA A CORRENTE CONTINUA

PROVE SULLA MACCHINA A CORRENTE CONTINUA LABORATORIO DI MACCHINE ELETTRICHE PROVE SULLA MACCHINA A CORRENTE CONTINUA PROVE SULLA MACCHINA A C. C. Contenuti Le prove di laboratorio che verranno prese in esame riguardano: la misura a freddo, in

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Forza. Forza. Esempi di forze. Caratteristiche della forza. Forze fondamentali CONCETTO DI FORZA E EQUILIBRIO, PRINCIPI DELLA DINAMICA

Forza. Forza. Esempi di forze. Caratteristiche della forza. Forze fondamentali CONCETTO DI FORZA E EQUILIBRIO, PRINCIPI DELLA DINAMICA Forza CONCETTO DI FORZA E EQUILIBRIO, PRINCIPI DELLA DINAMICA Cos è una forza? la forza è una grandezza che agisce su un corpo cambiando la sua velocità e provocando una deformazione sul corpo 2 Esempi

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi.

IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi. IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi. Negli ultimi anni, il concetto di risparmio energetico sta diventando di fondamentale

Dettagli

Gestione delle formazione

Gestione delle formazione IL SOFTWARE PER LA SICUREZZA E L AMBIENTE STRUMENTO Individuazione delle esigenze e programmazione della formazione Gestione delle formazione Il metodo di Risolvo per gestire un piano formativo dinamico

Dettagli

e-dva - eni-depth Velocity Analysis

e-dva - eni-depth Velocity Analysis Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa

Dettagli

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010 elementi di teoria dei grafi anno acc. 2009/2010 Grafi semplici Un grafo semplice G è una coppia ordinata (V(G), L(G)), ove V(G) è un insieme finito e non vuoto di elementi detti vertici o nodi di G, mentre

Dettagli

Progettazione del robot

Progettazione del robot Progettazione del robot MINDSTORMS EV3 Anche quest anno abbiamo deciso di usare unmattoncinolegomindstormsev3.sitratta di un evoluzione dellaversione precedentenxt2.0, migliorata sotto diversi aspetti.

Dettagli

Consideriamo due polinomi

Consideriamo due polinomi Capitolo 3 Il luogo delle radici Consideriamo due polinomi N(z) = (z z 1 )(z z 2 )... (z z m ) D(z) = (z p 1 )(z p 2 )... (z p n ) della variabile complessa z con m < n. Nelle problematiche connesse al

Dettagli

Laboratorio di Informatica di Base Archivi e Basi di Dati

Laboratorio di Informatica di Base Archivi e Basi di Dati Laboratorio di Informatica di Base Archivi e Basi di Dati Introduzione La memorizzazione dei dati è un aspetto molto importante dell informatica Oggi, mediante i computer, è possibile memorizzare e modificare

Dettagli

7 Applicazioni ulteriori

7 Applicazioni ulteriori 7 Applicazioni ulteriori 7 Applicazioni ulteriori 7.1 Strutture con maglie chiuse 7.1.1 Analisi cinematica Si consideri la struttura in figura 7.1: i gradi di libertà sono pari a l =3n c v =3 0 3 = 0,

Dettagli

GEOMETRIA DELLE MASSE

GEOMETRIA DELLE MASSE 1 DISPENSA N 2 GEOMETRIA DELLE MASSE Si prende in considerazione un sistema piano, ossia giacente nel pian x-y. Un insieme di masse posizionato nel piano X-Y, rappresentato da punti individuati dalle loro

Dettagli

Proposta di soluzione della prova di matematica Liceo scientifico di Ordinamento - 2014

Proposta di soluzione della prova di matematica Liceo scientifico di Ordinamento - 2014 Proposta di soluzione della prova di matematica Liceo scientifico di Ordinamento - 14 Problema 1 Punto a) Osserviamo che g (x) = f(x) e pertanto g () = f() = in quanto Γ è tangente all asse delle ascisse,

Dettagli

TECNICHE DI SIMULAZIONE

TECNICHE DI SIMULAZIONE TECNICHE DI SIMULAZIONE INTRODUZIONE Francesca Mazzia Dipartimento di Matematica Università di Bari a.a. 2004/2005 TECNICHE DI SIMULAZIONE p. 1 Introduzione alla simulazione Una simulazione è l imitazione

Dettagli

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali PowerPoint Come costruire una presentazione PowerPoint 1 Introduzione! PowerPoint è uno degli strumenti presenti nella suite Office di Microsoft! PowerPoint permette la realizzazione di presentazioni video

Dettagli

TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA

TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA SCUOLA PRIMARIA DI CORTE FRANCA MATEMATICA CLASSE QUINTA TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA L ALUNNO SVILUPPA UN ATTEGGIAMENTO POSITIVO RISPETTO ALLA MATEMATICA,

Dettagli

FUNZIONE REALE DI UNA VARIABILE

FUNZIONE REALE DI UNA VARIABILE FUNZIONE REALE DI UNA VARIABILE Funzione: legge che ad ogni elemento di un insieme D (Dominio) tale che D R, fa corrispondere un elemento y R ( R = Codominio ). f : D R : f () = y ; La funzione f(): A

Dettagli

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26 Indice L attività di recupero 6 Funzioni Teoria in sintesi 0 Obiettivo Ricerca del dominio e del codominio di funzioni note Obiettivo Ricerca del dominio di funzioni algebriche; scrittura del dominio Obiettivo

Dettagli

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag.

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag. Gentile Cliente, benvenuto nel Portale on-line dell Elettrica. Attraverso il nostro Portale potrà: consultare la disponibilità dei prodotti nei nostri magazzini, fare ordini, consultare i suoi prezzi personalizzati,

Dettagli

Introduzione all analisi dei segnali digitali.

Introduzione all analisi dei segnali digitali. Introduzione all analisi dei segnali digitali. Lezioni per il corso di Laboratorio di Fisica IV Isidoro Ferrante A.A. 2001/2002 1 Segnali analogici Si dice segnale la variazione di una qualsiasi grandezza

Dettagli

fit-up), cioè ai problemi che si verificano all atto dell assemblaggio quando non si riescono a montare i diversi componenti del prodotto o quando il

fit-up), cioè ai problemi che si verificano all atto dell assemblaggio quando non si riescono a montare i diversi componenti del prodotto o quando il Abstract Nel presente lavoro di tesi è stata analizzata l importanza che riveste l assemblaggio meccanico nelle diverse fasi del processo produttivo, centrando l attenzione sulle fasi di progettazione

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

RIPETITORE DI SEGNALE WIRELESS PER SISTEMA VIA RADIO ART. 45RPT000

RIPETITORE DI SEGNALE WIRELESS PER SISTEMA VIA RADIO ART. 45RPT000 RIPETITORE DI SEGNALE WIRELESS PER SISTEMA VIA RADIO ART. 45RPT000 Leggere questo manuale prima dell uso e conservarlo per consultazioni future 1 DESCRIZIONE GENERALE L espansore senza fili è un modulo

Dettagli

LA CORRENTE ELETTRICA CONTINUA

LA CORRENTE ELETTRICA CONTINUA LA CORRENTE ELETTRICA CONTINUA (Fenomeno, indipendente dal tempo, che si osserva nei corpi conduttori quando le cariche elettriche fluiscono in essi.) Un conduttore metallico è in equilibrio elettrostatico

Dettagli

Consorzio Nettuno - Corso di Matematica 1 Schede di lavoro guidato per le esercitazioni

Consorzio Nettuno - Corso di Matematica 1 Schede di lavoro guidato per le esercitazioni Consorzio Nettuno - Corso di Matematica 1 Schede di lavoro guidato per le esercitazioni A cura di Sebastiano Cappuccio SCHEDA N. 6 ARGOMENTO: Grafici di funzioni sottoposte a trasformazioni elementari.

Dettagli

1. PRIME PROPRIETÀ 2

1. PRIME PROPRIETÀ 2 RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,

Dettagli

www.andreatorinesi.it

www.andreatorinesi.it La lunghezza focale Lunghezza focale Si definisce lunghezza focale la distanza tra il centro ottico dell'obiettivo (a infinito ) e il piano su cui si forma l'immagine (nel caso del digitale, il sensore).

Dettagli

MOTO DI UNA CARICA IN UN CAMPO ELETTRICO UNIFORME

MOTO DI UNA CARICA IN UN CAMPO ELETTRICO UNIFORME 6. IL CONDNSATOR FNOMNI DI LTTROSTATICA MOTO DI UNA CARICA IN UN CAMPO LTTRICO UNIFORM Il moto di una particella carica in un campo elettrico è in generale molto complesso; il problema risulta più semplice

Dettagli

POLITECNICO DI TORINO

POLITECNICO DI TORINO NEWSLETTER N2 - I dispositivi elettronici posti a protezione degli operatori E stato indicato nella precedente newsletter che la sicurezza degli operatori in un contesto industriale è affidata a una catena

Dettagli

Dispositivo di conversione di energia elettrica per aerogeneratori composto da componenti commerciali.

Dispositivo di conversione di energia elettrica per aerogeneratori composto da componenti commerciali. Sede legale: Viale Vittorio Veneto 60, 59100 Prato P.IVA /CF 02110810971 Sede operativa: Via del Mandorlo 30, 59100 Prato tel. (+39) 0574 550493 fax (+39) 0574 577854 Web: www.aria-srl.it Email: info@aria-srl.it

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

VERIFICA DELLA LEGGE DI MALUS E MISURA DELLA CONCENTRAZIONE DI UNA SOLUZIONE CON DUE POLAROIDI

VERIFICA DELLA LEGGE DI MALUS E MISURA DELLA CONCENTRAZIONE DI UNA SOLUZIONE CON DUE POLAROIDI VERIFICA DELLA LEGGE DI MALUS E MISURA DELLA CONCENTRAZIONE DI UNA SOLUZIONE CON DUE POLAROIDI A) VERIFICA DELLA LEGGE DI MALUS L intensità luminosa trasmessa da un sistema costituito da due polaroidi

Dettagli

9. Urti e conservazione della quantità di moto.

9. Urti e conservazione della quantità di moto. 9. Urti e conservazione della quantità di moto. 1 Conservazione dell impulso m1 v1 v2 m2 Prima Consideriamo due punti materiali di massa m 1 e m 2 che si muovono in una dimensione. Supponiamo che i due

Dettagli

Le ombre in OpenGl. Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale http://varindaniele.altervista.org

Le ombre in OpenGl. Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale http://varindaniele.altervista.org Le ombre in OpenGl Daniele Varin LS Ing. Informatica Corso di Elementi di Grafica Digitale http://varindaniele.altervista.org Punto di partenza In OpenGl le luci non proiettano ombre 2 Perché si introducono

Dettagli

Laboratorio di Fisica 3 Ottica 2. Studenti: Buoni - Giambastiani - Leidi Gruppo: G09

Laboratorio di Fisica 3 Ottica 2. Studenti: Buoni - Giambastiani - Leidi Gruppo: G09 Laboratorio di Fisica 3 Ottica 2 Studenti: Buoni - Giambastiani - Leidi Gruppo: G09 24 febbraio 2015 1 Lunghezza d onda di un laser He-Ne 1.1 Scopo dell esperienza Lo scopo dell esperienza è quello di

Dettagli

Interesse, sconto, ratei e risconti

Interesse, sconto, ratei e risconti TXT HTM PDF pdf P1 P2 P3 P4 293 Interesse, sconto, ratei e risconti Capitolo 129 129.1 Interesse semplice....................................................... 293 129.1.1 Esercizio per il calcolo dell

Dettagli

2 Gli elementi del sistema di Gestione dei Flussi di Utenza

2 Gli elementi del sistema di Gestione dei Flussi di Utenza SISTEMA INFORMATIVO page 4 2 Gli elementi del sistema di Gestione dei Flussi di Utenza Il sistema è composto da vari elementi, software e hardware, quali la Gestione delle Code di attesa, la Gestione di

Dettagli

Esercizi svolti sui numeri complessi

Esercizi svolti sui numeri complessi Francesco Daddi - ottobre 009 Esercizio 1 Risolvere l equazione z 1 + i = 1. Soluzione. Moltiplichiamo entrambi i membri per 1 + i in definitiva la soluzione è z 1 + i 1 + i = 1 1 + i z = 1 1 i. : z =

Dettagli

SCHEDA M MOSAICI CLASSIFICARE CON LA SIMMETRIA

SCHEDA M MOSAICI CLASSIFICARE CON LA SIMMETRIA SCHEDA M MOSAICI CLASSIFICARE CON LA SIMMETRIA Qui sotto avete una griglia, che rappresenta una normale quadrettatura, come quella dei quaderni a quadretti; nelle attività che seguono dovrete immaginare

Dettagli

Sistema di ripresa con fotocamera digitale fissa Calibrazione

Sistema di ripresa con fotocamera digitale fissa Calibrazione Sistema di ripresa con fotocamera digitale fissa Calibrazione TUTORIAL CALIBRAZIONE FOTOCAMERA Sommario 1. Interfacciamento PC... 3 2. Collocamento fotocamera... 4 3. Distanza di ripresa... 5 4. Interfacciamento

Dettagli

LE TRASFORMAZIONI GEOMETRICHE NEL PIANO

LE TRASFORMAZIONI GEOMETRICHE NEL PIANO LE TRASFORMAZIONI GEOMETRICHE NEL PIANO Una trasformazione geometrica è una funzione che fa corrispondere a ogni punto del piano un altro punto del piano stesso Si può pensare come MOVIMENTO di punti e

Dettagli