Softwaresysteme für Augmented Reality: Beispiele Vorlesung Augmented Reality Prof. Dr. Andreas Butz, Dr. Martin Wagner 24.06.2005 LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 1 Ein Generisches AR-System Sensorik Einbeziehung der Ortsinformation in virtuelle Welt Realität Tracking (Ortsbestimmung) Virtualität Feedback an Benutzer Rendering und Realitätserweiterung Kombination realer und virtueller Inhalte LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 2 Reality - SS 2005 1
Überblick Wiederholung: Architekturstile Verteilte Kommunikation Verteilte Kommunikationsarten Shared Memory Streaming Existierende Systeme AR Toolkit VRIB/ VARIO Studierstube COTERIE/ Repo-3D LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 3 Wiederholung: Architekturstile Monolithische Systeme Für einfache Probleme schnell programmiert Aber: nicht wartbar, schwer wieder verwendbar und ungeeignet für Multithreading Komponentenansätze: Schnittstellen in Interface Definition Language (IDL) Komponenten (theoretisch) austauschbar Notation in UML Unterscheidung Komponenten LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 4 Reality - SS 2005 2
Wiederholung: Architekturstile (2) Client/Server Benutzer interagiert nur mit Client Server ist zentrale Instanz (Ausfallrisiko, aber einfache Verwaltung) Sehr große Verbreitung Peer to Peer Jede Komponente ist Client und Server zugleich Passt gut in Idee des Ubiquitous Computing Sehr flexibel und ausfallsicher Aber: hochkomplex LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 5 Wiederholung: Architekturstile (3) Blackboard Tupel werden in gemeinsamem Blackboard abgelegt Abfrage durch partielle Tupel Extrem lose Kopplung Pipe and Filter Datenflussarchitektur Einfache Modellierung Gute Unterstützung von Nebenläufigkeit Aber: keine globale Systemsicht (Filter kennen nur sich selbst) LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 6 Reality - SS 2005 3
Wiederholung: Kommunikationsarten RPC/RMI Scheinbar lokaler Aufruf entfernter Prozeduren/Objekte Sehr enge Kopplung Multiplexing von Nachrichten komplex Events Programme warten auf Events und bearbeiten diese Häufig: Kaskaden Sehr gut für interaktive Anwendungen (GUIs) Problemloses Multiplexing Aber: Eventstaus möglich, schlecht für statusbehaftete Komponenten LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 7 Shared Memory Grundidee: Mehrere Prozesse teilen sich gemeinsamen Speicherbereich Vor allem für sehr breitbandige Übertragungen geeignet (Videodaten!) Analogie zur Blackboard Architektur Beispiele: Multithreading: mehrere Threads greifen auf gemeinsamen Speicher zu Parallelrechner (SMP): mehrere CPUs greifen auf gemeinsamen Speicher zu LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 8 Reality - SS 2005 4
Shared Memory: Bsp. [http://www.csl.mtu.edu/cs4411.ck/www/notes/process/shm/what-is-shm.html] LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 9 Shared Memory: Diskussion Pro: Höchst effizient Quasi beliebige Datengröße Beliebige Daten können ausgetauscht werden Con: Extrem enge Kopplung Nur lokal möglich Synchronisation (z.b. über Semaphore) zwingend nötig LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 10 Reality - SS 2005 5
Streaming-Protokolle Grundidee: Übertrage (zeitsynchronisierten) Datenstrom Einsatz i.a. nur bei Audio/Videodaten sinnvoll Meist verlustbehaftete Übertragung (z.b. über UDP) Beispiele: RTSP (RealTime Streaming Protocol, Kontrollinformationen für eigentliche Streams) RealMedia/RealAudio Windows Media Quicktime (Framework für Vielzahl von Formaten) LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 11 Streaming-Protokolle: Diskussion Pro: Sehr gut für Videodaten geeignet (Bildverarbeitung/ Remote Rendering) Variable Kompression der Daten, je nach Protokoll/Framework Con: I.A. verlustbehaftete, unzuverlässige Übertragung Komplexe Technik LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 12 Reality - SS 2005 6
Beispielsysteme AR Toolkit VRIB/ VARIO Studierstube COTERIE/ Repo-3D LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 13 AR Toolkit Entwickelt am HITLab (Seattle, WA, USA) C-Bibliothek für Windows, Mac OS X, UNIX Bestandteile: Videograbbing (DirectShow, Quicktime, V4L) Markererkennung und -training Hilfsfunktionen für OpenGL-Rendering auf dem Marker Kalibrierungsroutinen LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 14 Reality - SS 2005 7
AR Toolkit: Beispielprogramm arinitcparam(); // init Kameraparameter arginit(); // init Ausgabefenster while (true) { arvideogetimage(); // Bild holen argdrawmode2d(); // für Video See-Through: argdispimage(); // Bild zeichnen ardetectmarker(); // Marker finden argettransmat(); // Trafo Kamera Marker finden argdrawmode3d(); argdraw3dcamera(); glloadmatrixd(); // Trafo K M in OpenGL laden glutsolidteapot(); // Teekanne dort zeichnen } LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 15 AR Toolkit: Beispiele aus dem Praktikum LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 16 Reality - SS 2005 8
AR Toolkit: Diskussion Monolithisches System Läuft auf jedem halbwegs aktuellen Rechner (+ billige Webcam) Fokus auf markerbasiertem Tracking Rendering nur direkt auf Markern genau Neuentwicklung (soon come ): Texturbasiertes Tracking Gut für schnelles Ausprobieren neuer AR-Interaktionen LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 17 VRIB/ VARIO BMBF-Projekt: Virtual Reality Interaktionsbaukasten (u.a. TU Ilmenau, DaimlerChrysler R&D) Ziel: Optimale Unterstützung der Methodik zu Entwurf und Umsetzung von 3D User Interfaces, also Rapid Prototyping von 3D User Interfaces VARIO (Virtual and Augmented Reality Inputs and Outputs) ist verteilte Softwarebasis von VRIB LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 18 Reality - SS 2005 9
VARIO: Architektur [R. Schönfelder, VRIB The Virtual Reality Interaction Toolkit] Datenflussarchitektur (Pipe and Filter), von Interaktionsgerät hin zur Anwendung Zentrale Steuerung durch Central System Manager (CSM) Benutzer rekonfiguriert System zur Laufzeit über GUI für CSM Persistenz durch Speicherung des Systemzustands im XML-Format LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 19 VARIO: Architektur (2) [R. Schönfelder, Der VR-Interaktionsbaukasten] Auf jedem Host kommuniziert ein Daemon mit dem CSM, dieser kann neue Prozesse starten Ein Process Manager kontrolliert je Prozess mehrere Komponenten Kommunikation über XML via TCP (Steuerung) und UDP-Streams (Datenfluss) LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 20 Reality - SS 2005 10
VARIO: Diskussion Zentrale Steuerung erlaubt sehr leichtes Management der Komponenten (GUI) Trotzdem hohe Laufzeiteffizienz durch Datenflussarchitektur mit UDP-Streams Laufzeitrekonfiguration ermöglicht Rapid Prototyping neuer Interaktionsideen Leider nicht öffentlich erhältlich LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 21 Studierstube AR-Framework der TU Wien/Graz (Prof. Schmalstieg) Grundlage: Szenengraphbibliothek Grundidee: Rendering ist wesentlicher Teil jeder AR- Anwendung Anwendungslogik ist in Knoten des Szenegraphen codiert wird bei Traversierung des Graphen automatisch ausgeführt LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 22 Reality - SS 2005 11
Studierstube: Architektur Studierstube Kernel erweitert Open Inventor Szenegraph v.a. durch 3D Widgets Distributed Open Inventor (DIV) sorgt für replizierten Szenengraph auf mehreren Maschinen Applikationen werden als 3D Windows angezeigt; können dynamisch nachgeladen werden Multitasking möglich [Schmalstieg et al., The Studierstube Augmented Reality Project]] LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 23 Studierstube: OpenTracker Problem: wie Tracker anbinden? Erweiterbarkeit, Konfigurierbarkeit Verteilung Rechenbelastung auf mehrere Rechner Daten müssen gefiltert werden (Transformationen, Kombinationen etc.) Lösung: Eigenes Framework OpenTracker Datenflussarchitektur Source Nodes: Anbindung von Hardware Filter Nodes: Transformationen, Kombinationen Sink Nodes: Abliefern der Daten in Szenengraph Persistente Speicherung in XML-Datei LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 24 Reality - SS 2005 12
Stb/OpenTracker: Beispiel [Reitmayr & Schmalstieg, An Open Software Architecture for Virtual Reality Interaction] LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 25 Studierstube: Diskussion Starker Fokus auf Interaktionstechniken für 3D-Umgebungen Besondere Betonung des Renderings Verteilung: Beim Tracking sehr flexibel, aber statisch Für Anwendungen zur Laufzeit möglich, skaliert allerdings nicht besonders gut (Szenengraph wird voll repliziert) Extrem viele Anwendungen und Erweiterungen (u.a. Scripting) Frei erhältlich, auch im Source Code LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 26 Reality - SS 2005 13
COTERIE/ Repo-3D B. MacIntyre, Columbia University, 1996, Columbia Object-oriented Testbed for Exploratory Research in Interactive Environments Cross-Platform Library, Sprache: Modula 3 (Java hat viele der M3-Konzepte übernommen) Scriptsprache: Obliq + Repo (Replicated Obliq) Grundidee: Verteilter Shared Memory Ansatz (ähnlich Blackboard) Objektorientierung und Multithreading als Grundparadigmen (Kapselung) 3D Graphikbibliothek Repo-3D baut auf COTERIE LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 27 COTERIE: Verteilungsarchitektur Hauptproblem: wie stellt man Synchronisation sicher? Sequencer empfängt Event, sobald ein Objekt geändert wird Dann: Replikation des geänderten Objekts, eventuell auch über weitere Sequencer [MacIntyre & Feiner, Language-Level Support for Exploratory Programming of Distributed Virtual Environments] LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 28 Reality - SS 2005 14
Repo-3D: Architektur Repo-3D nutzt COTERIE zur Replikation eines Szenengraphen Aber: nicht gesamter Szenengraph wird repliziert, sog. local variations (z.b. Kameraposition) sind ausgenommen LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 29 COTERIE/ Repo-3D: Diskussion System war seiner Zeit weit voraus Fokus auf Interaktionstechniken, Rapid Prototyping Großer Overhead für Replikation Skaliert nur sehr bedingt LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 30 Reality - SS 2005 15
und nächste Woche Weitere AR-Systeme: DWARF Tinmith Authoring-Umgebungen für 3D/AR: SILK Alice AMIRE DART LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 31 Schönes Wochenende. [Sommerbäder der Stadtwerke München, http://www.swm.de/m-baeder/pages/sommerbaeder.htm] LMU München Medieninformatik Butz/Wagner Vorlesung Augmented Reality SS2005 24.06.2005 Folie 32 Reality - SS 2005 16