3 Descrizione dell’applicazione di AR
3.4 Creazione dei contenuti virtuali
Allo scopo di evitare (o ridurre) eventuali errori da parte dell’operatore, è necessario, per rendere intuitivo lo strumento utilizzato, progettare un’interfaccia che proprio grazie alla sua semplicità e chiarezza faccia in modo che il dispositivo sia adatto allo scopo per cui viene creato. Per lo studio dell’interfaccia grafica si è partiti dal presupposto che i contenuti presentati tramite l’interfaccia grafica debbano risultare comprensibili per qualsiasi operatore, sia esperto, sia completamente inesperto. L’obiettivo che ci si pone è strutturare l’interfaccia in modo tale da “costringere” l’operatore a porre attenzione a quelle operazioni del processo che potrebbero portare a un eventuale scarto o difetto all’interno del pezzo, fornendogli ad esempio delle procedure guidate che indichino gli eventuali procedimenti e comportamenti da seguire in presenza di un componente montato in maniera errata.
L’interfaccia prevede che sullo schermo siano visualizzate i seguenti elementi:
1. istruzioni: sono brevi indicazione testuali che appaiono appena l’operatore inquadra il marker e che gli indicano quale operazione svolgere per il montaggio del componente; 2. elementi virtuali: sono i contenuti virtuali che si sovrappongono alle immagini reali
inquadrate dalla telecamera; rappresentano l’elemento di maggiore innovazione e uno strumento molto efficace e intuitivo che chiarifica le operazioni che l’operatore deve svolgere passo dopo passo, “guidandolo” nel corretto montaggio del componente.
Nella procedura sviluppata per il supporto dell’assemblaggio del complessivo, si è scelto di utilizzare un contenuto testuale per tutte le operazioni, per conferire maggiore chiarezza e univocità all’istruzione.
In primis è stato effettuato uno studio preliminare dei colori: sono stati selezionati quei colori che, combinati tra loro, restituissero la maggiore chiarezza e leggibilità delle istruzioni fornite e che non risultassero fastidiosi all’operatore, evitando, quindi, dove possibile di usare colori troppo accesi. In particolare è stata prestata particolare attenzione alla scelta della combinazione fra il colore dello sfondo delle caselle di testo e il colore del testo delle istruzioni che appaiono sullo schermo; dopo varie prove, si è optato per il risultato seguente:
in bianco su sfondo blu sono riportate le istruzioni da seguire ai fini di un corretto assemblaggio del complessivo;
158
in bianco su sfondo rosso vengono segnalate le informazioni relative ad un errore commesso;
in nero su sfondo giallo sono riportate le indicazioni relative alle azioni correttive da applicare per la correzione dell’errore commesso.
Per selezionare tipo e dimensioni del carattere sono state effettuate una serie di prove, allo scopo di individuare una modalità di presentazione delle indicazioni tale da attirare l’attenzione visiva dell’operatore e, al contempo, non “occupare” una superfice troppo estesa del display. Le istruzioni testuali sono, pertanto, state disposte nella parte superiore dell’interfaccia grafica in posizione centrale.
Nello sviluppo della procedura di montaggio sono state seguite le seguenti linee guida per la creazione dei contenuti virtuali da associare alle istruzioni da impartire all’operatore:
1. le operazioni di prelievo sono state indicate tramite una freccia posizionata in modo tale da indicare la posizione del box da cui prelevare il componente all’interno del banco di montaggio;
2. le operazioni di posizionamento e orientamento del pezzo sono state indicate tramite una riproduzione virtuale dell’oggetto posizionato all’interno della area di lavoro in moda tale da indicare in maniera univoca come disporre il componente; nel caso di operazioni particolarmente complesse sono state fornite indicazioni aggiuntive tramite:
frecce;
animazioni 3D dei componenti, che con il loro movimento simulino come posizionare esattamente i pezzi;
3. le operazioni di avvitatura sono state indicate tramite:
una freccia indicante il verso della rotazione da effettuare;
un’animazione dello strumento con cui eseguire l’operazione, che con il suo movimento chiarifichi all’utente come svolgere l’attività in esame;
4. la corretta esecuzione di un’operazione è stata segnalata tramite: un segnale visivo di conferma;
un segnale sonoro di conferma; 5. gli errori vengono segnalati tramite:
un segnale visivo, rappresentata da una “croce rossa lampeggiante”; un segnale sonoro.
159
Tutti gli elementi virtuali utilizzati nella procedura sono stati realizzati utilizzando il software
SolidWorks. In Tabella 2 è riportata una rappresentazione dei modelli virtuali relativi ai componenti
dell’assieme da montare e agli strumenti da utilizzare; mentre in Tabella 3 sono riportati gli elementi virtuali maggiormente utilizzati nel presente lavoro per fornire all’operatore le istruzioni di montaggio.
Tabella 2. Oggetti virtuali
Oggetto Reale
Foto
Oggetto Virtuale
Oggetto 1
Oggetto 3
Oggetto 4
160
Tabella 3. Indicatori virtuali
Indicatore
Modello virtuale
Segnale di errore
Freccia
Freccia associata ad un’azione
correttiva
Freccia associata ad un
rotazione
Le operazioni che l’operatore deve effettuare per portare a termine il processo di montaggio sono state rappresentate tramite animazioni 3D dei componenti, in cui il movimento impresso all’oggetto virtuale mostra all’operatore come svolgere una determinata attività. Le animazioni sono state realizzate utilizzando il software 3D Studio Max.
Nello specifico sono state realizzate le seguenti animazioni: traslazione dell’oggetto 1 lungo l’asse X;
traslazione dell’oggetto 1 lungo l’asse Y;
rotazione di 90° in verso orario dell’oggetto 1 attorno l’asse Z; rotazione di 180° in verso orario dell’oggetto 1 attorno l’asse Z; rotazione di 90° in verso anti-orario dell’oggetto 1 attorno l’asse Z; rotazione di 180° in verso orario dell’oggetto 1 attorno l’asse Y; rotazione di 90° in verso anti-orario dell’oggetto 3 attorno l’asse Z;
rotazione in verso orario di una brugola attorno l’asse Z per simulare l’operazione di avvitatura;
161
rotazione in verso anti-orario di una brugola attorno l’asse Z per simulare l’operazione di svitatura.
Lo step successivo ha avuto per oggetto la definizione della posizione più consona in cui collocare gli elementi virtuali sulla scena inquadrata dalla videocamera. Dopo aver effettuato una serie di prove, è risultato piuttosto evidente come la configurazione più efficace fosse rappresentata dalla sovrapposizione dell’elemento virtuale al componente reale.
Per l’implementazione della procedura con il software Unifeye ci si è avvalsi di uno strumento che fa parte delle utility del software: il Workflow Engine 2.0.
Questo tool si basa su l’applicazione di una serie di action, costruite con il linguaggio C e archiviate in una memoria dedicata, che definiscono delle azioni già implementate da richiamare graficamente. Le action costituiscono l’elemento base da cui partire per costruire il workflow possono essere:
Azioni predefinite, già caricate dagli sviluppatori del software;
Azioni registrate, usando l’Unifeye GUI tool ActionRecorder, uno strumento disponibile nell’interfaccia grafica principale che consente di eseguire una serie di operazioni in sequenza, registrarle e riusarle nel Workflow Engine.
Il workflow viene realizzato collegando tra loro diverse action: ciascuna action contiene dei parametri da specificare in base alla funzione a cui essa è associata.
L’interfaccia grafica dello strumento il Workflow Engine 2.0 è riportata in Figura 114.
162 Nello specifico:
l’elenco delle action è disposto sulla sinistra, corredato da una casella per la ricerca dell’azione e una per la sua descrizione;
al centro è posizionata la finestra di lavoro.
la barra degli strumenti è disposta in alto, e contiene:
a. Recent workflow: funzione che permette di visualizzare i workflow realizzati di recente;
b. New, Open, Save, Save As: funzione che permette di creare un nuovo workflow, importare un workflow da una o salvarne uno;
c. Resources: funzione che permette di tenere in memoria immagini, simboli, file .wrl, foto, da richiamare nelle azioni, evitando di fornire ogni volta la path dell’oggetto da scegliere;
d. System Connections: funzione che permette di avviare o mettere in pausa il
workflow;
e. Action Paths: funzione che permette di individuare il percorso della cartella dove sono memorizzate tutte le action visualizzate nello spazio a sinistra;
f. Quit: funzione che permette di interrompere il workflow;
g. Run Script: funzione che permette di eseguire e visualizzare la procedura. Tra le action presenti le più utilizzate sono state le seguenti:
Load camera: carica la webcam da utilizzare;
Load geometry: carica una geometria di tipo .wrl;
Display message: inserisce un messaggio di testo, con sfondo regolabile sia in dimensione
che colore, e consente anche la scelta della dimensione del carattere e del suo colore. Play wav sound: permette di riprodurre un suono di tipo . wav;
Remove message: permette di eliminare dalla scena un messaggio di testo;
Remove geometry: permette di eliminare dalla scena una geometria di tipo . wrl;
Loadbitmap: carica un’immagine.
La procedura deve iniziare necessariamente con l’action “Special Start Action”, che appare già di default nella finestra di lavoro appena viene aperto il programma; poi, trascinando le action all’interno della finestra di lavoro, e collegando il riquadro blu, indicato con “Finished”, presente sulla destra di un action con quello, indicato con “Start”, presente sulla sinistra della action
163
successiva, è possibile realizzare il workflow. Il workflow procede quindi seguendo le linee blu che collegano le diverse action.
Tramite la finestra “connection” è possibile inoltre comunicare al software quando un’action deve essere eseguita, ovvero:
se contemporaneamente alla precedente (non selezionando alcuna connessione); dopo un click del mouse;
dopo aver premuto un tasto della tastiera;
automaticamente dopo un certo intervallo temporale, da indicare in millisecondi. In Figura 115 è riportata un esempio di collegamento tra due actions.
Figura 115. Collegamento tra due actions
La procedura di collegamento appena descritta deve avvenire per attivare ciascun action inclusa nel
workflow. In Figura 116 è riportato, a titolo di esempio, un workflow implementato tramite lo
164
Figura 116. Esempio di worflow sviluppato tramite lo strumento Workflow Authoring GUI
L’applicazione sviluppata nel presente lavoro di tesi fa uso principalmente di due action, ovvero:
1. LoadGeometry: utilizzata per la sovrapposizione degli oggetti virtuali agli oggetti reali e per simulare la loro corretta collocazione;
2. DisplayMessage: utilizzata per l’inserimento delle caselle di testo.
Non è stato necessario includere action in grado di associare un movimento alle geometrie caricate, perché le animazioni sono state inserite nel file. wrl associato alla geometria stessa.