PepperLeapMotion

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

Idee

Mithilfe des Pepper Ghost Effekts und einer Leap Motion Steuerung sollen unterschiedliche Hologramme interaktiv über Handgesten gesteuert werden.

Pepper Ghost Effekt

Der Pepper´s Ghost Effekt stammt aus dem 19.Jahrhundert und wurde von John Henry Pepper entdeckt. Bei diesem Effekt wird mittels eines einfachen Flachglases, spezieller Beleuchtung und unter Berücksichtigung der Reflexion des Glases eine optische Täuschung erzeugt. Heutzutage werden anstatt des Flachglases oftmals die verschiedensten Kunststoffscheiben (beispielsweise Plexiglas) verwendet.
Der Name Pepper´s Ghost Effekt ist darauf zurückzuführen, dass es zur Zeiten der Entdeckung nur schwaches Licht gab, wodurch die entstandenen Bilder sehr blass wirkten und oftmals Geister und Gespenster dargestellt wurden. So bekam wurde der Effekt unter dem Namen Pepper´s Ghost Effekt bekannt.

Systemarchitektur

10 PepperLeapMotion Systemarchitektur.png

Hardware

Benötigte Komponenten

  • Laptop mit ausreichend Rechenleistung je nach Komplexität der anzuzeigenden Grafiken
  • Leap Motion
  • 3D Holographie Pyramide

Software

Installationsanleitung der benötigten Software

Installationsanleitung für die Leap Motion Steuerung über openFrameworks (OF) in Visual Studio (VS)

  • Visual Studio
  1. Installation von Visual Studio (Community Version ist hierbei vollkommen ausreichend) sofern noch nicht vorhanden und installieren sie das Paket xyz.
  • openFrameworks
  1. Herunterladen der openFrameworks (OF) Version V 0.9.8 entweder von der Homepage https://openframeworks.cc/versions/v0.9.8/ oder direkt vom Content Service „of_v0.9.8_vs_release.zip“. Hierbei sollte darauf geachtet werden, dass die Version für Visual Studio (VS) geeignet ist, da man openFrameworks beispielsweise auch mit QT verwenden kann.
  2. Anschließend entpacken der Datei und den entpackten Ordner beispielsweise im Dokumentenverzeichnis ablegen. Innerhalb dieses Ordners werden später alle openFrameworks Projekt erstellt, bearbeitet und gespeichert.
  • Leap Motion
  1. Um später mit der Leap Motion arbeiten zu können, muss einerseits ein Addon für openFrameworks heruntergeladen werden „ofxLeapMotion – master“ als auch ein DeveloperKit „LeapDeveloperKit_3.2.0+45899_win“.
    Diese beiden Dateien können entweder aus dem Internet (https://github.com/ofTheo/ofxLeapMotion/blob/master/README.md und https://www.leapmotion.com/setup/ ) oder vom Content Service heruntergeladen werden.
  2. Der „ofxLeapMotion-master.zip“ Ordner muss zunächst entpackt werden und im Ordnernamen muss das Wort - master entfernt werden. Anschließend muss dieser Ordner mit dem gesamten Inhalt in das openFrameworksverzeichnis verschoben werden, unter folgendem Pfad:
    ....\Documents\of_v0.9.8_vs_release\of_v0.9.8_vs_release\addons --> ofxLeapMotion
  3. Anschließend muss ebenfalls das „LeapDeveloperKit_3.2.0+45899_win.zip“ entpackt werden und an einem für den Benutzer passenden Ort abgelegt werden.
  4. Im nächsten Schritt muss eine Path-Variable angelegt werden, die auf den LeapDeveloperKit_3.2.0+45899_win referenziert.
  5. Eine Path-Variable legt man unter Windows 10 folgendermaßen an. (Für andere Betriebssysteme ist es ähnlich, wird an dieser Stelle jedoch nicht beschrieben):
    1. Windows-Taste --> Systemsteuerung
    2. Suchfenster --> „erweiterte Systemeinstellungen anzeigen“
    3. Umgebungsvariablen auswählen
      01 PepperLeapMotion Systemeigenschaften.png
    4. Neue Path-Variable anlegen mit dem Namen LEAP_SDK (kann auch beliebig anders benannt werden, muss jedoch im Folgenden dann vom Benutzer selbstständig angepasst werden) und dem dazugehörigen Pfad zum SDK Beispiel C:\Users\Michaela\Documents\08_Uni\7_Semester\Interaktion\Praktikum\LeapDeveloperKit_3.2.0+45899_win\LeapSDK
      02 PepperLeapMotion Systemvariablen.png
  6. Nun sind alle Installationen soweit abgeschlossen und ein neues Projekt kann angelegt werden.
  7. Für das Anlegen eines Projekts wird von openFrameworks ein projectGenerator zur Verfügung gestellt.
    Dieser ist unter folgendem Pfad zu finden:
    \of_v0.9.8_vs_release\of_v0.9.8_vs_release\projectGenerator-vs
  8. Möchte man nun ein Projekt für die LeapMotion generieren, so ist das Feld des Project names auszufüllen (hier Beispielprojekt). Beim Project path muss darauf geachtet werden, dass das Projekt im apps Ordner gespeichert wird ....\of_v0.9.8_vs_release\of_v0.9.8_vs_release\apps\myApps.
    Bei den Addons muss das ofxLeapMotion ausgewählt werden.
    Anschließend wird über den Button „Generate“ das Projekt generiert. Die IDE kann sofort geöffnet werden.
    03 PepperLeapMotion Generator.png
    Ein Update auf die Version V141 ist hierbei nicht notwendig
    04 PepperLeapMotion Update.png
  9. Nun wurde erfolgreich ein Projekt in Visual Studio erstellt. Um später den Leap Motion Source Code erfolgreich übersetzen zu können, müssen nun noch ein paar Einstellungen im Compiler und im Linker verändert werden:
    1. Unter dem Reiter Projekt --> Eigenschaften müssen die Konfigurationseigenschaften geöffnet werden.
    2. Nun müssen jeweils die Referenzen auf die Leap Motion eingebunden werden. Alle folgenden Punkte müssen sowohl für die „Debug“ als auf die „Relase“ Konfiguration durchgeführt werden. (Sofern beide Konfigurationen verwendet werden.)
      1. C/C++ --> Allgemein --> Zusätzliche Includeverzeichnisse
        $(LEAP_SDK)\include hinzufügen
        (sofern die Path-Variable LEAP_SDK benannt wurde)
        05 PepperLeapMotion Compiler 01.png
      2. Linker --> Allgemein --> Zusätzliche Bibliotheksverzeichnisse
        $(LEAP_SDK)\lib\x86 hinzufügen
        06 PepperLeapMotion Compiler 02.png
      3. Linker --> Eingabe --> Zusätzliche Abhängigkeiten
        Leap.lib
        07 PepperLeapMotion Compiler 03.png
      4. Buildereignisse --> Postbuildereignisse --> Befehlszeile
        xcopy /yr "$(LEAP_SDK)\lib\x86\Leap.dll" "$(TargetDir)" hinzufügen
        08 PepperLeapMotion Compiler 04.png
  10. Nun sind alle Compiler und Linkereinstellung passend gesetzt und dem Programmieren steht nichts mehr im Weg. Unter folgendem Pfad ist nun das Beispielprojekt gespeichert.
    09 PepperLeapMotion Projekt.png


Aktueller Stand

Akutell ist es möglich, verschiedene 3D-Objekte, die über die Tastenkombinationen 1-4 umgeschaltet werden, im Raum per Maus zu drehen.
12 PepperLeapMotion Auto.PNG13 PepperLeapMotion Flugzeug.PNG
14 PepperLeapMotion Schraube.PNG15 PepperLeapMotion Schwert.PNG

Des Weiteren sind die Handstrukturen über die Leap Motion zu erkennen und die ersten Funktionen zur Auswertung der Gesten getestet.
10 PepperLeapMotion Hand links.JPG
11 PepperLeapMotion Hand rechts.JPG


Aufgrund der langen Installationsdauer ist man im Rahmen des Praktikums leider nicht weiter gekommen.
Das Projekt soll jedoch in Zukunft fertig gestellt werden.