Fingerfarben

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

Ergebnis.jpg

Fingerfarben


Idee und Konzept

Die Idee bei diesem Projekt war eine Art Paint für den Multitouchtisch zu erstellen. Der Clou dabei sollten Farbtöpfe und Farbregler sein, die dem Benutzer eine Anzeige der Farbe und deren Veränderungen ermöglichen. Hierbei sollten Farben flexibel geändert werden können und für den jeweiligen Farbtopf gespeichert werden, sodass der Benutzer jederzeit darauf zugreifen kann.

Konzept-Interaktion.png


Anwendungsbestandteile:


Farbregler:

Insgesamt werden bei den Fingerfarben 3 Farbregler verwendet. Diese Farbregler werden mithilfe Markern/Fiducials erkannt. Jeder Marker (Regler) hat dabei seinen eigenen Wert/Aufgabe (Brightness etc.) und wird vom Tisch erkannt (eine ausführliche Erklärung zu der Funktionsweise von Fiducials siehe weiter unten). Durch drehen dieser Farbregler werden die Werte für die Farbe geändert, z.B. bei Brightness die Helligkeit. Diese Änderung ist parallel/zur Echtzeit im Farbtopf sichtbar.

Farbregler 1.jpg


Farbtopf:

Im Farbtopf wird die Farbe angezeigt, die durch die 3 Farbregler eingestellt wurde. Hier kann der Benutzer sehen, wie die Farbe im Endergebnis aussieht und diese bei Bedarf abspeichern. Genauso wie bei den Farbreglern, wird bei dem Farbtopf ein Marker am Boden des Topfes verwendet. Der Farbtopf ist in der Anwendung die Hauptkomponente, da sie den eigentlichen Spaß an der Anwendung darstellt.


Zeichenfläche:

Die Zeichenfläche erstreckt sich über den ganzen Multitouchtisch und wurde simpel gehalten.


Pinsel:

Der Pinsel wurde schlicht gehalten und von Grund auf neu programmiert. Hierbei ergaben sich auch schon die ersten Probleme (siehe Abbildungen).


Abbildung 1.jpg Abbildung 2.jpg


Werkzeuge und Komponenten

Komponenten


Komponenten.png

Multitouchtisch

XDesk wurde von impressX hergestellt und wird für die Werbung, PoS , Präsentation, Beratung, für Museen, Veranstaltungen und Messen angeboten. Seit 2012 ist XDesk im Betrieb an der GSO-Hochschule.

Technische Eigenschaften: XDesk wiegt 76 kg und die Maße entspricht 1130 x 910 x 900 mm. Der XDesk hatte ursprünglich Windows-XP Betriebssystem und wurde auf Windows-7 aktualisiert.


Steuerungs-PC ist mit folgenden Peripherien ausgerüstet: 2,4 Ghz Intel Core 2 Dual processor

Memory: 1GB dual Channel DDR2 (entspricht 2GB RAM)

Festplatte: 250 GB Serial-ATA mit 7.200 U/Min

ATI HD4850 Grafikkarte.

Multitouch Screen:

Display (lxb): 1090x790 mm

52“ WXGA 3LCD-Technologie Screen

WXGA 1280x800

1777 Millionen Farben

Kommunikation:

Internes Bluetooth 2.1+EDR Modul (Enhanced Data Rate)

10/100/1000BASE-T Gigabit-Ethernet integriert (RJ-45-Anschluss)

Anschlüsse:

Fünf USB 2.0 Anschlüsse (4 Belegt)

Netzkabel


Marker/Fiducials

Fiducials oder auch Passmarker genannt sind modellbasierte Marker. Die verschiedenen Marker werden mittels ihrer Hierarchie unterschieden. Jeder Marker hat dabei einen anderen Schwerpunkt der „Blätter“, also der einzelnen schwarzen Punkte und Ränder.

Für den Multitouchtisch wurden spezielle Marker verwendet, die auf einem schwarzen Hintergrund mit einer speziellen Farbe gedruckt sind und erst im Infrarotlicht sichtbar werden.

Bei beiden Markern ist die Auswertung der Multi-Touch-Event gleich. Diese funktioniert mithilfe einer dafür geeigneten Tracking-Software wie z.B. reacTIVison, Touchlib, etc..


TUIO Protokoll

Das inzwischen weit verbreitete TUIO (Tangible User Interface Objects) ist ein quelloffenes Framework, das ein gemeinsames Protokoll und ein API für Multitouch-Oberflächen definiert. Das TUIO-Protokoll liefert eine Schnittstelle zwischen der Benutzereingabe und den zugrunde liegenden Applikationsschichten. Das TUIO Protokoll setzt auf OSC-Protokoll (Open-Sound-Control) auf, welches hauptsächlich für die Echtzeitverarbeitung von Sound und Multimedia-Installationen verwendet wird.


Eclipse

Ist eine integrierte Entwicklungsumgebung (IDE), die ursprünglich für die Programmiersprache JAVA genutzt wurde. Es ist ein quelloffenes Programmierwerkzeug, mit dessen Hilfe Software verschiedenster Art programmiert werden kann. Mittlerweile wird es aber auch für viele andere Entwicklungsaufgaben eingesetzt (wie in unserem Fall die Einbettung von MT4J).


MT4J

MT4J ist die Abkürzung für „MultiTouch 4 Java“ und stellt ein Open Source Java-Framework dar, welches für das grafische Rendering auf OpenGL und Processing aufbaut. Es kann sowohl für 2D als auch für 2.5D (pseudo 3D) Anwendungen verwendet werden und unterstützt somit die Interaktivität der Multitoch-Geräte. MT4J besitzt eine Eingabe- Abstraktionsschicht , eine Szenengraphstruktur und unterstüzt die Windows7 Touch features.

Der Vorteil liegt darin, dass es die Cross-platform-Funktionalität aufweist und somit auf allen Betriebssystemen läuft. Die Einbettung in beispielsweise Eclipse, wird auf der Internetseite von MT4J Schritt für Schritt erklärt und veranschaulicht. Außerdem liefert MT4J viele Beispiel-Applikationen, die dem Benutzer/Programmierer die Möglichkeiten von MT4J und deren Umsetzung näher bringen.

Die Übertragung der Multi-Touch-Bewegungsdaten geschieht mittels des TUIO- Protokolls (welches ebenfalls open source ist). Entsprechende WM_TOUCH-Nachrichten übertragen dann die Bewegungsinformationen auf Windows. MT4J wartet auf einkommende TUIO-Daten, die über den Port 3333 übertragen werden. Diese Daten werden mittels einer Tracking-Software ausgelesen und an MT4J weitergegeben. MT4J liest diese Daten nun aus und bestimmt, um welche Art von Geste es sich handelt (Finger-Input, Marker etc.).


TUIO-Simulator

Der TUIO-Simulator ist eine Java-basierte Anwendung, die TUIO-Daten, und somit einen theoretischen Ablauf der entwickelten Applikation simuliert. Dieser wurde während der Entwicklung und bei "Home-Programming" für Testzwecke benutzt.


Herausforderungen/Probleme

Pinselprogrammierung:

Anfangs wurde angestrebt einen Pinsel, bestehend aus Ellipsen zu programmieren. Bei langsamen malen, funktionierte dieser Pinsel einwandfrei, bei schnelleren malen wurden jedoch nicht genügend Punkte vom Tisch übermittelt und somit Lücken zwischen den Ellipsen sichtbar. Also wurde sich drauf geeinigt diese Lücken mit Linien zu füllen. Dies funktioniert recht passabel, wenn man gewisse Abfragen beim Code berücksichtigt. Bei längerem Malen wird die Performance immer geringer. Nicht zu verbessern ist die schlechte Darstellung bestimmter Linien, dessen Implementierung Teil von MT4J ist.


MT4J:

Nach kurzer Zeit merkten wir bei MT4J, dass der Support veraltet ist. Die letzten Verbesserungen/Updates liegen 4 Jahre zurück. Ebenfalls wussten wir nicht, dass um die Applikation überhaupt auf dem Multitouch-Tisch zum laufen zu bringen, bestimmte .dll-Dateien notwendig sind. Hierbei mussten wir uns an Projekten früherer Semester orientieren und diese in den Ordner, indem unsere .jar-Datei hinterlegt war, hinzufügen. Danach startete die Applikation reibungslos.


Der Multitouch-Tisch:

Trotz Kalibrierung, ergeben sich teils falsche Eingaben. Oft werden Marker nicht erkannt. Auch die Bläschenbildung auf der beschichteten Glasplatte führte zu falschen Input-Ergebnissen.


Programmcode und Ressourcen

Verzeichnis im Content Service der TH


Quellen

http://www.mt4j.org/mediawiki/index.php/Main_Page

http://www.tuio.org

http://reactivision.sourceforge.net/

http://www.impressx.com