[> Technik der raum:station[01]

Aufbau

Funktionsschema Interaktiver Tisch


Wie in diesem Bild zu sehen, besteht die raum:station[01] aus dem eigentlichen Tisch und einer externen Projektion (A und B), z.B. für eine begleitende Videokonferenz.

Im Tisch (C) ist eine matte Projektionsfläche eingelegt, auf die der Beamer (G) sein Bild projiziert. Da hochauflösende Beamer zur Zeit nicht mir extremen Weitwinkelobjektiven produziert werden, ist es nötig, den Projektionsstrahl über einen Folienspiegel (D) umzuleiten. Der Beamer kann so, wie vom Hersteller spezifiziert, waagerecht aufgestellt werden. Leider führt diese Konstruktion auch zu einer Vergrößerung des Tischs.

Auf der interaktiven Oberfläche (C) liegende Objekte sind auf ihrer Unterseite mit fiducial-Markern (E) bedruckt, die einfach aufzubringen und technisch leicht identifizierbar sind. Sie sind von unten durch die Projektionsfläche sichtbar und werden mit den Infrarot-Strahlern (F) beleuchtet. Die Kamera (H) nimmt über den Spiegel (D) ein Bild von der Unterseite der Projektionsfläche auf. Ein Infrarot-Filter vor der Kamera sperrt das Licht des Projektors und lässt nur das infrarote Licht der Strahler (F) hindurch. Auf dem Kamerabild sind nicht nur die Marker, sondern auch Berührungen der interaktiven Oberfläche mit dem Finger erkennbar. Da sie matt ist, wird eine Fingerberührung erst kurz über der Oberfläche als scharf umrissener heller Punkt sichtbar.




Der Rechner (K) verarbeitet die Kameradaten zu Touch- und Marker-Informationen, die er per Netzwerk an den Rechner (J) übergibt. Er realisiert das visuelle Feedback und steuert die Tisch-Projektion.


IR_und_Kamera

Aufbau von Innen: Zwei Rechner, IR-Scheinwerfer und eine Kamera


Erkennung mit reacTIVision

Im nächsten Schritt werden die Kamerabilder zu einfach auswertbaren Zustandsbeschreibungen verarbeitet, z.B. auf dem Tisch liegt zur Zeit ein Marker an Position x,y und ein Finger an Position x,y.

Für die Analyse von Fingerberührungen im Kamerabild gibt es z.Z. eine ganze Reihe von Programmen und Bibliotheken. Einen guten Überblick gibt http://www.nuigroup.com

Wenn Fingerberührungen und Marker kombiniert erkannt werden sollen, wird z.Z. überwiegend reacTIVision eingesetzt. Diese Software läuft auf dem Rechner (K) und analysiert fortlaufend das Kamerabild und sendet über das Netzwerk TUIO-Nachrichten an den Rechner (J). Das sieht z.B. so aus:

/tuio/2Dcur set 27 3 0.2 0.3 3.1415927



Das bedeutet, dass ein Marker mit der Session-ID 27 und der Class-ID 3 an Position 0.2, 0.3 (Wertebereich ist hier 0..1, also 20% der Breite und 30% der Höhe des Interfaces) sitzt und eine Rotation von 1800, d.h PI (Wertebereich 0..2PI) hat.
Hier können noch eine Reihe weiterer Parameter übertragen werden, z.B. Geschwindigkeit und Beschleunigung. Genaueres ist in der TUIO-Spezifikation unter http://www.tuio.org/?specification beschrieben.

Für die Anwendungsentwicklung ist es hilfreich, die TUIO-Nachrichten in der lokalen Entwicklungsumgebung zu simulieren. Dazu existieren eine Reihe von Simulatoren, z.B. der plattformunabhängige TUIO-Simulator.

Ein PDF-Dokument mit dem von uns benutzten Marker-Set ist hier hinterlegt.


Verarbeitung der TUIO-Events / Visualisierung

Die TUIO-Nachrichten können von einem beliebigen Client verarbeitet werden. Es existieren Implementierungen für C++, Java, C#, Processing, Pure Data, Max/MSP, Quartz Composer u.a.
Die raum:station[01] arbeitet hier hauptsächlich mit Processing.

Voraussetzung ist die Einbindung der Bibliothek TUIO_Processing.zip (ins “libraries”-Verzeichnis legen). Dort sind einfache Beispiele zu finden.
Nach dem Einbinden mit

import TUIO.*;

und der Instanzierung mit

TuioProcessing tuioClient  = new TuioProcessing(this);

stehen verschiedene Events zur Verfügung. Z.B. für das Hinzufügen eines Markers:

void addTuioObject(TuioObject tobj) {
   println("add object "+tobj.getSymbolID()+" "+tobj.getX()+" "+tobj.getY());
}


tuio_processing


Zusammenfassung der Funktionsweise

Beim Auflegen eines Markers wird dieser durch die Kamera erfasst, da das Markerbild scheint durch die matte, halbtransparente Oberfläche hindurchscheint und von unten mit infrarotem Licht angeleuchtet wird. Die Software reacTIVision analysiert permanent die Kamerabilder und verarbeitet sie zu TUIO-Nachrichten, die über das Netzwerk an einen Client geschickt werden. Der Client erstellt passend zum Zustand des Tisches eine Visualisierung und projiziert sie über den internen Beamer von unten auf die Tischoberfläche. Da die Kamera nur infrarotes Licht sieht, bleibt ihr das Beamerbild verborgen.


Besonderheiten der raum:station[01]

Die raum-station[01] ist eine Spezialanfertigung und enthält einige experimentelle Erweiterungen, die je nach Bedarf ausgebaut werden. Zur genaueren Eingabe existiert ein Stift, der bei Berührung der Oberfläche infrarotes Licht aussendet. Es ist geplant, diese Eingabeform zu erweitern und z.B. verschiedene Werkzeuge am Stift einstellen zu können. Für die Übertragung dieser Information vom Stift zum Rechner wird das Licht moduliert und an einem Empfänger ausgewertet und über eine TUIO-Nachricht im Netzwerk ausgesendet.

Stylus_no1

Stylus 1 zur Eingabe

Um die Eingabe auch nur mit dem Stift zuzulassen und die damit verbundene Handauflage zu ignorieren, kann per Software die IR-Beleuchtung abgeschaltet werden.