Un ruolo chiave nella realizzazione di qualsiasi applicazione AR è svolto dalla componente software del sistema. Le principali funzioni a cui assolve un software AR sono le seguenti:
gestione dei contenuti virtuali; integrazione dei dispositivi impiegati.
La maggior parte dei programmi disponibili per applicazioni di AR è dedicata ai sistemi di tracking ottico a riconoscimento di marker. Installati su di un computer, tali software sono in grado di acquisire un flusso video da una periferica connessa al computer e visualizzarlo su di un display, sia esso lo schermo del computer stesso o uno dei display descritti in precedenza. Le immagini in ingresso vengono analizzate in tempo reale, ed i contenuti virtuali vengono presentati all’utente. Questi software sono disponibili sia in versioni gratuite (sviluppate per la maggior parte in campo accademico e messe a disposizione tramite il web con licenze di tipo freeware), che in versioni commerciali. Nel seguito, a titolo di esempio, vengono descritti nel dettaglio il software “free” Artoolkit e il software commerciale SDK Metaio.
5.1 Versioni freeware: ARToolkit
Le Artoolkit sono librerie Open Source, scritte in linguaggio C, implementate per facilitare lo sviluppo di applicazioni di AR in real-time. La prima versione è stata sviluppata da Dr. Hirokazu Kato
123
dell'Università di Osaka (Giappone), e successivamente supportata dal HIT Lab dell'Università di Washington e dal HIT Lab NZ dell'Università di Canterbury, Nuova Zelanda.
La diffusione di queste librerie è stata agevolata dalla codifica di versioni per sistemi operativi quali Irix, Linux, MacOS e Windows complete di codice sorgente.
In Figura 79 è riportato un esempio di applicazione sviluppata con le Artoolkit: al sistema di riferimento associato ad un marker viene associato un oggetto virtuale, realizzato in precedenza ed importato nell’applicazione. Il marker è costituito da un foglio di carta sul quale è stampata una figura quadrangolare non simmetrica. Essa è circondata da un bordo bianco che crea una forte zona di contrasto. Analizzando il posizionamento dei bordi del quadrato è possibile stimare il cambio di prospettiva, la rotazione del pattern e la distanza della camera. La figura contenuta nel quadrato serve ad “identificare” il marker.
Lo sfondo del flusso video coincide con quello acquisito dalla telecamera ed è congruente con la percezione visiva dell’osservatore. Gli oggetti virtuali da inserire nella scena sono visualizzati utilizzando l’ambiente grafico delle OpenGL.
Figura 79.Esempio di applicazione sviluppata con le Artoolkit
Le prerogative delle Artoolkit sono la semplicità e la flessibilità d'impiego: il software è in grado di risolvere il problema del tracking dell'osservatore utilizzando algoritmi di calcolo propri della
124
computer vision e di calcolare, in real-time, la posizione reciproca tra marker e camera, elaborando i
fotogrammi di un flusso video.
Gli algoritmi di calcolo implementati nelle Artoolkit sono:
calibrazione della camera;
elaborazione ed estrazione, dalle immagini digitali, delle geometrie fiduciali; stima della posizione;
sovrapposizione di oggetti virtuali ai fotogrammi digitali.
È disponibile anche una versione estesa del codice ARToolkit, denominata ARToolkitPlus, che aggiunge alcune importanti features al software precedente. ARToolkitPlus è stato sviluppato internamente all’Università di Gratz, come parte di un progetto di nome “Hand Held AR Project”, ed è stato rilasciato a seguito delle molte richieste, pur mantenendo come utilizzatore-target programmatori C++ esperti.
Le features che ARToolkitPlus aggiunge sono:
API (Application Program Interface) C++; ID-Encoded Markers;
Supporto per un numero maggiore di formati immagine; Spessore bordo nero interno variabile;
Ottimizzazioni per device portatili (cellulari, PDA, ecc.);
Supporto ai file di calibrazione della MATLAB Calibration toolbox; Correzione automatica dell’esposizione in scene molto scure; Tools: generazione di pattern file, calibrazione camera.
5.2 Versioni commerciali: Unifeye SDK
Il Software Unifeye ® Development Kit (SDK) permette agli sviluppatori di mettere in atto la loro personale applicazione di Augmented Reality utilizzando la piattaforma tecnologica Unifeye. L’interfaccia professionale di sviluppo, riportata in Figura 80, consente la pianificazione e l’implementazione di applicazioni HTML e .NET per la piattaforma Microsoft Windows ®. Poiché vengono utilizzate tecnologie software e hardware standard, non ci sono limiti per il possibile campo di applicazione o per i potenziali scenari di personalizzazione.
125
Figura 80. Interfaccia del software Unifeye SDK
Unifeye SDK garantisce un rapido e facile accesso a una moltitudine di funzioni a partire dal campo della calibrazione, tracking, visualizzazione e interazione. Un utile set di strumenti rende il progetto da sviluppare più facile da progettare e realizzare. Inoltre, l'SDK contiene anche una interfaccia utente grafica (GUI) facile da usare, con cui si può testare il primo prototipo di applicazione con pochi clic.
Al fine di contemplare una vasta gamma di esigenze di sviluppo, l'SDK Unifeye ® dispone di una serie di diverse configurazioni e opzioni, come il tracking multiplo e diverse tecnologie di rendering. Unifeye SDK supporta i seguenti sistemi di tracking:
Marker tracking: IR tracking ART tracking
FARO measurement Arm tracking Sony Pan Tilt Zoom camera tracking Inertial sensor tracking
Markerless tracking
Il software Unifeye SDK presenta le seguenti caratteristiche:
1. interfaccia di sviluppo professionale della piattaforma tecnologica Unifeye; 2. sviluppo di applicazioni .NET e HTML per Microsoft Windows ®;
126
4. possibilità di creare un modulo di configurazione su misura per le proprie esigenze; 5. utilizzo di una vasta gamma di tecnologie di tracking e rendering;
6. l'interfaccia di interazione più completa per tecnologie AR attualmente disponibili; 7. la configurazione modulare e la tecnologia ActiveX rendono possibile combinare; 8. individualmente unità funzionali necessarie;
9. utilizzo in tempo reale su sistemi PC standard.