110 likes | 191 Views
Ergebnisse der Portierung einer VR-Software. VR Framework mit Gestenerkennung. Fähigkeiten der Software. Eingabe: Koordinaten und Orientierung von mehreren VR-Eingabegeräten (z.B. Stift oder Tablett) im 3D-Raum werden verfolgt. Verarbeitung:
E N D
Ergebnisse der Portierung einer VR-Software VR Framework mit Gestenerkennung
Fähigkeiten der Software Eingabe: • Koordinaten und Orientierung von mehreren VR-Eingabegeräten (z.B. Stift oder Tablett) im 3D-Raum werden verfolgt. Verarbeitung: • Erkennung von bereits trainierten Bewegungsmustern, nutzt eine Bibliothek zur Gestenerkennung in Echtzeit. • Anwendungsabhängige Reaktion auf Eingabedaten und die erkannten Gesten. Ausgabe: • Visualisierung einer 3D-Szene mit VR-Hardware, dabei korrekte Perspektive für einen Betrachter, weitere Betrachter möglich.
Inhalt der Portierung • Quellplattform: • Workstation von SGI (Indigo2) • Betriebssystem Irix • C++ • Qt Framework, Version 2 • Zielplattform: • Standard-PC mit Stereo-Grafikkarte • Windows (XP) • C++ • Qt Framework, Version 3
Probleme bei der Portierung • Schwierigkeiten waren z.B.: • Nur eines von vier Modulen war hinreichend gut dokumentiert – eine Quelltext-Dokumentation war ebenfalls quasi nicht vorhanden. • Quellcode wurde damals mit dem Compiler/Linker von IRIX übersetzt – der Compiler/Linker von Visual Studio ist jedoch nicht so robust und hatte mit bestimmten Konstrukten Probleme, die erst beim Link-Vorgang zu unerklärlichen Fehlern führten. • Die Tracking-Hardware wurde mittels einer Low-Level-Schnittstelle von IRIX angebunden – unter Windows war dieser Code völlig wertlos.
Komponenten der Software • IMGR(Interface for Motion-based Gesture Recognition) • C++ Bibliothek für Gestenerkennung (von O.Bimber) • GTL (Graphics Template Library) • C++ Bibliothek für 3D-Mathematik (von O.Bimber) • QTCS(Qt Tracker Client Server) • zur Ansteuerung der Tracking Hardware • QtGL(QtGraphics Library) • zur graphischen Ausgabe (Mono oder Stereo) • Hauptprogramm • abhängig von der jeweiligen Anwendung • verbindet die oberen 4 Module auf sinnvolle Art
Struktur eines Programmes Programme für das VR-Framework haben immer diese drei Elemente: • Interaction Klasse: • behandelt alle möglichen Ereignisse (Eingaben) • beschreibt die Reaktionen des Systems • High-Level-Zugriff auf Tracker-Daten • High-Level-Zugriff auf Gestenerkennung • Content Klasse: • definiert die 3D-Szene über OpenGL-Aufrufe • Main Klasse: • eine Art Focus, der den Einsprung-Punkt bildet • verknüpft Content und Interaction Klasse • liest allgemeine Umgebungs-Konfiguration
Bereits vorhandene Demos Es wurden 2 alte Demos portiert: „3dsketching“ eine Demo, die Gesten-erkennung zeigt und zusätzlich noch einen Constraint-Solver besitzt. 3D-Szene: eine Reihe von Rohren, die man aneinander schrauben kann... „basketball“ eine Demo, die Gesten-erkennung zeigt. 3D-Szene: eine Basketball-Feld, auf dem man 2 Mannschaften dirigieren kann. Es spielen Fraunhofer IGD und ZGDV miteinander...
Einschätzung des Systems • Es ist mit dem VR-Framework möglich, simple und komplexe Demos für den Virtual Table zu programmieren. • Das System erkennt Gesten, die ein Nutzer ausführt anhand bereits gelernter Gesten. • Das System ist jetzt auch unter Windows lauffähig und kann mit minimalen Änderungen auch wieder nach Unix / Linux portiert werden.
Noch existierende Probleme • Folgende Probleme sind noch offen: • Die übernommene Bibliothek für die Gesten-erkennung (von Prof. Oliver Bimber) hat in ihrer jetzigen Form keine „Zeitmarken“. • Die Codebasis des C++ Quelltextes muss noch vollständig an den ANSI-Standard angeglichen werden (momentan kompiliert nur Visual Studio 6). • Die verwendeten Elemente von Qt 3 sollten zum kürzlich erschienen Qt 4 portiert werden. • Andere VR-Hardware sollte möglich sein (Abstraktion nötig, z.B. mit Hilfe eines geeigneten Framework wie „VRPN“ oder „Opentracker“).
Zukünftige Verbesserungen • Ideen für die nächste Version: • Beseitigung der erwähnten Probleme. • Die Bibliothek für Gestenerkennung besitzt bereits die Fähigkeit, neue Gesten zu lernen – es sollte ein Tool geschrieben werden, was diese Fähigkeit nutzt, um eine „Gesten-Bibliothek“ zu errichten. • Im Rahmen der Portierung wurde ein Modul für Spracherkennung entdeckt, das bisher nicht genutzt wurde – es wäre gut, wenn man eine Spracherkennung für Interaktion nutzen könnte. • Eine generelle Überarbeitung des z.T. 5 Jahre alten Codes nach Prinzipien der Softwaretechnik.
Vielen Dank für Ihre Aufmerksamkeit! Fragen an den Vortragenden Demonstration im Enter Action Lab Abschluss