TELEPERCEPTION - technik
yuri(RR): harald mayer, gerd trautner, alexander barth
english



Die auf dieser Seite dokumentierten technischen Entwicklungen, Schaltpläne und Source-Files sind im Rahmen eines unkommerziellen Projektes entstanden und sind nur für den privaten, unkommerziellen Gebrauch gedacht. Für kommerziellen Gebrauch Frage an: yuri@yuri.at

technische Unterstützung: Gerd.Trautner@mond.at


Visueller Teil:
Es gibt verschiedene Arten, wie Stereoskopie dem menschlichen Auge vorgetäuscht werden kann. Dabei wird in allen Fällen ein Abbild einer Szene mit zwei, im Augenabstand und Winkel positionierten Cameras erstellt und diese über eine bestimmte Technik zu einem Sinal oder Bild zusammengefügt.

Die von der Firma virtual i-o hergestellten i-glasses arbeiten im "interlaced modus" d.h. sie teilen das ihnen geschickte Composit PAL-Signal in gerade und ungerade Halbbilder, wobei jeweils ein Halbbild über ein eigenes LCD-Display dem linken und das andere Halbbild dem rechten Auge gezeigt wird.
Für uns stehen im visuellen Bereich also folgende Teile zur Realisierung an:
- zwei CCD-Kameras im Augenabstand und in einem ausgesuchten Winkel zu positionieren
- die von den Kameras ausgegebenen Signale in ein "interlaced" Video zu mischen
- dieses Signal über eine Funkstrecke zu übertragenn

Dabei stößt man auf folgende Punkte, die man bei der Realisierung beachten muß:
- Um zwei Komposit-Signale in eins halbbildweise zu mischen, müssen die Signale absolut synchron sein, dh. wenn eine Kamera mit einem Halbbild fertig ist, muß auch die zweite Kamera mit einem Halbbild fertig sein.
- Um eine flimmerfreie Umschaltung zwischen den einzelnen Signalen zu erreichen darf es nur kurze Schaltzeiten geben
- Es wäre von Vorteil, zu wissen, wann welches Halbbild geschickt wird, da dadurch mögliche Einschaltunterschiede unmöglich würden. Es könnte z.B. sein, daß das Halbbild der rechten Kamera auf das linke Auge gesendet wird.

Realisierung des visuellen Teils:
Die synchonisation zweier Kameras kann man im wesentlichen auf zwei Arten durchführen.
- Man kauft sich teure, schwere Camcorder, die einen Synchronisationseingang besitzen
- Man setzt auf eine kreative, idividuelle und billige Lösung und synchonisiert die Kameras schon über ihren eigenen internen Oszillator. Das ermöglicht auch den Einsatz von leichten CCD-Kameras. Im wesentlichen ist unsere Idee die, den Oszillatorkreis einer Kamera zu deaktivieren und die Oszillatorfrequenz der anderen Kamera einzuspeisen. Sind die Kameras Baugleich, kann man davon ausgehen, daß die beiden Kameras absolut synchron das gleiche Halbbild aufzeichnen. Über einen Synchronisationsseperator (wir entschieden uns für den LM1881N von National Semiconductors) erhält man aus einem Composit-Signal sowohl das Vertikale-Synchonisationssignal (sprich Halbbild-Synchronisationssignal) und ein odd/even Signal, welches das Halbblid, das gerade angezeigt wird eindeutig identifiziert. über einen Video Switch (TEA20142A von Thomson) mischen wir die beiden Composit-Signal zu einem.
Schaltung als JPG

Die Videodatenfunkübertragung erfolgt nach Absprache mit Time'sUp im Rahmen von Closing the Loop.


Audio Teil:
Das Stereo-Audio Signal wird mit zwei, den Ohren änlich positionierten Mikrophone aufgenommen und entweder gemischt mit dem Videosignal oder getrennt übertragen.

Trackerdatenerfassung:
Der Tracker der i-glasses arbeitet relativ zum Erdmagnetfeld und liefert die drei absolute Winkel des Trackerkoordinatensystems zu dem des Erdmagnetfeldes. Die Übertragung ist seriell, wobei wahlweise die Winkel entweder als ASCII oder als binär übertragen werden.
Da wir von der Idee, ein realen Modell zu bewegen abkamen, war es zu Entscheiden, in welcher Art und Weise wir die Trackerdatenerfassung und Verarbeitung veranschaulichen wollen. Für uns erschien die Visualisierung des Sessels in VRML und die Einbindung der Trackerdaten mittels Java recht geeignet und optisch reizvoll. Nach Einarbeiten in die Materie JAVA und Serielle Schnittstelle sowie JAVA und VRML war uns klar, daß wir absolutes Forschergebiet betreten haben, weil es vorallem für die Schnittstelle JAVA-Serielle (javax.*) nur Alpha-Versionen von Klassen gibt und die nur beschränkt funktionieren.
Die Realisierung schaut nun folgendermaßen aus:
- Mit Hilfe der javax-Klassen (Communication API) liest das Stand-Allone Programm die Trackerdaten polled aus und schickt es vie UDP zu einem UDP-Server, der die Daten an das Client-Applet weitergibt, welches wiederum die Daten verarbeitet und an das VRML-File weiterleitet. Die Verbindung via UDP ist deswegen von Nöten, da sich die serielle Schnittstelle im Communicator mit JDK 1.1.5 - Alpha (Vorraussetzung für Communication API) nicht initialisieren läßt, die Schnittstelle zu VRML aber nur über ein JAVA-Applet möglich ist.

Source des Standalone Programms
Source des UDP-Server
Source des UDP-Server Thread

- Die Trackerdaten werden ausgewertet und über die Cosmo-Player 2.0 Klassen echtzeit ins VRML-Modell eingespeist. Das funktioniert über die direkte Modifikation einzelner Nodes im VRML-File aus dem Applet heraus.

Source des Client-Applets
VRML-File