VR Framework mit Gestenerkennung Ergebnisse der Portierung einer
VR Framework mit Gestenerkennung Ergebnisse der Portierung einer VR-Software
Fähigkeiten der Software Eingabe: – Koordinaten und Orientierung von mehreren VREingabegeräten (z. B. Stift oder Tablett) im 3 D-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 3 D-Szene mit VR-Hardware, dabei korrekte Perspektive für einen Betrachter, weitere Betrachter möglich.
Inhalt der Portierung Quellplattform: ● ● Workstation von SGI (Indigo 2) 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 3 D-Mathematik (von O. Bimber) QTCS (Qt Tracker Client Server) – zur Ansteuerung der Tracking Hardware Qt. GL (Qt Graphics Library) – zur graphischen Ausgabe (Mono oder Stereo) Hauptprogramm – – abhängig von der jeweiligen Anwendung verbindet die oberen 4 Module auf sinnvolle Art
Struktur eines Programme für das VR-Framework haben immer diese drei Elemente: 1. Interaction Klasse: – behandelt alle möglichen Ereignisse (Eingaben) – beschreibt die Reaktionen des Systems – High-Level-Zugriff auf Tracker-Daten – High-Level-Zugriff auf Gestenerkennung 2. Content Klasse: – definiert die 3 D-Szene über Open. GL-Aufrufe 3. 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: „ 3 dsketching“ eine Demo, die Gestenerkennung zeigt und zusätzlich noch einen Constraint-Solver besitzt. 3 D-Szene: eine Reihe von Rohren, die man aneinander schrauben kann. . . „basketball“ eine Demo, die Gestenerkennung zeigt. 3 D-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 Gestenerkennung (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.
Abschluss Vielen Dank für Ihre Aufmerksamkeit! Fragen an den Vortragenden Demonstration im Enter Action Lab
- Slides: 11