Sandwelten

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

  Das Projekt „Sandwelten“ ermöglicht es reale Landschaften durch interaktive Systeme auf und aus Sand darzustellen.

Ein Video vom Projekt "Sandwelten" hier

Idee

Durch bestimmte Formungen des feuchten Sandes entstehen Berge, Flüsse, Seen, die je nach Sandhöhe die Farbe der Projektion verändern. Die verschiedenen Sandhöhen werden von den Tiefensensoren der Kinect wahrgenommen. Für jede Farbabstufung haben wir Schwellwerte definiert, welche über den Beamer auf den Sand projiziert werden.


Verarbeitung

  • Einarbeitung in die Software EyesWeb
  • Einarbeitung in die Funktionsweise der Kinect
  • Beschaffung der Hardware (& Software)


Unbenannt-1.jpg


Versuchsaufbau

Die 50 kg Quarzsand haben wir in eine Plastikkiste gefüllt und auf einen Tisch gestellt. Über dem Tisch wurde eine Metallstangenkonstruktion installiert, an der der Beamer und die Kinect befestigt wurden. Die Kinect kann variabel angebracht werden, da der Aufnahmebereich viel größer ist und später durch die Definition des ROI (region of interest) die gewünschten Punkte ausgesucht werden. Wir haben die Kinect, in ca. 80 cm Höhe von dem geglätteten Sand entfernt, mittig gerade nach unten auf den Sand gerichtet. Der Projektor muss hinter der Kinect am Rand der Kiste so mittig wie nur möglich positioniert sein, da er ein Beamer mit einer Bildprojektion oberhalb der Geräteachse ist und sonst die Farben falsch projiziert werden. Weiterhin mussten die Kinect und der Beamer über Kabel mit dem Notebook verbunden sein.


Aufbau1.jpg Aufbau2.jpg

EyesWeb

Die Verarbeitung in EyesWeb ist in einzelne Blöcke unterteilt, die am Ende zusammengesetzt werden.


Teil 1

Patch_Teil1.jpg


Der Patch erzeugt unseren Output, indem er die Tiefenwerte der Kinect nimmt und im ersten Schritt die Werte binarisiert. Um die Punkte einer Höhenschicht zusammenzufassen, braucht man einen unteren und einen oberen Schwellwert. Punkte, deren Tiefenwert über dem unteren Schwellwert liegen, werden auf 1 gesetzt, Punkte darunter auf 0. Beim oberen Schwellwert läuft der Prozess andersherum. Punkte, deren Tiefenwert niedriger als der Schwellwert ist, werden 1 und die anderen 0. Diese Punkte werden dann per AND-Funktion verknüpft und erhalten dann die Höhenschicht. Die Werte werden mit 255 multipliziert und in drei Farbkanäle (RGB) konvertiert. Dann kann die Farbe den Bildpunkten einer Schicht zugewiesen werden. Die Farbschichten werden durch eine OR-Verknüpfung zu einem Bild zusammengefügt.


Teil 2

Patch_Teil2.jpg


Anschließend kann das Bild ausgeschnitten werden (ROI) und in einem 3D-Raum gedreht werden. Diese Drehung ist notwendig, da der Beamer nicht genau senkrecht fixiert werden konnte und somit eine Verzerrung des Projekto-Bildes entstand.


Endgültiger Patch

Patch_endgültig.jpg


Der Farbzuweisungen sind im Patch in drei Blöcken unterteilt, die verschiedene Höhen zusammenfassen (graue Berge, grüne Wiesen, blaues Wasser), um eine übersichtlichere Struktur zu erhalten. Um die Überschaubarkeit auch noch zu gewährleisten, kann durch die grauen Kästchen eine Art Zeiger/Container erstellt werden, dem man Werte geben und an beliebiger Stelle wieder entnehmen kann. So kann der Eyesweb-Patch in einer ansprechenden Form dargestellt werden.


Probleme mit EyesWeb

  • Problematik bei der Ansteuerung mit der Kinect
  • Es gibt wenige Anleitungen
  • Auf Input/Output & Datentypen achten, da es davon abhängt, ob man zwischen den einzelnen Elemente einen Verbindungspfeil setzten kann


Allgemeine Probleme

  • Durch die Verwendung eines Ultraweitwinkel-Beamers entstand ein Schattenwurf, der zum Bildverlust geführt hat. Dadurch entstand eine falsche Farbprojektion.
  • Latenzprobleme (ca. eine Sekunde)
  • Große Probleme mit der Genauigkeit der Projektion
  • Kleine Veränderungen der Hardwareposition machen eine Neueinstellung erforderlich
  • Bildschirmauflösung vs. Beamer
  • Anwendungsproblem: steile/senkrechte Kanten sind zu vermeiden


Résumé

Im Wesentlichen kann man sagen, dass wir unsere Vorstellungen realisieren konnten. Wir haben erreicht, dass die verschiedenen Höhen des Sandes durch die Tiefensensoren der Kinect erkannt wurden und wir diesen Farben zuweisen konnten. Ebenso sehen die Farben auf dem grauen Sand reell aus und imitieren einen (fast) flüssigen Farbverlauf. Nicht erreicht haben wir jedoch, dass eine Wasseranimation im Gesamtbild realistisch aussieht und zusätzlich ein Vulkan zu simulieren. Einen echten Farbverlauf konnten wir nicht realisieren. Bei unserem Projekt imitieren diesen kleine Farbabstufungen, die einem echten Farbverlauf relativ nahe kommen. Diese Abstufungen sind nur bei einem flachen Anstieg des Sandes zu erkennen.


Farbverläufe.jpg

Fazit

Es ist ein gelungenes Projekt, welches den Spieltrieb in einem erwachsenen Menschen weckt.


Der Eyesweb-Patch von "Sandwelten" kann hier heruntergeladen werden.