Logo der Fakultät Logo

Bachelor-Arbeit

Illustration

Implementierung einer Steuerung für Google-Earth mit dem Wii-Balance-Board

Verfasser: Prof. Dr. Wolfram Schiffmann
Erstgutachter/in: Prof. Dr. Wolfram Schiffmann
Zweitgutachter/in: Dr. Udo Hönig
Status: Themenangebot
Jahr: 2010

Beschreibung:

Es gibt für Google Earth ein Browser-Plugin [2], das es erlaubt, die dreidimensionale, hardwarebeschleunigte Ansicht von Google Earth im Browser einzubinden. Das Browser-Plugin kann über JavaScript gesteuert werden. Die Steuerungsmöglichkeiten gehen über das hinaus, was mit der eigenständigen Google-Earth-Anwendung möglich ist: So können alle sechs Freiheitsgrade der Ansicht frei festgelegt werden. Diese sind im einzelnen:

  • Geographische Längen- und Breitengrade (1,2)
  • Höhe über Grund (3)
  • Roll, Nick und Gier-Winkel (Roll, Pitch, Yaw) (4,5,6)

Der Roll-Winkel kann in Google Earth (und in KML-Files) nicht festgelegt werden. Für die Naviagtion über die virtuelle Erdoberfläche wird nun eine intuitive Steurungsmöglichkeit gesucht. Dazu bietet sich das Wii Balance Board an. Es sind schon erste dahingehende Versuche gemacht worden [5,6,7].

Am Lehrgebiet wird das Google-Earth-Plugin auf dem Panorama-Display eingesetzt. Dort werden von einer Steuerungskonsole aus mehrere Instanzen des Plugins so angesteuert, dass eine den Beobachter umgebende Darstellung erreicht wird [8,9]. Die Steuerung erfolgt bisher über das vorhandene Maus-Tastatur-Interface des Plugins. Diese soll nun durch das Wii-Balance-Board ergänzt werden.

Teilaufgaben:

1) Ansteuerung des Wii-Balance-Boards
1.1) Suche nach geeignetem Bluetooth-Stick
Nicht alle Bluetooth-Implementierungen arbeiten einwandfrei mit dem Balance-Board zusammen. Insbesondere scheint es unterschiede zwischen den beiden verbreiteten Bluetooth-Stacks für Windows zu geben: Windows und Widcom. Es sind also Recherchen und Versuche mit verschiedenen Bluetooth-Sticks durchzuführen.

1.2) Pairing
In ersten Experimenten des Lehrgebiets konnte bereits eine erfolgreiche Verbindung mit dem Balance-Board hergestellt werden. Dazu wurde die frei erhältliche "Wiimotelib" [1] verwendet, die in C# implementiert ist. Allerdings funktionierte die Anbindung immer nur nach einem erneuten, manuellen Pairing von Bluetooth-Stick und Balance-Board. Hier sind weitere Experimente nötig, um die Anbindung robuster zu lösen.

1.3) kontinuierliches Auslesen der Sensorinformationen
Mit der Wiimotelib können die Informationen der vier Gewichtssensoren des Balance-Boards einfach ausgelesen werden. Ein erster Meilenstein dieser Arbeit ist also, die Sensorwerte kontinuierlich auszulesen und anzuzeigen.

2) Entwurf eines Steuerungskonzepts
Aus den einzelnen Sensorinformationen sollen Steuerungsinformationen für Google Earth erzeugt werden. Das Grundproblem dabei ist, dass das Balance-Board nur vier Freiheitsgrade hat, Google-Earth aber sechs. Hier ist ein intelligentes Steureungskonzept (z.B. ähnlich einer Flugzeugsteuerung) zu entwerfen.

3) Ansteuerung von GE auf dem Panorama-Display
Die Implementierung der Steuerung muss so erfolgen, dass in einstellbaren Update-Intervallen neue Positions- und Lageinformationen an Google-Earth übermittelt werden. Dafür sind jedesmal die kompletten Positions- und Ausrichtungsinformationen (s.o.) an das darstellende GE-Plugin zu verschicken. Dafür sind UDP-Pakete zu erzeugen. Das Datenformat ist sehr simpel, siehe dazu die Beispielimplementierungen im Anhang.

Für den Empfang der UDP-Pakete mit JavaScript ist neben dem Google-Earth-Plugin ein weiteres Browser-Plugin nötig: JNEXT [3]. Es ermöglicht bestimmte systemnahe Operationen (eben wie das Empfangen von UDP-Paketen) im Browser. Die Steuerung erfolgt durch JavaScript.

Vorraussetzungen:

Kenntnisse in C# und (weniger wichtig) JavaScript
Hardwarekenntnisse (Bluetooth, Netzwerke)

Als Entwicklungsumgebung kann die kostenlose Express-Variante von Microsoft's Visual Studio 2008 verwendet werden. Alternativ ist auch eine Implementierung unter Linux denkbar, wobei dort zunächst die Bluetooth-Ansteuerung zu realisieren ist.


[1] http://blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx
[2] http://code.google.com/intl/de-DE/apis/earth/
[3] http://www.jnext.org/
[4] http://de.wikipedia.org/wiki/Roll-Nick-Gier-Winkel
[5] http://www.germancowboys.de/gadgets/2954
[6] http://www.tweakfest.ch/de/?p=5056
[7] http://www.youtube.com/watch?v=ucEV7N0N9Pw
[8] http://www.fernuni-hagen.de/rechnerarchitektur/panoramadisplay
[9] http://www.fernuni-hagen.de/universitaet/aktuelles/2009/08/17-am-panorama.shtml

FernUni-Logo FernUniversität in Hagen, Fakultät für Mathematik und Informatik, Lehrgebiet Rechnerarchitektur, 58084 Hagen, Tel.: +49 2331 987-4421