Multi-Touch-Table (Forschungsprojekt 2009) Entwicklung eines Multi-Touch-Table (Forschungsprojekt 2009) (2009)

Entwicklung eines infrarotbasierten Multi-Touch-Table unter Einsatz normal erhältlicher Komponenten und moderater Kosten

Hintergrund

Spätestens seit dem Jahr 2006 sind Multi Touch Tables recht bekannt, da die ersten Videos von experimentellen Projekten im Internet aufgetaucht sind.

Seitdem haben sich auch zahlreiche kommerzielle Anbieter dem Thema angenommen. Bekanntester Anbieter ist sicherlich Microsoft mit seinem Surface-Projekt.

Während der Erwerb eines solchen kommerziellen Produktes aktuell etwa 10.000 $ kostet, kann ein funktionierender Multi Touch Table aber auch für unter 500 € selbst hergestellt werden.

In diesem Artikel wird versucht, die Erstellung eines solchen low cost Multi Touch Tables möglichst detailiert zu dokumentieren.

Diese  Dokumentation ist nicht als Bauanleitung zu verstehen. Jegliche Verwendung dieser Informationen geschieht auf eigene Gefahr und auf eigenes Risiko. Insbesondere - aber nicht ausschließlich - das Entfernen des IR-Filters der verwendeten Webcam birgt bei unsachgemäßer Durchführung das Risiko einer Beschädigung bis hin zum Defekt der Kamera.

Wie funktioniert ein Multi Touch Table?

Die Funktionsweise eine Multi Touch Tables ist eigentlich sehr einfach - das Geheimnis liegt eigentlich nur in dem optischen Verhalten einer dicken Acrylglas-Scheibe:

Auf die Acrylglas-Scheibe wird seitlich infrarotes Licht gestrahlt.
Durch den Effekt der Totalreflexion kann das Licht die Acrylglas-Scheibe Scheibe nicht durch die Glasfläche verlassen. Wird die Glasfläche jedoch berührt, verhindert dies an dieser Stelle die Totalreflektion. Dort wird Streulicht erzeugt, welches das Acrylglas verlassen kann.

Totalreflektion

Filmt man die Scheibe nun von unten mit einer Infrarot-Kamera, so leuchten jene Stellen, an welchen die Finger die Scheibe berühren. Durch Auswertung des Kamerabildes lassen sich diese Bereich isolieren und dadurch Software-Ereignisse ähnlich eines bzw. mehrerer Mauszeigers erzeugen.

Die Infrarot-Kamera

Die Kamera für den Multi Touch Table darf nur infrarotes Licht empfangen. Die meisten Webcams sind jedoch auf den normal sichtbaren Bereich optimiert. Darüber hinaus enthalten sie fast immer auch einen Infrarot-Filter, der das Licht im IR-Bereich darüber hinaus herausfiltert.

Natürlich kann man auch digitale Videokameras erwerben, welche das umgekehrte Verhalten aufweisen und somit nur Licht im IR-Bereich aufzeichnen. Während eine normale Webcam für unter 100,- zu bekommen ist, liegt der Preis für eine IR-Kamera in der Regel weit höher.

(Um Missverständnissen vorzubeugen: Mit IR-Kamera ist keine Wärmebildkamera gemeint. Diese kosten meist mehrere Tausend Euro. Hier geht es lediglich darum, den normalen IR Bereich sichtbar zu machen.)

Für eine möglichst gute Qualität des Kamerabildes wird hier als Grundlage eine Logitech QuickCam Pro 9000 Webcam verwendet. Diese verfügt über 2 Megapixel und Carl Zeiss-Optik mit Autofokus, was zu sehr guten und scharfen Ergebnissen führt.

Aus der Webcam wird eine Infrarot-Kamera

Die Webcam filtert aktuell also noch IR-Licht heraus und zeichnet normales Licht auf. Gewünscht ist aber das Gegenteil. Daher muss zuerst der in der Kamera enthaltene IR-Filter entfernt werden. Anschließend wird ein Filter angebracht, welcher nur IR-Licht passieren lässt.

Um den IR-Filter zu entfernen, muss die Webcam geöffnet werden: Geöffnete Webcam

Nun werden Linse und Autofokus abgenommen. Dazu müssen vorher das Lötzinn der Lötpunkte (siehe Pfeile), mit welchen der Autofokus angeschlossen ist, entfernt werden.
Lötpunkte vorher lösen

Auf der Platine verbleibt der Bild-Sensor. Wie alle optischen Bauteile der Kamera sollte er nicht berührt werden und weder Staub noch Schmutz ausgesetzt werden.
Der Bildsensor liegt nun frei

Im angenommenen Autofokus sieht man nun innen bereits den Infrarot-Filter. Es schimmert leicht rot, wenn man ihn gegen das Licht neigt.
Der Infrarot Filter

Dieser Filter muss nun entfernt werden. Leider ist er sehr gut eingeklebt und dazu das Glas noch sehr spröde. Eine einfaches Entfernen an einem Stück ist daher nahezu unmöglich. Beim heraus hebeln ist unbedingt eine Schutzbrille zu empfehlen, da kleinste Glassplitter umher fliegen. Zwischenzeitlich sieht der IR-Filter dann sehr zerkratzt und zerbrochen aus:
der IR-Filter ist bereits zur Hälfte abgetragen

Schließlich ist der Filter dann aber entfernt, so dass die darunter liegende Linse frei liegt.
Der IR-Filter ist entfernt

Nun muss die Webcam nur noch wieder zusammen gebaut werden.

Wahrscheinlich hat sich aber beim heraus hebeln des IR-Filters der Autofokus verstellt. Vor dem endgültigen Zusammenschrauben des Gehäuses sollte die Kamera daher noch an einen PC angeschlossen werden. Mit Drehungen an dem Rad des Autofokus (siehe Pfeil) kann man den Autofokus neu eichen.
Der Autofokus muss wahrscheinlich neu eingestellt werden

Wenn alles geklappt hat, kann die Webcam ab sofort auch infrarotes Licht erfassen. Mit einer normalen IR-LED sollte es dann bereits so aussehen:
Ab sofort erfasst die Webcam auch infrarotes Licht

Nun kann die Kamera zwar auch infrarotes Licht sehen - normales Licht wird aber auch noch erfasst. Um ihr dies abzugewöhnen, muss noch ein Filter angebracht werden, welcher nur noch für IR Licht durchlässig ist. Diese Filter sind im Fotohandel für ca.- 30-40 € erhältlich.

Wer es preiswerter wünscht, kann auch ein belichtetes Foto-Negativ verwenden. Dieses muss maximal belichtet sein, d.h. als Negativ komplett schwarz und undurchsichtig sein. Erfreulicherweise hat ein so belichtetes Negativ die Eigenschaft, dass es für IR Licht noch durchlässig ist. Nimmt man zwei bis drei Lagen dieses Negativs übereinander, hat man bereits einen günstigen Filter. Die Qualität ist nicht so perfekt, wie bei einem richtigen Fotofilter, aber für erste Versuche sollte es genügen.

Wer noch eine Wiimote übrig hat, kann auch die kleine schwarze Plastikmaske verwenden, welche vorn die eingebaute Kamera verdeckt. Da die Kamera der Wiimote ebenfalls nur IR Licht sehen soll, ist auch diese Plastikabdeckung ein passender Filter:
Wiimote IR-Filter

Die Infrarot-LED-Leisten

Um die Acrylglasscheibe mit infrarotem Licht zu beleuchten, werden Infrarot-Leuchtdioden verwendet. Für eine gleichmäßige Ausleuchtung und Positionierung empfiehlt sich die Montage in einer Leiste:
IR LEDs in Leiste

Im hier vorgestellten Projekt werden bei zwei Leisten von 80cm Länge insgesamt 112 IR LEDs im Abstand von 1,5cm verwendet.
32 LEDs im Abstand von 2.5cm

Verwendet man IR LEDs mit 1,5 Volt, kann man 8 Stück ohne Widerstand zu 12 Volt in Reihe schalten und somit leicht mit einem normalen (PC)Netzteil betreiben.
8 LEDs á 1,5 Volt = 12 Volt

Um die Verkabelung zu testen, benötigt man bereit die modifizierte Webcam, da das infrarote Licht der LEDs ja mit bloßem Auge nicht zu sehen ist.
Infrarot-Test

Ein erster Test mit einer 5mm Acrylscheibe bringt bereits viel versprechende Ergebnisse. In der endgültigen Version wird eine Scheibe mit 8mm verwendet, was das hier noch vorhandene Streulicht verringert. Man kann aber bereits gut das an den Berührungspunkten der Finger auftretende (und dort auch gewünschte) Streulicht sehen:
Erster Test für die Kamera Erkennung

Die Projektionsfläche

Neben der Acrylschreibe für die Berührungserkennung wird natürlich noch eine Projektionsfläche für die Computergrafik benötigt. Diese muss entsprechend mattiert sein, damit das projizierte Bild auch sichtbar wird.

Um die beste Oberfläche herauszufinden, wurden einige Versuche durchführt:
Projektionsflächen Tests
1. D-C-Fix transparent
2. Fensterfolie
3. Mattiert mit 800er Schleifpapier
4. beklebt mit Transparentpapier

Test für die Projektionsmaterialien

Die Projektionsfläche muss die Grafik gut anzeigen. Gleichzeitig muss aber auch das infrarote Streulicht der darüber liegenden Acrylscheibe gut und möglichst scharf hindurch gelassen werden. Nur so kann die modifizierte Webcam die Berührungen der Finger erfassen.

Die Tests ergaben, dass die Oberfläche 1. und 4. direkt ausscheiden: 1. ist zu transparent und streut das projiziere Licht zu sehr. 4. lässt das IR-Licht nicht ausreichend genug durch. Bleiben noch mattierte Fensterfolie und Behandeln der Oberfläche mit 800er Schleifpapier.

Test mit Beamer Projektion
Erster Test der Oberflächen mittels Beamer

Test der Projektionsoberflächen per Beamer

Die Hardware

Um alle Komponenten des Multi Touch Tables anzuordnen, wird eine entsprechende Konstruktion benötigt. Hier ist als Material Holz gewählt. Der Tisch ist zusammenklappbar und dadurch von einer Person zu tragen und im Kofferraum eines PKW zu transportieren.

Im zusammen geklappten Zustand:
Multi Touch Table zusammengeklappt

Im aufgeklappten Zustand von der Seite:
Multi Touch Table aufgebaut

Im aufgeklappten Zustand von vorn:
Multi Touch Table aufgebaut

Im aufgebauten Zustand mit eingelegter Projektionsscheibe:
Projektionsscheibe eingesetzt

Der Touchtable in funktionsfähigem Zustand. Auf der Projektionsscheibe liegt nun die Acryl Glasscheibe.
Der fertige Multi Touch Tabel

Der Projektor und die IR Webcam werden zusammen per Spiegel umgelenkt:
Der fertige Multi Touch Table

Die Software

Eine erste in C# erstellte Testsoftware funktioniert einwandfrei - inklusive Touchscreen Kalibrierung. Im ersten Test wird unter jedem Finger ein WPF Button angezeigt:
Erster Test der Touch Software

Das FireTouch Framework

Zur besseren Wiederverwendbarkeit der Multitouch-Software entstand das FireTouch Framework. Es ist komplett in managed C# Code programmiert und stellt zahlreiche Komponenten von der Erkennung der Webcam-Streams bis hin zu WPF-Steuerelementen und z.B. einem Multitouch-Canvas bereit.

Das FireTouch Framework wurde komplett neu entwickelt und basiert daher nicht auf bereits vorhandenen Bibliotheken wie z.B. touchlib. Der Grund dafür ist, dass die bisherigen Bibliotheken hauptsächlich in unmanaged Code wie C++ erstellt sind und somit bei einem Fehler die dotnet-Anwendung zum Abstutz bringen könnten. FireTouch hingegen erzeugt bei Fehlern korrekte dotnet Ausnahmen, welches sauber behandelt werden können.

Um die Optik und Webcam optimal einstellen zu können, bietet das FireTouch Framework einen Diagnose-Modus mit verschiedenen Ansichten:

  1. Roh-Modus - zeigt das Bild wie es von der Webcam geliefert wird
    Roh-Modus
  2. Helle Bereiche - zeigt das Bild, bereinigt um statische Bereiche und unter Berücksichtung ungeleichmäßiger Ausleuchtung der Fläche durch die IR-LEDs
    Hello Bereiche
  3. Farb-Visualisierung - der Abstand der Finger von der Glasscheibe wird in Farben dargestellt: Weiss liegt direkt auf der Scheibe auf. Von Blau über Grün nach Rot nimmt dann der Abstand immer weiter zu, bis die weit entfernten Bereiche schwarz dargestellt werden. Zusätzlich sind bereits erkannte Finger durch weisse Rechtecke markiert.
    Farb-Visualisierung

Ein Überblick über die verschiedenen Debug-Ansichten:

Eine kleine Demo-Applikation:

Objekt-Erkennung

Das Framework unterstützt nun auch die Erkennung von Objekten, welche auf der Projektionsfläche aufliegen.

Dazu werden unter den Objekten Barcode-ähnliche Markierungen angebracht. Diese können dann im Webcam-Bild von den aufgelegten Fingern unterschieden und ausgewertet werden.

Zu den erkannten Information zählt auch die Drehung des erkannten Objektes.

Ein Beispiel für die Erkennung von vier Objekten: