AndARAndroid Augmented Reality
19.06.2010Tobias Domhan
Google Wave: http://tinyurl.com/droidcamp-andar-wavePräsentation: http://tinyurl.com/droidcamp-andar-presentation
Wer bin ich?
• Tobias Domhan
• Student der DHBW Stuttgart, (Behr GmbH & Co. KG)
• Informationstechnik, 6. Semester
Agenda
• Augmented Reality o Allgemein/Definitiono Beispiele
• Vorstellung AndARo Was ist AndAR?o Probleme bei der Entwicklungo AndAR Architektur (falls gewünscht)
• AndAR Model Viewer
Augmented Reality
• keine offizielle Definition vorhanden• Definition von Ronald Azuma(1995):
o 1. Combines real and virtualo 2. Interactive in real timeo 3. Registered in 3-D
• Überlagerung des Kamerabildes mit 3D Objekten in Echtzeit• Einsatzgebiete
o Fußball: Entfernungsangabeno Wohnungsgestaltungo Fertigungsplanungo Medizin
2D Augmented Reality auf Android
• Wikitude• mixare
o Open Source (2D) AR Engine• Layar
o Erweiterbar durch eigene Layer
• Alle: GPS basiert
AndAR
• (3D) Augmented Reality Framework für Android• Studienarbeit der DHBW Stuttgart
o gefördert durch die Medien- und Filmgesellschaft BW• Marker basiert• Open Source (GPL), dual-licensed (ARToolworks Inc.)• Nutzt das ARToolkit
o Erkennung der Markero Native library
• kümmert sich um:o Verbindung zur Kamerao Erkennung der Marker (ARToolkit)o Überlagerung von 2D und 3D
• Reine Java OO API
Android Camera API
• Registrierung einer Callback-Methode• Bild als byte Array (YCbCr-Farbmodell)• Allokation eines neues Arrays mit jedem Frame
o Garbage Collector wird häufig aktiv• Angabe einer Surface auf der das Video direkt gezeichnet
werden sollo Nicht erwähnt in der Compatibility Definition ob zwingend
notwendigo Auf manchen Smartphones notwendig
Motorola Droid• Überlagerung mit GLSurface
o Kompatibilität > Overhead
Kombination von 2D und 3D auf Android
• je eine API für 2D und 3D (OpenGL)
• keine offiziell unterstützte Möglichkeit der Kombination
• -> Reine OpenGL Anwendung
• Kamerabild als OpenGL Texturo OpenGL unterstützt nur RGBo Kamerabild im YCbCr-
Farbmodello -> zeitaufwendige
Konvertierung notwendig
Android Versionen
• Verschiedene Android Versionen in Benutzung (versionitis)• Oftmals werden keine Updates von den Herstellern
bereitgestellt• Aufwärtskompatibilität gewährleistet
Abwärtskompatibilität
• AndAR kompatibel zu Android 1.5 - 2.2• Nutzt trotzdem Funktionalität von Android 2.0• Referenz auf unbekannte Methode/Klasse -> VerifyError• Lösung:
o Reflectiono Wrapper Class
• Bsp: Ermitteln der verfügbaren Kameraauflösungen: private static Method getSupportedPreviewSizes = Parameters.class.getMethod("getSupportedPreviewSizes", (Class[]) null);
Object supportedFormats = getSupportedPreviewSizes.invoke(params, (Object[]) null);
AndAR Model Viewer
• Anwendung basierend auf AndAR• Open Source (GPL)• Anzeigen Wavefront obj Modellen
o Integrierte + eigene• Im Android Market verfügbar