Sviluppo di ambienti Sviluppo di ambienti in realtà virtuale per in realtà virtuale per il monitoraggio remoto il monitoraggio remoto di Robot Articolati di Robot Articolati Relatore: Relatore: Laureando: Laureando: Prof. Luca Zaccarian Prof. Luca Zaccarian Roberto Antonelli Roberto Antonelli
13
Embed
Sviluppo di ambienti in realtà virtuale per il monitoraggio remoto di Robot Articolati Relatore: Laureando: Prof. Luca Zaccarian Roberto Antonelli.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Sviluppo di ambienti in realtà Sviluppo di ambienti in realtà virtuale per il monitoraggio virtuale per il monitoraggio remoto di Robot Articolatiremoto di Robot Articolati
Relatore:Relatore: Laureando: Laureando:
Prof. Luca ZaccarianProf. Luca Zaccarian Roberto Antonelli Roberto Antonelli
ObiettivoObiettivo
Sviluppo di una libreria grafica per la rappresentazione Sviluppo di una libreria grafica per la rappresentazione prospettica di robot antropomorfi in ambiente Linuxprospettica di robot antropomorfi in ambiente Linux
Scortec-ER IScortec-ER I Scorbot-ERScorbot-ER
Campi di ApplicazioneCampi di Applicazione
• Monitoraggio RemotoMonitoraggio Remoto
• Azionamento RemotoAzionamento Remoto
• SimulazioneSimulazione
Verifica del comportamento del Verifica del comportamento del robot senza essere vincolati robot senza essere vincolati alla vicinanza fisicaalla vicinanza fisica
Specificazione dei compiti Specificazione dei compiti assegnati al robot in ambienteassegnati al robot in ambienteuser friendlyuser friendly
Simulazione del comportamentoSimulazione del comportamentodel robot in seguito ad uno del robot in seguito ad uno spostamento, prima di spostamento, prima di compierlo realmentecompierlo realmente
Legge ProspetticaLegge Prospettica
• Intuizione:Intuizione: Più un oggetto è lontano, più tende a rimpicciolirsiPiù un oggetto è lontano, più tende a rimpicciolirsi
RappresentazioneRappresentazionetridimensionaletridimensionaledel robot del robot Scortec-ER IScortec-ER I
Vertici di ciascun elementoVertici di ciascun elemento
Libreria OpenGLLibreria OpenGL
• Per creare una scena, la libreria OpenGL si basa su due concetti Per creare una scena, la libreria OpenGL si basa su due concetti fondamentali:fondamentali:
• Insieme di funzioni chiamabili da un programma personalizzatoInsieme di funzioni chiamabili da un programma personalizzato
• Permette di produrre su un display una rappresentazione di una scena Permette di produrre su un display una rappresentazione di una scena tridimensionale.tridimensionale.
Forme PrimitiveForme Primitive Sorgenti di IlluminazioneSorgenti di Illuminazione
Direzionale:Direzionale: la sorgente viene considerata la sorgente viene considerata come un punto all’infinitocome un punto all’infinito
Puntiforme:Puntiforme: i raggi vengono generati i raggi vengono generati uniformemente in tutte le direzioni uniformemente in tutte le direzioni a partire da un puntoa partire da un punto
Spot:Spot: come le sorgenti puntiformi ma l’emissione come le sorgenti puntiformi ma l’emissione dei raggi è limitata ad un cono con vertice dei raggi è limitata ad un cono con vertice nel punto della sorgentenel punto della sorgente
FramebufferFramebuffer
• Finestra di memoria mappata sulla scheda videoFinestra di memoria mappata sulla scheda video
• Per rendere fluida la visualizzazione del Per rendere fluida la visualizzazione del movimento si lavora in parallelo su due movimento si lavora in parallelo su due pagine video, utilizzando pagine video, utilizzando il “framebuffer”:il “framebuffer”:
• Nella pagina 2 si traccia il fotogramma;Nella pagina 2 si traccia il fotogramma;a tracciamento completato si scambiano le a tracciamento completato si scambiano le due pagine ottenendo visualizzazione due pagine ottenendo visualizzazione immediata:immediata:
Generazione di un frame del RobotGenerazione di un frame del Robot
InizializzazioneInizializzazioneVerticiVertici
RicostruzioneRicostruzioneElementiElementi
LetturaLetturaEncoderEncoder
VerificaVerificaMovimentoMovimento
Coordinate 3DCoordinate 3Ddegli elementidegli elementi
Tabella Tabella PrecendenzePrecendenze
SwapSwap
SISI
NONO
Vengono caricati inVengono caricati inmemoria tutti i verticimemoria tutti i verticidi tutti gli elementidi tutti gli elementi
RappresentazioneRappresentazione3D sul framebuffer3D sul framebuffer
Viene determinato l’ordine diViene determinato l’ordine divisualizzazione sullo schermovisualizzazione sullo schermodegli elementi in modo da otteneredegli elementi in modo da ottenereuna sovrapposizione correttauna sovrapposizione corretta
Si verifica se il robot Si verifica se il robot fisico e la suafisico e la suarappresentazione 3Drappresentazione 3Dsi trovano nella stessasi trovano nella stessaposizioneposizione
Si raggruppano i verticiSi raggruppano i verticiin insiemi prestabilitiin insiemi prestabilitiper ricostruire per ricostruire ogni elementoogni elemento
Vengono acquisiteVengono acquisitele posizioni angolarile posizioni angolaridei giunti del robotdei giunti del robot
Per ogni elemento delPer ogni elemento delrobot si calcola la robot si calcola la posizione e l’orientamentoposizione e l’orientamentonello spazio 3Dnello spazio 3D
Gli elementi del robot 3DGli elementi del robot 3Dvengono tracciati sullovengono tracciati sulloschermo virtuale schermo virtuale nell’ordine prestabilitonell’ordine prestabilitoTrasferimento del framebuffer Trasferimento del framebuffer sullo schermosullo schermo
Utilizzo esterno della libreriaUtilizzo esterno della libreria
• La libreria è costruita per essere facilmente impiegata in un programma CLa libreria è costruita per essere facilmente impiegata in un programma C
• Due modalità di impiego:Due modalità di impiego:1. Modalità Statica:1. Modalità Statica:
viene inserita nel main() del programma principaleviene inserita nel main() del programma principale ScortInitGrafica(ScortInitGrafica(parametri della finestra di visualizzazioneparametri della finestra di visualizzazione)
• Inizializzazione:Inizializzazione:
• Tracciamento frame:Tracciamento frame: viene inserita quando si vuole visualizzare il robotviene inserita quando si vuole visualizzare il robot ScortMovimento(ScortMovimento(AngoliAngoli di giunto,di giunto, Stato effettore)Stato effettore)
• Impostazione animazione:Impostazione animazione: per creare una scena animata si deve inserire il per creare una scena animata si deve inserire il tracciamento del frame in una procedura dedicatatracciamento del frame in una procedura dedicatavoid ScortMain()void ScortMain()
• Tracciamento frame:Tracciamento frame: viene inserita quando si vuole visualizzare il robotviene inserita quando si vuole visualizzare il robot ScortMovimento(ScortMovimento(AngoliAngoli di giunto,di giunto, Stato effettore)Stato effettore)
viene inserita nel main() del programma principaleviene inserita nel main() del programma principale ScortInitGrafica(ScortInitGrafica(parametri della finestra di visualizzazioneparametri della finestra di visualizzazione)
Esempio di ApplicazioneEsempio di Applicazione
Ripresa da Webcam Ripresa da Webcam posizionata davanti posizionata davanti
allo Scortec-ER Iallo Scortec-ER I
Ripresa da Webcam Ripresa da Webcam posizionata davanti allo posizionata davanti allo
schermo del PCschermo del PC
ConclusioniConclusioni
• Rappresentazione 3D robot Scorbot-ERRappresentazione 3D robot Scorbot-ER