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