MoveTVControl

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

Dieser Eintrag beschreib das Semester Projekt von Best Josua, Harwart Eduard, Hoffmann Marius und Weiskirchen Stefan im Semester SS2016. Für eine detailliertere Beschreibung gehen Sie bitte auf die Präsentation(vgl. Resultat) Ausgangsidee dieses Projekts ist die Steuerung eines TV Gerätes mittel Gesten. Durch Mittel der Bilderkennung werden Gesten erkannt und dann in IR Signale "gewandelt" welche ein TV Gerät(Toshiba-Interaktionslabor)steuert. Im folgenden wird ein kurzer Artikel die Realisierung dieses Projektes erklären.


Team:

Das Team besteht, wie bereits erwähnt aus einer Gruppe von vier Personen. Grundlegend wurde die Gruppe in 2 Untergruppen aufgeteilt. Die erste Gruppe (Best, Weiskirchen) hat die IR Signal Erzeugung erstellt. Die zweite Gruppe (Harwart,Hoffmann) die Bildanalyse und Dokumentation. Im letzten Drittel des Projektes wurden beide Teile zusammengeführt.

Team interaktion.PNG

Idee:

Durch intuitive Gesten (Siehe Präsentation) werden grundlegende Befehle (Programm +- und Vol. +-) ausgeführt. Eine solche Bedienung ist moderner und interessanter (außerdem passt es zum Fach Interaktion) als konservative Fernbedienungen.

Movetvcontrol gesten.PNG

Konzept:

Movetvcontrol hardware.PNG

Hardware Gestenerkennung:

Um Gesten erkennen zu können muss eine Bildaufnahme und Bildverarbeitung gemacht vollzogen werden. Das Bild, in unserem Fall der User, wird mit einer MS Kinect v1 aufgenommen die mittels USB mit einem Rechner verbunden ist. Die Kinect bietet durch ihre verschiedenen Sensor Einrichtungen die Möglichkeit eine Person zuerkennen und Bewegungen nachzuvollziehen.

Hardware IR Signal:

Um das Signal mittels Infrarot an den Fernseher übertragen zu können wurde ein Arduino mit Infrarot-LED und Infrarot-Empfänger verwendet.

Software Gestenerkennung:

Das Programm zur Gestenerkennung wurde als Win32-Konsolenanwendung in C++ implementiert (VisualStudio 2015 Communitiy). Hierbei wurde das Microsoft Kinect SDK 1.8 verwendet, das Methoden zur Anbindung und Kommunikation mit der MS Kinect V1 bietet. Die Kamera ermöglicht ein Tracking von bis zu sechs Personen (Aufnahmegeschwindigkeit 30fps). Die relative Positionsdaten der Gelenke in Koordinatensystem (-1.6 bis 2.2, x/y/z Achse) werden von der Kinect bereitgestellt. Bei der realisierten Gestenerkennung handelt es sich um eine algorithmische Gestenerkennung.

Algorithmus: Mit einer Geschwindigkeit von 3 fps werden die Koordinaten von Hand, Ellbogen und Schulter eingelesen. In der restlichen Zeit "schläft" der Prozess. Die wichtigsten Beziehungen sind Abstand der Hand/ Hand-last Possession, Hand/Ellbogen, Hand/Schulter. Bei dieser Implementierung werden nur die X und Y Koordinaten verglichen, die Z Koordinate wird nicht berücksichtigt.

Die erkannten Gesten werden auf der Konsole ausgegeben und via COM an den Arduino gesendet.

Ein-Ausschalten (nicht implementiert): 0 
Programm +-: 1, 2
Volumen +-: 3, 4
Keine Geste erkannt: 5

Download: [1]

Software IR Signal:

Das Programm (Arduino Studio 1.6.8) des Arduinos ist so aufgebaut das dieser auf ein COM-Signal wartet und dieses auswertet. Ist das empfangene Zeichen eine 0-4 so wird über die Infrarot-LED der entsprechende Code an den Fernseher gesendet. 0 (Power-Toggle), 1 (Pgr+), 2 (Pgr-), 3 (Vol+), 4 (Vol-). Die Zeichen 5-9 bewirken ein Quittieren des Befehls (0xFFFFFF) was auch nach jedem der vorherigen Zeichen nach einer kleinen Verzögerung gesendet wird. Alle weiteren Zeichen werden verworfen. Sobald der Code für ein Zeichen abgearbeitet ist wird im Eingabestring der COM-Schnittstelle nach dem nächsten Zeichen gesucht. Falls keines existiert wird gewartet.

Download: [2]

Hierzu wird der Header IRremote.h benötigt: [3]


Resultat:

Mithilfe der Gestenerkennungsfernbedienung (MoveTVControl) kann nun noch fauler fern gesehen werden!

Präsentation: [4]

06.07.2016 Best, Harwart, Hoffmann, Weiskirchen