Projekt 15: Gestenerkennung der Kinect zur Ansteuerung von LED, Servos u.s.w.: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 155: Zeile 155:
</syntaxhighlight>
</syntaxhighlight>


[[Datei:Path.png]|300px|thumb|right|Bearbeiten der Path Variable]
[[Datei:Path.png|300px|thumb|right|Bearbeiten der Path Variable]]
Als nächstes muss in dem Kinect V2 SDK von Microsoft der Ordner gefunden werden, welcher die Dateien "Kinect20.Fusion.dll" und "Kinect20.Face.dll" enthält. Bei der aktuellen Version des Entwicklungskits ist dies der Ordner "C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\bin". Dieser muss nun der Systemumgebungsvariable Path hinzugefügt werden. Dazu können nebenstehende Schritte befolgt werden.  
Als nächstes muss in dem Kinect V2 SDK von Microsoft der Ordner gefunden werden, welcher die Dateien "Kinect20.Fusion.dll" und "Kinect20.Face.dll" enthält. Bei der aktuellen Version des Entwicklungskits ist dies der Ordner "C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\bin". Dieser muss nun der Systemumgebungsvariable Path hinzugefügt werden. Dazu können nebenstehende Schritte befolgt werden.  



Version vom 16. Januar 2018, 15:49 Uhr


Autoren: Torben Müller,Jerome Wolf

Professor: Prof. Dr. Mirek Göbel

Einleitung

Dieser Wiki Artikel behandelt das Projekt 15 Gestensteuerung der Kinect der Studenten Torben Müller und Jerome Wolf im Rahmen des GET Fachpraktikums aus dem 5. Semester Mechatronik und stellt eine nachhaltige Dokumentation über Vorgehensweise der Bearbeitung und Inhalt des Projektes dar. Die Aufgabe besteht darin, den Kinect V2 Sensor mit Hilfe von Matlab zur Ansteuerung verschiedener Aktuatoren zu verwenden und somit Bewegungen in echte Reaktionen zu transformieren.


Erwartungen an die Projektlösung:

  • Einarbeitung mittels Kinect Toolbox für Matlab
  • Konzeption eines Aufbaus und der passenden Beweungen dazu
  • Realisierung des Aufbaus mit Arduino Uni und prototypischem "shield"
  • Einlesender Skelett-Punkte über die Kinect-Kamera
  • Umrechnen/Verarbeiten/Ansteuern der Aktoren
  • Machen Sie ein tolles Video, welches die Funktionen visualisiert.
  • Test und wissenschaftliche Dokumentation
  • Live Vorführung während der Abschlusspräsentation

Schwierigkeit

  • Mechanik: -
  • Elektronik: **
  • Informatik: ***

Inhalt

Planung

Typischer weise befindet sich eine Kinect Kamera im Wohnzimmer des entsprechenden Besitzers. Auf dieser Vorraussetzung ist die Idee der Home Automation sehr naheliegend. Vorstellbar sind hier beispielsweise die Helligkeitssteuerung der Lampen, die Lautstärkeregelung des Hifi-Systems, eine Temeraturregelung der Heizungen und eine automatisierte Steuerung der Jalousien. Für dieses Projekt wurde eine Lichtsteuerung und eine Lautstärkeregelung ausgewählt, da diese Konzepte leicht zu modellieren sind.

Für die Lichtsteuerung wurden zwei verschiedene Anwendungsfälle ausgearbeitet. Der erste ist die Farbsteuerung einer RGB-LED und der zweite eine Helligkeitssteuerung zusammen mit einer Farbtemperatureinstellung an zwei weißen LEDs. Die Lautstärkeregelung wurde durch eine Transistorschaltung zur Verstärkung eines eingehenden Audiosignals realisiert. Somit gliedert sich die Schaltung in drei verschiedene Module. Nach genauerer Ausarbeitung dieser Schaltung wurden folgende Teile verwendet.

BOM:

Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer
Artikelname Anzahl Anbieter Bestellnummer


Nun musste ein Gestenkonzept entwickelt werden, das diese drei Module steuern kann. Die Grundidee dabei ist, drei verschiedene Steuersignale zu unterschieden, die einen Wechsel in die Steuerung der Einzelnen Module bewirken. Befindet man sich nun in der Steuerung eines Moduls, lassen sich über andere Gesten die einzenlen Funktionen in diesem Modul steuern. Um die Funktionen der beiden Lichtmodule zu regeln, wurde das Konzept eines Steuerkreuzes eingesetzt. Für die RGB-LED wird eine Triade simuliert, in welcher der Benutzer durch Bewegen seiner Hand dynamisch jede Farbe einstellen kann. Die Lichtsteuerung des zweiten Moduls wird durch ein Steuerkreuz auf der anderen Hand geregelt. Hier ist in vertiakler Bewegungsrichtung eine Regelung der Helligkeit und in horizonatler Richtung eine Steuerung der Farbtemperatur möglich

Hardware

Die geplanten Schaltung sollte auf ein Arduino shield aufgebracht werden und wurde dazu vorher in Fritzing entworfen. Die einzelnen Module wurden mit jeweils verschiedenen PWM Pins des Ardunio angesteuert. Dies resultiert in folgende Schaltung:


Software

Zum erkennen der Gesten und zum ansteuern des Arduino sollte die Software Matlab verwendet werden. Für diese Bearbeitung wurde die Version 2016a von Matlab verwendet.

Installation

Zuerst müssen in Matlab die nötigen Ressourcen eingerichtet werden. Um eine serielle Schnittstelle zu dem Arduino aufzubauen und Steuersignale an diesen zu senden, wird die Matlab Arduino Toolbox [1] benötigt. Dieses lässt sich leicht über Matlab's internen Add-On Manager installieren.

Die Informationen von dem Kinect Sensor wurden über das Kinect V2 Interface for Matlab ausgelesen [2]. Dieser Toolbox liegt eine Installationsanleitung bei, jedoch ist diese nicht sonderlich deutlich. Darum hier nochmal eine klare Anleitung zur Installationsweise.

Zuerst muss neben der Toolbox auch noch das Microsoft eigene Entwicklungskit installiert werden [3]. Außerdem wird neben Matlab noch Visual Studio 2012 oder neuer benötigt. Sind nun alle Komponenten vorhanden, so muss zu erst in Matlab der Compiler gesetzt werden. Dazu in dem Command Window folgenden Befehl ausführen

mex -setup C++

Als nächstes muss die Datei "compile_cpp_files.m" bearbeitet werden. Hier gilt es die Pfade für IncludePath und LibPath zu überprüfen. Ersteres muss auf den Ordner "inc" in der Installation der Kinect SDK verweisen und zweiteres auf den "x64" Ordner in "Lib":

IncludePath = 'C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\inc';
LibPath = 'C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\Lib\x64';
Bearbeiten der Path Variable

Als nächstes muss in dem Kinect V2 SDK von Microsoft der Ordner gefunden werden, welcher die Dateien "Kinect20.Fusion.dll" und "Kinect20.Face.dll" enthält. Bei der aktuellen Version des Entwicklungskits ist dies der Ordner "C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\bin". Dieser muss nun der Systemumgebungsvariable Path hinzugefügt werden. Dazu können nebenstehende Schritte befolgt werden.


Programmablauf

while(true)

end


Wesentliche Erkenntnisse des Projektes

Schritt für Schritt Anleitung

Details wie BOM, ggf. Programmablaufpläne



Quelle mit [4].

Zusammenfassung

Ergebniss

Was kann man verbessern

Diese Projekt ist aus der Veranstaltung GET Fachpraktikum Projektübersicht.


Literaturverzeichnis


Korrektur/Rückmeldungen