Projekt Alice

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

Im Rahmen der Vorlesung Interaktion wurde im Wintersemester 2019/20 versucht ein Programm zu schreiben welches es ermöglicht sich per Gestensteuerung mithilfe der Kinect durch ein Labyrinth zu steuern.


Idee

Ein Labyrinth angehaucht vom "Alice im Wunderland" Universum Steuerung durch das Labyrinth durch Körpersteuerung überdie Kinect Darstellung des Labyrinths über einen Beamer

Vorüberlegungen

Das Programm soll folgende Schritte ausführen können.

  • Positionserkennung in einem festgelegten Bereich
  • Erkennung der Hände
  • Abstandberechnung durch Grauwertbild
  • Übertragung der Positionsänderung zu Steuerung durch das Labyrinth

Konzept

Spielmechanik: Die Bewegung soll über die Kinect gesteuert werden Mögliche Bewegungen: Links, Rechts und zurück um Bildschirme wechseln zu können Nach jeder Bewegung muss man zurück in die mittlere Ausgangsposition gehen

Um Türen öffnen zu können und Objekte aufzuheben muss man die Hände in der mittleren Position nach vorne strecken

Objekte aus dem Alice Universum als Schlüssel für Tore

Plan

Segmentierung der Bereiche:

Nutzung von Tiefenwerten für Near/FarThreshold Nutzen der Pixel für Breitenabfragen ROIs durch Hintergrundsubtraktion

Blobs zur Erkennung von Handbewegungen Unterscheidung nach Blob-Größe bzw Anzahl Blob erkennung nur in Vordersegment Skeletal-Tracking für Gesten

Umsetzung

Anfängliche Schwierigkeiten mit dem Auslesen von Daten aus der Kinect Eine funktionierende Segmentierung war aufgrund des ZEitmangels leider nicht mehr möglich Das größte Problem war das lange festhalten am Skalatel-Tracking, dieses haben wir lange versucht über OpenNI umzusetzen bis wir herausgefunden haben, das OpenNI nicht mehr unterstützt wird. Hier begann der Umschwung auf die Nutzung des Tiefenbildes.

Aufgrund des Zeitmangels nach dem ersten Fehlversuch hat die Zeit nur noch gereicht um den Hintergund zu subtrahieren und eine Bloberkennung einzubauen.

Learning-By-Problems

Unsere Herangehensweise war von Anfang nicht so gut. Wir hatten keine feste Roadmap und es wurden von Anfang an gleich Rollen den Personen zugewiesen. Hierdurch kümmerte sich jeder nur um seinen Bereich und dies auch mit wenig Kommunikation zwischen den Teammitgliedern über die Woche hinweg. Wir haben uns auch gleich auf eine Umsetzung (OpenNI) festgelegt und stur versucht diese Möglichkeit umzusetzen, anstatt eine gute Recherche in mehrere Möglichkeiten durchzuführen und danach Evaluieren welchen Weg man gehen möchte. Auch durch falsche Setzung von Fokuspunkten im Projekt haben wir viel Zeit verschwendet.

Ein Kompatibilitätsproblem zwischen Kinect und zwei WIndoes Laptops führte dazu, dass am Ende die Kinect nur noch auf dem Apple MacBook funktioniert hat.

Viele Onlinetutorials, Wissenschaftliche Arbeiten oder Videos haben viel über die Kinect V2 Funktionen gezeigt. Allerdings hatten wir die Kinect V1.

Viele alte Texte die sich auf die Kinect V1 bezogen haben, haben auch Terminologien verlinkt, die heutzutage nicht mehr aktuell sind oder nicht mehr existieren.

Was hätten wir gerne noch geschafft

Positionstracking der Person im abgegrenzten Raum, hier auch keine vollständige Abhängigkeit von Tiefenwerten. Eine funktionierende Segmentierung als Basis des Positions-Trackings Zugriff auf bestimmte Blobs implementieren als Ersatz für die Gestensteuerung.

Unterscheidung von Körperteilen und Interaktion mit Objekten (gegeständen; Tore öffnen) im Spiel

Und natürlich Implementieren der eigentlichen Game-Loop


Resumeé

Aufgrund der obigen Probleme konnte des Programm nicht zufriedenstellend realisiert werden. Eventuell hätte eine neuere Kinect Version es ermöglicht den Zeitverlust noch aufzuholen, durch nutzen von Windows SDK oder Windows Hello.

Alle Dateien inklusive Programmcode sind hier zu finden: Project Alice